Commit 6ebe2c50 authored by Vincent Le gallic's avatar Vincent Le gallic

Héritage pour les formulaire Crédit/Retrait/Transfert

parent 352e1dac
......@@ -53,6 +53,7 @@ class PasswordForm(forms.Form):
password = forms.CharField(label="Nouveau mot de passe", widget=forms.PasswordInput)
password_confirm = forms.CharField(label="Confirmation du mot de passe", widget=forms.PasswordInput, required=True)
def clean(self):
"""Vérifie que le mot de passe et sa confirmation concordent et enlève le deuxième."""
out = forms.Form.clean(self)
if self.errors:
return out
......@@ -355,15 +356,10 @@ class PhotoForm(forms.Form):
raise forms.ValidationError(u"Photo trop volumineuse (%s octets), maximum %s" % (photo.size, settings.MAX_PHOTO_SIZE))
return out
class CreditRetraitForm(forms.Form):
"""Formulaire pour effectuer un crédit ou un retrait."""
idbde = forms.IntegerField(widget=forms.HiddenInput)
class MoneyForm(forms.Form):
"""Classe de base pour les formulaires qui parlent d'argent."""
montant = FrenchFloatField(label="Montant", widget=forms.TextInput(attrs={"autocomplete" : "off"}))
commentaire = forms.CharField(label="Commentaire", required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
type = forms.ChoiceField(label="Type de paiement", choices=[("especes", "Espèces"), ("cheque", "Chèque"), ("virement", "Virement bancaire")])
nom = forms.CharField(label="Nom", required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
prenom = forms.CharField(label="Prénom", required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
banque = forms.CharField(label="Banque", required=False)
def clean(self):
"""Les centimes"""
out = forms.Form.clean(self)
......@@ -373,19 +369,19 @@ class CreditRetraitForm(forms.Form):
out["montant"] = 0
return out
class TransfertForm(forms.Form):
class CreditRetraitForm(MoneyForm):
"""Formulaire pour effectuer un crédit ou un retrait."""
idbde = forms.IntegerField(widget=forms.HiddenInput)
type = forms.ChoiceField(label="Type de paiement", choices=[("especes", "Espèces"), ("cheque", "Chèque"), ("virement", "Virement bancaire")])
nom = forms.CharField(label="Nom", required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
prenom = forms.CharField(label="Prénom", required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
banque = forms.CharField(label="Banque", required=False)
class TransfertForm(MoneyForm):
"""Formulaire pour effectuer un transfert d'argent.
Également utilisé pour les dons."""
montant = FrenchFloatField(label="Montant", widget=forms.TextInput(attrs={"autocomplete" : "off"}))
motif = forms.CharField(label="Motif", required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
def clean(self):
"""Les centimes"""
out = forms.Form.clean(self)
if out.has_key("montant") and type(out["montant"]) == float:
out["montant"] = int(100 * out["montant"])
else:
out["montant"] = 0
return out
commentaire = forms.CharField(label="Motif", required=False, widget=forms.TextInput(attrs={"autocomplete" : "off"}))
class DeleteCompteForm(forms.Form):
"""Formulaire de confirmation de suppression de compte."""
......
......@@ -739,7 +739,7 @@ def do_transfert(request):
if not( isinstance(transfertdata, list) and len(transfertdata) == 4 and
[type(i) for i in transfertdata] == [list, list, unicode, unicode]):
return HttpResponse("Bad parameter", status=500)
emetteurs, destinataires, montant, motif = transfertdata
emetteurs, destinataires, montant, commentaire = transfertdata
try:
montant = float(montant)
except ValueError:
......@@ -749,7 +749,7 @@ def do_transfert(request):
if destinataires == []:
return HttpResponse(json.dumps({"retcode" : 1113, "msg" : None, "errmsg" : "Transfert impossible : pas de destinataires."}))
montant = int(montant * 100)
paquet = ["transferts", [emetteurs, destinataires, montant, motif]]
paquet = ["transferts", [emetteurs, destinataires, montant, commentaire]]
sock.write(json.dumps(paquet))
out = full_read(sock)
return HttpResponse(json.dumps(out))
......
......@@ -294,7 +294,7 @@ function cleanForms() {
span.replaceChild(emptyspan.cloneNode(true), span.firstChild);
}
/* On vide également le formulaire de transfert */
ids = ["montant", "motif"];
ids = ["montant", "commentaire"];
for (var i_id = 0, c = ids.length; i_id < ids.length; i_id++) {
id = "id_transfert_form-" + ids[i_id];
field = document.getElementById(id);
......@@ -617,7 +617,7 @@ function crediter_ou_retirer(credit) {
La fonction appelée pour récupérer les listes des émetteurs et des destinataires est différente en mode double stack */
function transferer() {
var montant_field = document.getElementById("id_transfert_form-montant");
var motif_field = document.getElementById("id_transfert_form-motif");
var commentaire_field = document.getElementById("id_transfert_form-commentaire");
var ok, emetteurs, destinataires, temp;
//On fait appel à la fonction qui récupère émetteurs et destinataires différemment selon le stack_mode
temp = transfert_get_people();
......@@ -696,7 +696,7 @@ function transferer() {
};
xhr.open("POST", NOTE_ROOT_URL + "do_transfert/", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var transfertdata = [emetteurs, destinataires, montant_field.value, motif_field.value];
var transfertdata = [emetteurs, destinataires, montant_field.value, commentaire_field.value];
transfertdata = JSON.stringify(transfertdata);
var post_data = "transfertdata=" + encodeURIComponent(transfertdata);
xhr.send(post_data);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment