Commit 1795d26c authored by Gabriel Detraz's avatar Gabriel Detraz Committed by chirac

Gestion de l'historique avec un mixin forms et model

parent 8fe0c877
...@@ -45,9 +45,9 @@ from preferences.models import OptionalUser ...@@ -45,9 +45,9 @@ from preferences.models import OptionalUser
from users.models import User from users.models import User
from re2o.field_permissions import FieldPermissionFormMixin from re2o.field_permissions import FieldPermissionFormMixin
from re2o.mixins import FormRevMixin
class NewFactureForm(FormRevMixin, ModelForm):
class NewFactureForm(ModelForm):
"""Creation d'une facture, moyen de paiement, banque et numero """Creation d'une facture, moyen de paiement, banque et numero
de cheque""" de cheque"""
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
...@@ -96,7 +96,7 @@ class CreditSoldeForm(NewFactureForm): ...@@ -96,7 +96,7 @@ class CreditSoldeForm(NewFactureForm):
montant = forms.DecimalField(max_digits=5, decimal_places=2, required=True) montant = forms.DecimalField(max_digits=5, decimal_places=2, required=True)
class SelectUserArticleForm(Form): class SelectUserArticleForm(FormRevMixin, Form):
"""Selection d'un article lors de la creation d'une facture""" """Selection d'un article lors de la creation d'une facture"""
article = forms.ModelChoiceField( article = forms.ModelChoiceField(
queryset=Article.objects.filter(Q(type_user='All') | Q(type_user='Adherent')), queryset=Article.objects.filter(Q(type_user='All') | Q(type_user='Adherent')),
...@@ -158,7 +158,7 @@ class EditFactureForm(FieldPermissionFormMixin, NewFactureForm): ...@@ -158,7 +158,7 @@ class EditFactureForm(FieldPermissionFormMixin, NewFactureForm):
self.fields['valid'].label = 'Validité de la facture' self.fields['valid'].label = 'Validité de la facture'
class ArticleForm(ModelForm): class ArticleForm(FormRevMixin, ModelForm):
"""Creation d'un article. Champs : nom, cotisation, durée""" """Creation d'un article. Champs : nom, cotisation, durée"""
class Meta: class Meta:
model = Article model = Article
...@@ -170,7 +170,7 @@ class ArticleForm(ModelForm): ...@@ -170,7 +170,7 @@ class ArticleForm(ModelForm):
self.fields['name'].label = "Désignation de l'article" self.fields['name'].label = "Désignation de l'article"
class DelArticleForm(Form): class DelArticleForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs articles en vente. Choix """Suppression d'un ou plusieurs articles en vente. Choix
parmis les modèles""" parmis les modèles"""
articles = forms.ModelMultipleChoiceField( articles = forms.ModelMultipleChoiceField(
...@@ -188,7 +188,7 @@ class DelArticleForm(Form): ...@@ -188,7 +188,7 @@ class DelArticleForm(Form):
self.fields['articles'].queryset = Article.objects.all() self.fields['articles'].queryset = Article.objects.all()
class PaiementForm(ModelForm): class PaiementForm(FormRevMixin, ModelForm):
"""Creation d'un moyen de paiement, champ text moyen et type """Creation d'un moyen de paiement, champ text moyen et type
permettant d'indiquer si il s'agit d'un chèque ou non pour le form""" permettant d'indiquer si il s'agit d'un chèque ou non pour le form"""
class Meta: class Meta:
...@@ -202,7 +202,7 @@ class PaiementForm(ModelForm): ...@@ -202,7 +202,7 @@ class PaiementForm(ModelForm):
self.fields['type_paiement'].label = 'Type de paiement à ajouter' self.fields['type_paiement'].label = 'Type de paiement à ajouter'
class DelPaiementForm(Form): class DelPaiementForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs moyens de paiements, selection """Suppression d'un ou plusieurs moyens de paiements, selection
parmis les models""" parmis les models"""
paiements = forms.ModelMultipleChoiceField( paiements = forms.ModelMultipleChoiceField(
...@@ -220,7 +220,7 @@ class DelPaiementForm(Form): ...@@ -220,7 +220,7 @@ class DelPaiementForm(Form):
self.fields['paiements'].queryset = Paiement.objects.all() self.fields['paiements'].queryset = Paiement.objects.all()
class BanqueForm(ModelForm): class BanqueForm(FormRevMixin, ModelForm):
"""Creation d'une banque, field name""" """Creation d'une banque, field name"""
class Meta: class Meta:
model = Banque model = Banque
...@@ -232,7 +232,7 @@ class BanqueForm(ModelForm): ...@@ -232,7 +232,7 @@ class BanqueForm(ModelForm):
self.fields['name'].label = 'Banque à ajouter' self.fields['name'].label = 'Banque à ajouter'
class DelBanqueForm(Form): class DelBanqueForm(FormRevMixin, Form):
"""Selection d'une ou plusieurs banques, pour suppression""" """Selection d'une ou plusieurs banques, pour suppression"""
banques = forms.ModelMultipleChoiceField( banques = forms.ModelMultipleChoiceField(
queryset=Banque.objects.none(), queryset=Banque.objects.none(),
...@@ -283,7 +283,7 @@ class NewFactureSoldeForm(NewFactureForm): ...@@ -283,7 +283,7 @@ class NewFactureSoldeForm(NewFactureForm):
return cleaned_data return cleaned_data
class RechargeForm(Form): class RechargeForm(FormRevMixin, Form):
value = forms.FloatField( value = forms.FloatField(
label='Valeur', label='Valeur',
min_value=0.01, min_value=0.01,
......
...@@ -57,9 +57,10 @@ from django.utils import timezone ...@@ -57,9 +57,10 @@ from django.utils import timezone
from machines.models import regen from machines.models import regen
from re2o.field_permissions import FieldPermissionModelMixin from re2o.field_permissions import FieldPermissionModelMixin
from re2o.mixins import AclMixin from re2o.mixins import AclMixin, RevMixin
class Facture(AclMixin, FieldPermissionModelMixin, models.Model):
class Facture(RevMixin, AclMixin, FieldPermissionModelMixin, models.Model):
""" Définition du modèle des factures. Une facture regroupe une ou """ Définition du modèle des factures. Une facture regroupe une ou
plusieurs ventes, rattachée à un user, et reliée à un moyen de paiement plusieurs ventes, rattachée à un user, et reliée à un moyen de paiement
et si il y a lieu un numero pour les chèques. Possède les valeurs et si il y a lieu un numero pour les chèques. Possède les valeurs
...@@ -180,7 +181,7 @@ def facture_post_delete(sender, **kwargs): ...@@ -180,7 +181,7 @@ def facture_post_delete(sender, **kwargs):
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False) user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
class Vente(AclMixin, models.Model): class Vente(RevMixin, AclMixin, models.Model):
"""Objet vente, contient une quantité, une facture parente, un nom, """Objet vente, contient une quantité, une facture parente, un nom,
un prix. Peut-être relié à un objet cotisation, via le boolean un prix. Peut-être relié à un objet cotisation, via le boolean
iscotisation""" iscotisation"""
...@@ -325,7 +326,7 @@ def vente_post_delete(sender, **kwargs): ...@@ -325,7 +326,7 @@ def vente_post_delete(sender, **kwargs):
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False) user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
class Article(AclMixin, models.Model): class Article(RevMixin, AclMixin, models.Model):
"""Liste des articles en vente : prix, nom, et attribut iscotisation """Liste des articles en vente : prix, nom, et attribut iscotisation
et duree si c'est une cotisation""" et duree si c'est une cotisation"""
PRETTY_NAME = "Articles en vente" PRETTY_NAME = "Articles en vente"
...@@ -381,7 +382,7 @@ class Article(AclMixin, models.Model): ...@@ -381,7 +382,7 @@ class Article(AclMixin, models.Model):
return self.name return self.name
class Banque(AclMixin, models.Model): class Banque(RevMixin, AclMixin, models.Model):
"""Liste des banques""" """Liste des banques"""
PRETTY_NAME = "Banques enregistrées" PRETTY_NAME = "Banques enregistrées"
...@@ -396,7 +397,7 @@ class Banque(AclMixin, models.Model): ...@@ -396,7 +397,7 @@ class Banque(AclMixin, models.Model):
return self.name return self.name
class Paiement(AclMixin, models.Model): class Paiement(RevMixin, AclMixin, models.Model):
"""Moyens de paiement""" """Moyens de paiement"""
PRETTY_NAME = "Moyens de paiement" PRETTY_NAME = "Moyens de paiement"
PAYMENT_TYPES = ( PAYMENT_TYPES = (
...@@ -426,7 +427,7 @@ class Paiement(AclMixin, models.Model): ...@@ -426,7 +427,7 @@ class Paiement(AclMixin, models.Model):
super(Paiement, self).save(*args, **kwargs) super(Paiement, self).save(*args, **kwargs)
class Cotisation(AclMixin, models.Model): class Cotisation(RevMixin, AclMixin, models.Model):
"""Objet cotisation, debut et fin, relié en onetoone à une vente""" """Objet cotisation, debut et fin, relié en onetoone à une vente"""
PRETTY_NAME = "Cotisations" PRETTY_NAME = "Cotisations"
......
This diff is collapsed.
...@@ -39,6 +39,7 @@ from django.forms import ModelForm, Form ...@@ -39,6 +39,7 @@ from django.forms import ModelForm, Form
from django import forms from django import forms
from re2o.field_permissions import FieldPermissionFormMixin from re2o.field_permissions import FieldPermissionFormMixin
from re2o.mixins import FormRevMixin
from .models import ( from .models import (
Domain, Domain,
...@@ -61,7 +62,7 @@ from .models import ( ...@@ -61,7 +62,7 @@ from .models import (
) )
class EditMachineForm(FieldPermissionFormMixin, ModelForm): class EditMachineForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
"""Formulaire d'édition d'une machine""" """Formulaire d'édition d'une machine"""
class Meta: class Meta:
model = Machine model = Machine
...@@ -79,7 +80,7 @@ class NewMachineForm(EditMachineForm): ...@@ -79,7 +80,7 @@ class NewMachineForm(EditMachineForm):
fields = ['name'] fields = ['name']
class EditInterfaceForm(FieldPermissionFormMixin, ModelForm): class EditInterfaceForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
"""Edition d'une interface. Edition complète""" """Edition d'une interface. Edition complète"""
class Meta: class Meta:
model = Interface model = Interface
...@@ -125,7 +126,7 @@ class AddInterfaceForm(EditInterfaceForm): ...@@ -125,7 +126,7 @@ class AddInterfaceForm(EditInterfaceForm):
fields = ['type', 'ipv4', 'mac_address', 'details'] fields = ['type', 'ipv4', 'mac_address', 'details']
class AliasForm(ModelForm): class AliasForm(FormRevMixin, ModelForm):
"""Ajout d'un alias (et edition), CNAME, contenant nom et extension""" """Ajout d'un alias (et edition), CNAME, contenant nom et extension"""
class Meta: class Meta:
model = Domain model = Domain
...@@ -142,7 +143,7 @@ class AliasForm(ModelForm): ...@@ -142,7 +143,7 @@ class AliasForm(ModelForm):
) )
class DomainForm(ModelForm): class DomainForm(FormRevMixin, ModelForm):
"""Ajout et edition d'un enregistrement de nom, relié à interface""" """Ajout et edition d'un enregistrement de nom, relié à interface"""
class Meta: class Meta:
model = Domain model = Domain
...@@ -158,7 +159,7 @@ class DomainForm(ModelForm): ...@@ -158,7 +159,7 @@ class DomainForm(ModelForm):
super(DomainForm, self).__init__(*args, prefix=prefix, **kwargs) super(DomainForm, self).__init__(*args, prefix=prefix, **kwargs)
class DelAliasForm(Form): class DelAliasForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs objets alias""" """Suppression d'un ou plusieurs objets alias"""
alias = forms.ModelMultipleChoiceField( alias = forms.ModelMultipleChoiceField(
queryset=Domain.objects.all(), queryset=Domain.objects.all(),
...@@ -174,7 +175,7 @@ class DelAliasForm(Form): ...@@ -174,7 +175,7 @@ class DelAliasForm(Form):
) )
class MachineTypeForm(ModelForm): class MachineTypeForm(FormRevMixin, ModelForm):
"""Ajout et edition d'un machinetype, relié à un iptype""" """Ajout et edition d'un machinetype, relié à un iptype"""
class Meta: class Meta:
model = MachineType model = MachineType
...@@ -187,7 +188,7 @@ class MachineTypeForm(ModelForm): ...@@ -187,7 +188,7 @@ class MachineTypeForm(ModelForm):
self.fields['ip_type'].label = "Type d'ip relié" self.fields['ip_type'].label = "Type d'ip relié"
class DelMachineTypeForm(Form): class DelMachineTypeForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs machinetype""" """Suppression d'un ou plusieurs machinetype"""
machinetypes = forms.ModelMultipleChoiceField( machinetypes = forms.ModelMultipleChoiceField(
queryset=MachineType.objects.none(), queryset=MachineType.objects.none(),
...@@ -204,7 +205,7 @@ class DelMachineTypeForm(Form): ...@@ -204,7 +205,7 @@ class DelMachineTypeForm(Form):
self.fields['machinetypes'].queryset = MachineType.objects.all() self.fields['machinetypes'].queryset = MachineType.objects.all()
class IpTypeForm(ModelForm): class IpTypeForm(FormRevMixin, ModelForm):
"""Formulaire d'ajout d'un iptype. Pas d'edition de l'ip de start et de """Formulaire d'ajout d'un iptype. Pas d'edition de l'ip de start et de
stop après creation""" stop après creation"""
class Meta: class Meta:
...@@ -226,7 +227,7 @@ class EditIpTypeForm(IpTypeForm): ...@@ -226,7 +227,7 @@ class EditIpTypeForm(IpTypeForm):
'ouverture_ports'] 'ouverture_ports']
class DelIpTypeForm(Form): class DelIpTypeForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs iptype""" """Suppression d'un ou plusieurs iptype"""
iptypes = forms.ModelMultipleChoiceField( iptypes = forms.ModelMultipleChoiceField(
queryset=IpType.objects.none(), queryset=IpType.objects.none(),
...@@ -243,7 +244,7 @@ class DelIpTypeForm(Form): ...@@ -243,7 +244,7 @@ class DelIpTypeForm(Form):
self.fields['iptypes'].queryset = IpType.objects.all() self.fields['iptypes'].queryset = IpType.objects.all()
class ExtensionForm(ModelForm): class ExtensionForm(FormRevMixin, ModelForm):
"""Formulaire d'ajout et edition d'une extension""" """Formulaire d'ajout et edition d'une extension"""
class Meta: class Meta:
model = Extension model = Extension
...@@ -258,7 +259,7 @@ class ExtensionForm(ModelForm): ...@@ -258,7 +259,7 @@ class ExtensionForm(ModelForm):
self.fields['soa'].label = 'En-tête SOA à utiliser' self.fields['soa'].label = 'En-tête SOA à utiliser'
class DelExtensionForm(Form): class DelExtensionForm(FormRevMixin, Form):
"""Suppression d'une ou plusieurs extensions""" """Suppression d'une ou plusieurs extensions"""
extensions = forms.ModelMultipleChoiceField( extensions = forms.ModelMultipleChoiceField(
queryset=Extension.objects.none(), queryset=Extension.objects.none(),
...@@ -275,7 +276,7 @@ class DelExtensionForm(Form): ...@@ -275,7 +276,7 @@ class DelExtensionForm(Form):
self.fields['extensions'].queryset = Extension.objects.all() self.fields['extensions'].queryset = Extension.objects.all()
class Ipv6ListForm(FieldPermissionFormMixin, ModelForm): class Ipv6ListForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
"""Gestion des ipv6 d'une machine""" """Gestion des ipv6 d'une machine"""
class Meta: class Meta:
model = Ipv6List model = Ipv6List
...@@ -286,7 +287,7 @@ class Ipv6ListForm(FieldPermissionFormMixin, ModelForm): ...@@ -286,7 +287,7 @@ class Ipv6ListForm(FieldPermissionFormMixin, ModelForm):
super(Ipv6ListForm, self).__init__(*args, prefix=prefix, **kwargs) super(Ipv6ListForm, self).__init__(*args, prefix=prefix, **kwargs)
class SOAForm(ModelForm): class SOAForm(FormRevMixin, ModelForm):
"""Ajout et edition d'un SOA""" """Ajout et edition d'un SOA"""
class Meta: class Meta:
model = SOA model = SOA
...@@ -297,7 +298,7 @@ class SOAForm(ModelForm): ...@@ -297,7 +298,7 @@ class SOAForm(ModelForm):
super(SOAForm, self).__init__(*args, prefix=prefix, **kwargs) super(SOAForm, self).__init__(*args, prefix=prefix, **kwargs)
class DelSOAForm(Form): class DelSOAForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs SOA""" """Suppression d'un ou plusieurs SOA"""
soa = forms.ModelMultipleChoiceField( soa = forms.ModelMultipleChoiceField(
queryset=SOA.objects.none(), queryset=SOA.objects.none(),
...@@ -314,7 +315,7 @@ class DelSOAForm(Form): ...@@ -314,7 +315,7 @@ class DelSOAForm(Form):
self.fields['soa'].queryset = SOA.objects.all() self.fields['soa'].queryset = SOA.objects.all()
class MxForm(ModelForm): class MxForm(FormRevMixin, ModelForm):
"""Ajout et edition d'un MX""" """Ajout et edition d'un MX"""
class Meta: class Meta:
model = Mx model = Mx
...@@ -327,7 +328,7 @@ class MxForm(ModelForm): ...@@ -327,7 +328,7 @@ class MxForm(ModelForm):
interface_parent=None interface_parent=None
).select_related('extension') ).select_related('extension')
class DelMxForm(Form): class DelMxForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs MX""" """Suppression d'un ou plusieurs MX"""
mx = forms.ModelMultipleChoiceField( mx = forms.ModelMultipleChoiceField(
queryset=Mx.objects.none(), queryset=Mx.objects.none(),
...@@ -344,7 +345,7 @@ class DelMxForm(Form): ...@@ -344,7 +345,7 @@ class DelMxForm(Form):
self.fields['mx'].queryset = Mx.objects.all() self.fields['mx'].queryset = Mx.objects.all()
class NsForm(ModelForm): class NsForm(FormRevMixin, ModelForm):
"""Ajout d'un NS pour une zone """Ajout d'un NS pour une zone
On exclue les CNAME dans les objets domain (interdit par la rfc) On exclue les CNAME dans les objets domain (interdit par la rfc)
donc on prend uniquemet """ donc on prend uniquemet """
...@@ -360,7 +361,7 @@ class NsForm(ModelForm): ...@@ -360,7 +361,7 @@ class NsForm(ModelForm):
).select_related('extension') ).select_related('extension')
class DelNsForm(Form): class DelNsForm(FormRevMixin, Form):
"""Suppresion d'un ou plusieurs NS""" """Suppresion d'un ou plusieurs NS"""
ns = forms.ModelMultipleChoiceField( ns = forms.ModelMultipleChoiceField(
queryset=Ns.objects.none(), queryset=Ns.objects.none(),
...@@ -377,7 +378,7 @@ class DelNsForm(Form): ...@@ -377,7 +378,7 @@ class DelNsForm(Form):
self.fields['ns'].queryset = Ns.objects.all() self.fields['ns'].queryset = Ns.objects.all()
class TxtForm(ModelForm): class TxtForm(FormRevMixin, ModelForm):
"""Ajout d'un txt pour une zone""" """Ajout d'un txt pour une zone"""
class Meta: class Meta:
model = Txt model = Txt
...@@ -388,7 +389,7 @@ class TxtForm(ModelForm): ...@@ -388,7 +389,7 @@ class TxtForm(ModelForm):
super(TxtForm, self).__init__(*args, prefix=prefix, **kwargs) super(TxtForm, self).__init__(*args, prefix=prefix, **kwargs)
class DelTxtForm(Form): class DelTxtForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs TXT""" """Suppression d'un ou plusieurs TXT"""
txt = forms.ModelMultipleChoiceField( txt = forms.ModelMultipleChoiceField(
queryset=Txt.objects.none(), queryset=Txt.objects.none(),
...@@ -405,7 +406,7 @@ class DelTxtForm(Form): ...@@ -405,7 +406,7 @@ class DelTxtForm(Form):
self.fields['txt'].queryset = Txt.objects.all() self.fields['txt'].queryset = Txt.objects.all()
class SrvForm(ModelForm): class SrvForm(FormRevMixin, ModelForm):
"""Ajout d'un srv pour une zone""" """Ajout d'un srv pour une zone"""
class Meta: class Meta:
model = Srv model = Srv
...@@ -416,7 +417,7 @@ class SrvForm(ModelForm): ...@@ -416,7 +417,7 @@ class SrvForm(ModelForm):
super(SrvForm, self).__init__(*args, prefix=prefix, **kwargs) super(SrvForm, self).__init__(*args, prefix=prefix, **kwargs)
class DelSrvForm(Form): class DelSrvForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs Srv""" """Suppression d'un ou plusieurs Srv"""
srv = forms.ModelMultipleChoiceField( srv = forms.ModelMultipleChoiceField(
queryset=Srv.objects.none(), queryset=Srv.objects.none(),
...@@ -433,7 +434,7 @@ class DelSrvForm(Form): ...@@ -433,7 +434,7 @@ class DelSrvForm(Form):
self.fields['srv'].queryset = Srv.objects.all() self.fields['srv'].queryset = Srv.objects.all()
class NasForm(ModelForm): class NasForm(FormRevMixin, ModelForm):
"""Ajout d'un type de nas (machine d'authentification, """Ajout d'un type de nas (machine d'authentification,
swicths, bornes...)""" swicths, bornes...)"""
class Meta: class Meta:
...@@ -445,7 +446,7 @@ class NasForm(ModelForm): ...@@ -445,7 +446,7 @@ class NasForm(ModelForm):
super(NasForm, self).__init__(*args, prefix=prefix, **kwargs) super(NasForm, self).__init__(*args, prefix=prefix, **kwargs)
class DelNasForm(Form): class DelNasForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs nas""" """Suppression d'un ou plusieurs nas"""
nas = forms.ModelMultipleChoiceField( nas = forms.ModelMultipleChoiceField(
queryset=Nas.objects.none(), queryset=Nas.objects.none(),
...@@ -462,7 +463,7 @@ class DelNasForm(Form): ...@@ -462,7 +463,7 @@ class DelNasForm(Form):
self.fields['nas'].queryset = Nas.objects.all() self.fields['nas'].queryset = Nas.objects.all()
class ServiceForm(ModelForm): class ServiceForm(FormRevMixin, ModelForm):
"""Ajout et edition d'une classe de service : dns, dhcp, etc""" """Ajout et edition d'une classe de service : dns, dhcp, etc"""
class Meta: class Meta:
model = Service model = Service
...@@ -482,7 +483,7 @@ class ServiceForm(ModelForm): ...@@ -482,7 +483,7 @@ class ServiceForm(ModelForm):
return instance return instance
class DelServiceForm(Form): class DelServiceForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs service""" """Suppression d'un ou plusieurs service"""
service = forms.ModelMultipleChoiceField( service = forms.ModelMultipleChoiceField(
queryset=Service.objects.none(), queryset=Service.objects.none(),
...@@ -499,7 +500,7 @@ class DelServiceForm(Form): ...@@ -499,7 +500,7 @@ class DelServiceForm(Form):
self.fields['service'].queryset = Service.objects.all() self.fields['service'].queryset = Service.objects.all()
class VlanForm(ModelForm): class VlanForm(FormRevMixin, ModelForm):
"""Ajout d'un vlan : id, nom""" """Ajout d'un vlan : id, nom"""
class Meta: class Meta:
model = Vlan model = Vlan
...@@ -510,7 +511,7 @@ class VlanForm(ModelForm): ...@@ -510,7 +511,7 @@ class VlanForm(ModelForm):
super(VlanForm, self).__init__(*args, prefix=prefix, **kwargs) super(VlanForm, self).__init__(*args, prefix=prefix, **kwargs)
class DelVlanForm(Form): class DelVlanForm(FormRevMixin, Form):
"""Suppression d'un ou plusieurs vlans""" """Suppression d'un ou plusieurs vlans"""
vlan = forms.ModelMultipleChoiceField( vlan = forms.ModelMultipleChoiceField(
queryset=Vlan.objects.none(), queryset=Vlan.objects.none(),
...@@ -527,7 +528,7 @@ class DelVlanForm(Form): ...@@ -527,7 +528,7 @@ class DelVlanForm(Form):
self.fields['vlan'].queryset = Vlan.objects.all() self.fields['vlan'].queryset = Vlan.objects.all()
class EditOuverturePortConfigForm(ModelForm): class EditOuverturePortConfigForm(FormRevMixin, ModelForm):
"""Edition de la liste des profils d'ouverture de ports """Edition de la liste des profils d'ouverture de ports
pour l'interface""" pour l'interface"""
class Meta: class Meta:
...@@ -543,7 +544,7 @@ class EditOuverturePortConfigForm(ModelForm): ...@@ -543,7 +544,7 @@ class EditOuverturePortConfigForm(ModelForm):
) )
class EditOuverturePortListForm(ModelForm): class EditOuverturePortListForm(FormRevMixin, ModelForm):
"""Edition de la liste des ports et profils d'ouverture """Edition de la liste des ports et profils d'ouverture
des ports""" des ports"""
class Meta: class Meta:
......
...@@ -39,13 +39,13 @@ from django.core.validators import MaxValueValidator ...@@ -39,13 +39,13 @@ from django.core.validators import MaxValueValidator
from macaddress.fields import MACAddressField from macaddress.fields import MACAddressField
from re2o.field_permissions import FieldPermissionModelMixin from re2o.field_permissions import FieldPermissionModelMixin
from re2o.mixins import AclMixin from re2o.mixins import AclMixin, RevMixin
import users.models import users.models
import preferences.models import preferences.models
class Machine(FieldPermissionModelMixin, models.Model): class Machine(RevMixin, FieldPermissionModelMixin, models.Model):
""" Class définissant une machine, object parent user, objets fils """ Class définissant une machine, object parent user, objets fils
interfaces""" interfaces"""
PRETTY_NAME = "Machine" PRETTY_NAME = "Machine"
...@@ -163,7 +163,7 @@ class Machine(FieldPermissionModelMixin, models.Model): ...@@ -163,7 +163,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
return str(self.user) + ' - ' + str(self.id) + ' - ' + str(self.name) return str(self.user) + ' - ' + str(self.id) + ' - ' + str(self.name)
class MachineType(AclMixin, models.Model): class MachineType(RevMixin, AclMixin, models.Model):
""" Type de machine, relié à un type d'ip, affecté aux interfaces""" """ Type de machine, relié à un type d'ip, affecté aux interfaces"""
PRETTY_NAME = "Type de machine" PRETTY_NAME = "Type de machine"
...@@ -203,7 +203,7 @@ class MachineType(AclMixin, models.Model): ...@@ -203,7 +203,7 @@ class MachineType(AclMixin, models.Model):
return self.type return self.type
class IpType(AclMixin, models.Model): class IpType(RevMixin, AclMixin, models.Model):
""" Type d'ip, définissant un range d'ip, affecté aux machine types""" """ Type d'ip, définissant un range d'ip, affecté aux machine types"""
PRETTY_NAME = "Type d'ip" PRETTY_NAME = "Type d'ip"
...@@ -333,7 +333,7 @@ class IpType(AclMixin, models.Model): ...@@ -333,7 +333,7 @@ class IpType(AclMixin, models.Model):
return self.type return self.type
class Vlan(AclMixin, models.Model): class Vlan(RevMixin, AclMixin, models.Model):
""" Un vlan : vlan_id et nom """ Un vlan : vlan_id et nom
On limite le vlan id entre 0 et 4096, comme défini par la norme""" On limite le vlan id entre 0 et 4096, comme défini par la norme"""
PRETTY_NAME = "Vlans" PRETTY_NAME = "Vlans"
...@@ -351,7 +351,7 @@ class Vlan(AclMixin, models.Model): ...@@ -351,7 +351,7 @@ class Vlan(AclMixin, models.Model):
return self.name return self.name
class Nas(AclMixin, models.Model): class Nas(RevMixin, AclMixin, models.Model):
""" Les nas. Associé à un machine_type. """ Les nas. Associé à un machine_type.
Permet aussi de régler le port_access_mode (802.1X ou mac-address) pour Permet aussi de régler le port_access_mode (802.1X ou mac-address) pour
le radius. Champ autocapture de la mac à true ou false""" le radius. Champ autocapture de la mac à true ou false"""
...@@ -390,7 +390,7 @@ class Nas(AclMixin, models.Model): ...@@ -390,7 +390,7 @@ class Nas(AclMixin, models.Model):
return self.name return self.name
class SOA(AclMixin, models.Model): class SOA(RevMixin, AclMixin, models.Model):
""" """
Un enregistrement SOA associé à une extension Un enregistrement SOA associé à une extension
Les valeurs par défault viennent des recommandations RIPE : Les valeurs par défault viennent des recommandations RIPE :
...@@ -467,7 +467,7 @@ class SOA(AclMixin, models.Model): ...@@ -467,7 +467,7 @@ class SOA(AclMixin, models.Model):
class Extension(AclMixin, models.Model): class Extension(RevMixin, AclMixin, models.Model):
""" Extension dns type example.org. Précise si tout le monde peut """ Extension dns type example.org. Précise si tout le monde peut
l'utiliser, associé à un origin (ip d'origine)""" l'utiliser, associé à un origin (ip d'origine)"""
PRETTY_NAME = "Extensions dns" PRETTY_NAME = "Extensions dns"
...@@ -530,7 +530,7 @@ class Extension(AclMixin, models.Model): ...@@ -530,7 +530,7 @@ class Extension(AclMixin, models.Model):
super(Extension, self).clean(*args, **kwargs) super(Extension, self).clean(*args, **kwargs)
class Mx(AclMixin, models.Model): class Mx(RevMixin, AclMixin, models.Model):
""" Entrées des MX. Enregistre la zone (extension) associée et la """ Entrées des MX. Enregistre la zone (extension) associée et la
priorité priorité
Todo : pouvoir associer un MX à une interface """ Todo : pouvoir associer un MX à une interface """
...@@ -555,7 +555,7 @@ class Mx(AclMixin, models.Model): ...@@ -555,7 +555,7 @@ class Mx(AclMixin, models.Model):
return str(self.zone) + ' ' + str(self.priority) + ' ' + str(self.name) return str(self.zone) + ' ' + str(self.priority) + ' ' + str(self.name)
class Ns(AclMixin, models.Model): class Ns(RevMixin, AclMixin, models.Model):
"""Liste des enregistrements name servers par zone considéérée""" """Liste des enregistrements name servers par zone considéérée"""
PRETTY_NAME = "Enregistrements NS" PRETTY_NAME = "Enregistrements NS"
...@@ -576,7 +576,7 @@ class Ns(AclMixin, models.Model): ...@@ -576,7 +576,7 @@ class Ns(AclMixin, models.Model):
return str(self.zone) + ' ' + str(self.ns) return str(self.zone) + ' ' + str(self.ns)
class Txt(AclMixin, models.Model): class Txt(RevMixin, AclMixin, models.