mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-23 15:33:45 +00:00
Implementation des mixins pour revisions par l'app Machine
This commit is contained in:
parent
7c5f81f034
commit
9028760366
3 changed files with 91 additions and 205 deletions
|
@ -56,8 +56,9 @@ from .models import (
|
||||||
OuverturePortList,
|
OuverturePortList,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from re2o.mixins import FormRevMixin
|
||||||
|
|
||||||
class EditMachineForm(ModelForm):
|
class EditMachineForm(FormRevMixin, ModelForm):
|
||||||
"""Formulaire d'édition d'une machine"""
|
"""Formulaire d'édition d'une machine"""
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Machine
|
model = Machine
|
||||||
|
@ -82,7 +83,7 @@ class BaseEditMachineForm(EditMachineForm):
|
||||||
fields = ['name', 'active']
|
fields = ['name', 'active']
|
||||||
|
|
||||||
|
|
||||||
class EditInterfaceForm(ModelForm):
|
class EditInterfaceForm(FormRevMixin, ModelForm):
|
||||||
"""Edition d'une interface. Edition complète"""
|
"""Edition d'une interface. Edition complète"""
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Interface
|
model = Interface
|
||||||
|
@ -168,7 +169,7 @@ class BaseEditInterfaceForm(EditInterfaceForm):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -184,7 +185,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
|
||||||
|
@ -200,7 +201,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(),
|
||||||
|
@ -216,7 +217,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
|
||||||
|
@ -229,7 +230,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.all(),
|
queryset=MachineType.objects.all(),
|
||||||
|
@ -238,7 +239,7 @@ class DelMachineTypeForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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:
|
||||||
|
@ -260,7 +261,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.all(),
|
queryset=IpType.objects.all(),
|
||||||
|
@ -269,7 +270,7 @@ class DelIpTypeForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -284,7 +285,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.all(),
|
queryset=Extension.objects.all(),
|
||||||
|
@ -293,7 +294,7 @@ class DelExtensionForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -304,7 +305,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.all(),
|
queryset=SOA.objects.all(),
|
||||||
|
@ -313,7 +314,7 @@ class DelSOAForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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):
|
||||||
).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.all(),
|
queryset=Mx.objects.all(),
|
||||||
|
@ -336,7 +337,7 @@ class DelMxForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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 """
|
||||||
|
@ -352,7 +353,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.all(),
|
queryset=Ns.objects.all(),
|
||||||
|
@ -361,7 +362,7 @@ class DelNsForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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 = Text
|
model = Text
|
||||||
|
@ -372,7 +373,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=Text.objects.all(),
|
queryset=Text.objects.all(),
|
||||||
|
@ -381,7 +382,7 @@ class DelTxtForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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:
|
||||||
|
@ -393,7 +394,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.all(),
|
queryset=Nas.objects.all(),
|
||||||
|
@ -402,7 +403,7 @@ class DelNasForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -422,7 +423,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.all(),
|
queryset=Service.objects.all(),
|
||||||
|
@ -431,7 +432,7 @@ class DelServiceForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -442,7 +443,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.all(),
|
queryset=Vlan.objects.all(),
|
||||||
|
@ -451,7 +452,7 @@ class DelVlanForm(Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
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:
|
||||||
|
@ -467,7 +468,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:
|
||||||
|
|
|
@ -37,8 +37,9 @@ from django.core.validators import MaxValueValidator
|
||||||
|
|
||||||
from macaddress.fields import MACAddressField
|
from macaddress.fields import MACAddressField
|
||||||
|
|
||||||
|
from re2o.mixins import RevMixin
|
||||||
|
|
||||||
class Machine(models.Model):
|
class Machine(RevMixin, 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"
|
||||||
|
@ -56,7 +57,7 @@ class Machine(models.Model):
|
||||||
return str(self.user) + ' - ' + str(self.id) + ' - ' + str(self.name)
|
return str(self.user) + ' - ' + str(self.id) + ' - ' + str(self.name)
|
||||||
|
|
||||||
|
|
||||||
class MachineType(models.Model):
|
class MachineType(RevMixin, 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"
|
||||||
|
|
||||||
|
@ -77,7 +78,7 @@ class MachineType(models.Model):
|
||||||
return self.type
|
return self.type
|
||||||
|
|
||||||
|
|
||||||
class IpType(models.Model):
|
class IpType(RevMixin, 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"
|
||||||
|
|
||||||
|
@ -187,7 +188,7 @@ class IpType(models.Model):
|
||||||
return self.type
|
return self.type
|
||||||
|
|
||||||
|
|
||||||
class Vlan(models.Model):
|
class Vlan(RevMixin, 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"
|
||||||
|
@ -200,7 +201,7 @@ class Vlan(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class Nas(models.Model):
|
class Nas(RevMixin, 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"""
|
||||||
|
@ -234,7 +235,7 @@ class Nas(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class SOA(models.Model):
|
class SOA(RevMixin, 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 :
|
||||||
|
@ -306,7 +307,7 @@ class SOA(models.Model):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Extension(models.Model):
|
class Extension(RevMixin, 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"
|
||||||
|
@ -346,7 +347,7 @@ class Extension(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class Mx(models.Model):
|
class Mx(RevMixin, 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 """
|
||||||
|
@ -366,7 +367,7 @@ class Mx(models.Model):
|
||||||
return str(self.zone) + ' ' + str(self.priority) + ' ' + str(self.name)
|
return str(self.zone) + ' ' + str(self.priority) + ' ' + str(self.name)
|
||||||
|
|
||||||
|
|
||||||
class Ns(models.Model):
|
class Ns(RevMixin, 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"
|
||||||
|
|
||||||
|
@ -382,7 +383,7 @@ class Ns(models.Model):
|
||||||
return str(self.zone) + ' ' + str(self.ns)
|
return str(self.zone) + ' ' + str(self.ns)
|
||||||
|
|
||||||
|
|
||||||
class Text(models.Model):
|
class Text(RevMixin, models.Model):
|
||||||
""" Un enregistrement TXT associé à une extension"""
|
""" Un enregistrement TXT associé à une extension"""
|
||||||
PRETTY_NAME = "Enregistrement TXT"
|
PRETTY_NAME = "Enregistrement TXT"
|
||||||
|
|
||||||
|
@ -400,7 +401,7 @@ class Text(models.Model):
|
||||||
return str(self.field1).ljust(15) + " IN TXT " + str(self.field2)
|
return str(self.field1).ljust(15) + " IN TXT " + str(self.field2)
|
||||||
|
|
||||||
|
|
||||||
class Interface(models.Model):
|
class Interface(RevMixin, models.Model):
|
||||||
""" Une interface. Objet clef de l'application machine :
|
""" Une interface. Objet clef de l'application machine :
|
||||||
- une address mac unique. Possibilité de la rendre unique avec le
|
- une address mac unique. Possibilité de la rendre unique avec le
|
||||||
typemachine
|
typemachine
|
||||||
|
@ -524,7 +525,7 @@ class Interface(models.Model):
|
||||||
return self.ipv4 and not self.has_private_ip()
|
return self.ipv4 and not self.has_private_ip()
|
||||||
|
|
||||||
|
|
||||||
class Domain(models.Model):
|
class Domain(RevMixin, models.Model):
|
||||||
""" Objet domain. Enregistrement A et CNAME en même temps : permet de
|
""" Objet domain. Enregistrement A et CNAME en même temps : permet de
|
||||||
stocker les alias et les nom de machines, suivant si interface_parent
|
stocker les alias et les nom de machines, suivant si interface_parent
|
||||||
ou cname sont remplis"""
|
ou cname sont remplis"""
|
||||||
|
@ -606,7 +607,7 @@ class Domain(models.Model):
|
||||||
return str(self.name) + str(self.extension)
|
return str(self.name) + str(self.extension)
|
||||||
|
|
||||||
|
|
||||||
class IpList(models.Model):
|
class IpList(RevMixin, models.Model):
|
||||||
PRETTY_NAME = "Addresses ipv4"
|
PRETTY_NAME = "Addresses ipv4"
|
||||||
|
|
||||||
ipv4 = models.GenericIPAddressField(protocol='IPv4', unique=True)
|
ipv4 = models.GenericIPAddressField(protocol='IPv4', unique=True)
|
||||||
|
@ -633,7 +634,7 @@ class IpList(models.Model):
|
||||||
return self.ipv4
|
return self.ipv4
|
||||||
|
|
||||||
|
|
||||||
class Service(models.Model):
|
class Service(RevMixin, models.Model):
|
||||||
""" Definition d'un service (dhcp, dns, etc)"""
|
""" Definition d'un service (dhcp, dns, etc)"""
|
||||||
PRETTY_NAME = "Services à générer (dhcp, dns, etc)"
|
PRETTY_NAME = "Services à générer (dhcp, dns, etc)"
|
||||||
|
|
||||||
|
@ -682,7 +683,7 @@ def regen(service):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class Service_link(models.Model):
|
class Service_link(RevMixin, models.Model):
|
||||||
""" Definition du lien entre serveurs et services"""
|
""" Definition du lien entre serveurs et services"""
|
||||||
PRETTY_NAME = "Relation entre service et serveur"
|
PRETTY_NAME = "Relation entre service et serveur"
|
||||||
|
|
||||||
|
@ -713,7 +714,7 @@ class Service_link(models.Model):
|
||||||
return str(self.server) + " " + str(self.service)
|
return str(self.server) + " " + str(self.service)
|
||||||
|
|
||||||
|
|
||||||
class OuverturePortList(models.Model):
|
class OuverturePortList(RevMixin, models.Model):
|
||||||
"""Liste des ports ouverts sur une interface."""
|
"""Liste des ports ouverts sur une interface."""
|
||||||
PRETTY_NAME = "Profil d'ouverture de ports"
|
PRETTY_NAME = "Profil d'ouverture de ports"
|
||||||
|
|
||||||
|
@ -754,7 +755,7 @@ class OuverturePortList(models.Model):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class OuverturePort(models.Model):
|
class OuverturePort(RevMixin, models.Model):
|
||||||
"""
|
"""
|
||||||
Représente un simple port ou une plage de ports.
|
Représente un simple port ou une plage de ports.
|
||||||
|
|
||||||
|
|
|
@ -235,20 +235,11 @@ def new_machine(request, userid):
|
||||||
domain.instance.interface_parent = new_interface
|
domain.instance.interface_parent = new_interface
|
||||||
if domain.is_valid():
|
if domain.is_valid():
|
||||||
new_domain = domain.save(commit=False)
|
new_domain = domain.save(commit=False)
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
new_machine.save()
|
new_machine.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
new_interface.machine = new_machine
|
new_interface.machine = new_machine
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
new_interface.save()
|
new_interface.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
new_domain.interface_parent = new_interface
|
new_domain.interface_parent = new_interface
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
new_domain.save()
|
new_domain.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "La machine a été créée")
|
messages.success(request, "La machine a été créée")
|
||||||
return redirect("/users/profil/" + str(user.id))
|
return redirect("/users/profil/" + str(user.id))
|
||||||
i_mbf_param = generate_ipv4_mbf_param( interface, False )
|
i_mbf_param = generate_ipv4_mbf_param( interface, False )
|
||||||
|
@ -277,18 +268,9 @@ def edit_interface(request, interfaceid):
|
||||||
new_machine = machine_form.save(commit=False)
|
new_machine = machine_form.save(commit=False)
|
||||||
new_interface = interface_form.save(commit=False)
|
new_interface = interface_form.save(commit=False)
|
||||||
new_domain = domain_form.save(commit=False)
|
new_domain = domain_form.save(commit=False)
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
new_machine.save()
|
new_machine.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in machine_form.changed_data))
|
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
new_interface.save()
|
new_interface.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in interface_form.changed_data))
|
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
new_domain.save()
|
new_domain.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in domain_form.changed_data))
|
|
||||||
messages.success(request, "La machine a été modifiée")
|
messages.success(request, "La machine a été modifiée")
|
||||||
return redirect("/users/profil/" + str(interface.machine.user.id))
|
return redirect("/users/profil/" + str(interface.machine.user.id))
|
||||||
i_mbf_param = generate_ipv4_mbf_param( interface_form, False )
|
i_mbf_param = generate_ipv4_mbf_param( interface_form, False )
|
||||||
|
@ -307,9 +289,7 @@ def del_machine(request, machineid):
|
||||||
messages.error(request, "Vous ne pouvez pas éditer une machine d'un autre user que vous sans droit")
|
messages.error(request, "Vous ne pouvez pas éditer une machine d'un autre user que vous sans droit")
|
||||||
return redirect("/users/profil/" + str(machine.user.id))
|
return redirect("/users/profil/" + str(machine.user.id))
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
machine.delete()
|
machine.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "La machine a été détruite")
|
messages.success(request, "La machine a été détruite")
|
||||||
return redirect("/users/profil/" + str(machine.user.id))
|
return redirect("/users/profil/" + str(machine.user.id))
|
||||||
return form({'objet': machine, 'objet_name': 'machine'}, 'machines/delete.html', request)
|
return form({'objet': machine, 'objet_name': 'machine'}, 'machines/delete.html', request)
|
||||||
|
@ -339,15 +319,9 @@ def new_interface(request, machineid):
|
||||||
new_interface.machine = machine
|
new_interface.machine = machine
|
||||||
if domain_form.is_valid():
|
if domain_form.is_valid():
|
||||||
new_domain = domain_form.save(commit=False)
|
new_domain = domain_form.save(commit=False)
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
new_interface.save()
|
new_interface.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
new_domain.interface_parent = new_interface
|
new_domain.interface_parent = new_interface
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
new_domain.save()
|
new_domain.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "L'interface a été ajoutée")
|
messages.success(request, "L'interface a été ajoutée")
|
||||||
return redirect("/users/profil/" + str(machine.user.id))
|
return redirect("/users/profil/" + str(machine.user.id))
|
||||||
i_mbf_param = generate_ipv4_mbf_param( interface_form, False )
|
i_mbf_param = generate_ipv4_mbf_param( interface_form, False )
|
||||||
|
@ -367,11 +341,9 @@ def del_interface(request, interfaceid):
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
machine = interface.machine
|
machine = interface.machine
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
interface.delete()
|
interface.delete()
|
||||||
if not machine.interface_set.all():
|
if not machine.interface_set.all():
|
||||||
machine.delete()
|
machine.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "L'interface a été détruite")
|
messages.success(request, "L'interface a été détruite")
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
return form({'objet': interface, 'objet_name': 'interface'}, 'machines/delete.html', request)
|
return form({'objet': interface, 'objet_name': 'interface'}, 'machines/delete.html', request)
|
||||||
|
@ -382,10 +354,7 @@ def add_iptype(request):
|
||||||
""" Ajoute un range d'ip. Intelligence dans le models, fonction views minimaliste"""
|
""" Ajoute un range d'ip. Intelligence dans le models, fonction views minimaliste"""
|
||||||
iptype = IpTypeForm(request.POST or None)
|
iptype = IpTypeForm(request.POST or None)
|
||||||
if iptype.is_valid():
|
if iptype.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
iptype.save()
|
iptype.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Ce type d'ip a été ajouté")
|
messages.success(request, "Ce type d'ip a été ajouté")
|
||||||
return redirect("/machines/index_iptype")
|
return redirect("/machines/index_iptype")
|
||||||
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
||||||
|
@ -401,10 +370,7 @@ def edit_iptype(request, iptypeid):
|
||||||
return redirect("/machines/index_iptype/")
|
return redirect("/machines/index_iptype/")
|
||||||
iptype = EditIpTypeForm(request.POST or None, instance=iptype_instance)
|
iptype = EditIpTypeForm(request.POST or None, instance=iptype_instance)
|
||||||
if iptype.is_valid():
|
if iptype.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
iptype.save()
|
iptype.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in iptype.changed_data))
|
|
||||||
messages.success(request, "Type d'ip modifié")
|
messages.success(request, "Type d'ip modifié")
|
||||||
return redirect("/machines/index_iptype/")
|
return redirect("/machines/index_iptype/")
|
||||||
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
||||||
|
@ -418,9 +384,7 @@ def del_iptype(request):
|
||||||
iptype_dels = iptype.cleaned_data['iptypes']
|
iptype_dels = iptype.cleaned_data['iptypes']
|
||||||
for iptype_del in iptype_dels:
|
for iptype_del in iptype_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
iptype_del.delete()
|
iptype_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "Le type d'ip a été supprimé")
|
messages.success(request, "Le type d'ip a été supprimé")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Le type d'ip %s est affectée à au moins une machine, vous ne pouvez pas le supprimer" % iptype_del)
|
messages.error(request, "Le type d'ip %s est affectée à au moins une machine, vous ne pouvez pas le supprimer" % iptype_del)
|
||||||
|
@ -432,10 +396,7 @@ def del_iptype(request):
|
||||||
def add_machinetype(request):
|
def add_machinetype(request):
|
||||||
machinetype = MachineTypeForm(request.POST or None)
|
machinetype = MachineTypeForm(request.POST or None)
|
||||||
if machinetype.is_valid():
|
if machinetype.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
machinetype.save()
|
machinetype.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Ce type de machine a été ajouté")
|
messages.success(request, "Ce type de machine a été ajouté")
|
||||||
return redirect("/machines/index_machinetype")
|
return redirect("/machines/index_machinetype")
|
||||||
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
||||||
|
@ -450,10 +411,7 @@ def edit_machinetype(request, machinetypeid):
|
||||||
return redirect("/machines/index_machinetype/")
|
return redirect("/machines/index_machinetype/")
|
||||||
machinetype = MachineTypeForm(request.POST or None, instance=machinetype_instance)
|
machinetype = MachineTypeForm(request.POST or None, instance=machinetype_instance)
|
||||||
if machinetype.is_valid():
|
if machinetype.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
machinetype.save()
|
machinetype.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in machinetype.changed_data))
|
|
||||||
messages.success(request, "Type de machine modifié")
|
messages.success(request, "Type de machine modifié")
|
||||||
return redirect("/machines/index_machinetype/")
|
return redirect("/machines/index_machinetype/")
|
||||||
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
||||||
|
@ -466,9 +424,7 @@ def del_machinetype(request):
|
||||||
machinetype_dels = machinetype.cleaned_data['machinetypes']
|
machinetype_dels = machinetype.cleaned_data['machinetypes']
|
||||||
for machinetype_del in machinetype_dels:
|
for machinetype_del in machinetype_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
machinetype_del.delete()
|
machinetype_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "Le type de machine a été supprimé")
|
messages.success(request, "Le type de machine a été supprimé")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Le type de machine %s est affectée à au moins une machine, vous ne pouvez pas le supprimer" % machinetype_del)
|
messages.error(request, "Le type de machine %s est affectée à au moins une machine, vous ne pouvez pas le supprimer" % machinetype_del)
|
||||||
|
@ -480,10 +436,7 @@ def del_machinetype(request):
|
||||||
def add_extension(request):
|
def add_extension(request):
|
||||||
extension = ExtensionForm(request.POST or None)
|
extension = ExtensionForm(request.POST or None)
|
||||||
if extension.is_valid():
|
if extension.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
extension.save()
|
extension.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cette extension a été ajoutée")
|
messages.success(request, "Cette extension a été ajoutée")
|
||||||
return redirect("/machines/index_extension")
|
return redirect("/machines/index_extension")
|
||||||
return form({'extensionform': extension}, 'machines/machine.html', request)
|
return form({'extensionform': extension}, 'machines/machine.html', request)
|
||||||
|
@ -498,10 +451,7 @@ def edit_extension(request, extensionid):
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
extension = ExtensionForm(request.POST or None, instance=extension_instance)
|
extension = ExtensionForm(request.POST or None, instance=extension_instance)
|
||||||
if extension.is_valid():
|
if extension.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
extension.save()
|
extension.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in extension.changed_data))
|
|
||||||
messages.success(request, "Extension modifiée")
|
messages.success(request, "Extension modifiée")
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
return form({'extensionform': extension}, 'machines/machine.html', request)
|
return form({'extensionform': extension}, 'machines/machine.html', request)
|
||||||
|
@ -514,9 +464,7 @@ def del_extension(request):
|
||||||
extension_dels = extension.cleaned_data['extensions']
|
extension_dels = extension.cleaned_data['extensions']
|
||||||
for extension_del in extension_dels:
|
for extension_del in extension_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
extension_del.delete()
|
extension_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "L'extension a été supprimée")
|
messages.success(request, "L'extension a été supprimée")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "L'extension %s est affectée à au moins un type de machine, vous ne pouvez pas la supprimer" % extension_del)
|
messages.error(request, "L'extension %s est affectée à au moins un type de machine, vous ne pouvez pas la supprimer" % extension_del)
|
||||||
|
@ -528,10 +476,7 @@ def del_extension(request):
|
||||||
def add_soa(request):
|
def add_soa(request):
|
||||||
soa = SOAForm(request.POST or None)
|
soa = SOAForm(request.POST or None)
|
||||||
if soa.is_valid():
|
if soa.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
soa.save()
|
soa.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cet enregistrement SOA a été ajouté")
|
messages.success(request, "Cet enregistrement SOA a été ajouté")
|
||||||
return redirect("/machines/index_extension")
|
return redirect("/machines/index_extension")
|
||||||
return form({'soaform': soa}, 'machines/machine.html', request)
|
return form({'soaform': soa}, 'machines/machine.html', request)
|
||||||
|
@ -546,10 +491,7 @@ def edit_soa(request, soaid):
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
soa = SOAForm(request.POST or None, instance=soa_instance)
|
soa = SOAForm(request.POST or None, instance=soa_instance)
|
||||||
if soa.is_valid():
|
if soa.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
soa.save()
|
soa.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in soa.changed_data))
|
|
||||||
messages.success(request, "SOA modifié")
|
messages.success(request, "SOA modifié")
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
return form({'soaform': soa}, 'machines/machine.html', request)
|
return form({'soaform': soa}, 'machines/machine.html', request)
|
||||||
|
@ -562,9 +504,7 @@ def del_soa(request):
|
||||||
soa_dels = soa.cleaned_data['soa']
|
soa_dels = soa.cleaned_data['soa']
|
||||||
for soa_del in soa_dels:
|
for soa_del in soa_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
soa_del.delete()
|
soa_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "Le SOA a été supprimée")
|
messages.success(request, "Le SOA a été supprimée")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Erreur le SOA suivant %s ne peut être supprimé" % soa_del)
|
messages.error(request, "Erreur le SOA suivant %s ne peut être supprimé" % soa_del)
|
||||||
|
@ -576,10 +516,7 @@ def del_soa(request):
|
||||||
def add_mx(request):
|
def add_mx(request):
|
||||||
mx = MxForm(request.POST or None)
|
mx = MxForm(request.POST or None)
|
||||||
if mx.is_valid():
|
if mx.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
mx.save()
|
mx.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cet enregistrement mx a été ajouté")
|
messages.success(request, "Cet enregistrement mx a été ajouté")
|
||||||
return redirect("/machines/index_extension")
|
return redirect("/machines/index_extension")
|
||||||
return form({'mxform': mx}, 'machines/machine.html', request)
|
return form({'mxform': mx}, 'machines/machine.html', request)
|
||||||
|
@ -594,10 +531,7 @@ def edit_mx(request, mxid):
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
mx = MxForm(request.POST or None, instance=mx_instance)
|
mx = MxForm(request.POST or None, instance=mx_instance)
|
||||||
if mx.is_valid():
|
if mx.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
mx.save()
|
mx.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in mx.changed_data))
|
|
||||||
messages.success(request, "Mx modifié")
|
messages.success(request, "Mx modifié")
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
return form({'mxform': mx}, 'machines/machine.html', request)
|
return form({'mxform': mx}, 'machines/machine.html', request)
|
||||||
|
@ -610,9 +544,7 @@ def del_mx(request):
|
||||||
mx_dels = mx.cleaned_data['mx']
|
mx_dels = mx.cleaned_data['mx']
|
||||||
for mx_del in mx_dels:
|
for mx_del in mx_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
mx_del.delete()
|
mx_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "L'mx a été supprimée")
|
messages.success(request, "L'mx a été supprimée")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Erreur le Mx suivant %s ne peut être supprimé" % mx_del)
|
messages.error(request, "Erreur le Mx suivant %s ne peut être supprimé" % mx_del)
|
||||||
|
@ -624,10 +556,7 @@ def del_mx(request):
|
||||||
def add_ns(request):
|
def add_ns(request):
|
||||||
ns = NsForm(request.POST or None)
|
ns = NsForm(request.POST or None)
|
||||||
if ns.is_valid():
|
if ns.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
ns.save()
|
ns.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cet enregistrement ns a été ajouté")
|
messages.success(request, "Cet enregistrement ns a été ajouté")
|
||||||
return redirect("/machines/index_extension")
|
return redirect("/machines/index_extension")
|
||||||
return form({'nsform': ns}, 'machines/machine.html', request)
|
return form({'nsform': ns}, 'machines/machine.html', request)
|
||||||
|
@ -642,10 +571,7 @@ def edit_ns(request, nsid):
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
ns = NsForm(request.POST or None, instance=ns_instance)
|
ns = NsForm(request.POST or None, instance=ns_instance)
|
||||||
if ns.is_valid():
|
if ns.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
ns.save()
|
ns.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in ns.changed_data))
|
|
||||||
messages.success(request, "Ns modifié")
|
messages.success(request, "Ns modifié")
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
return form({'nsform': ns}, 'machines/machine.html', request)
|
return form({'nsform': ns}, 'machines/machine.html', request)
|
||||||
|
@ -658,9 +584,7 @@ def del_ns(request):
|
||||||
ns_dels = ns.cleaned_data['ns']
|
ns_dels = ns.cleaned_data['ns']
|
||||||
for ns_del in ns_dels:
|
for ns_del in ns_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
ns_del.delete()
|
ns_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "Le ns a été supprimée")
|
messages.success(request, "Le ns a été supprimée")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Erreur le Ns suivant %s ne peut être supprimé" % ns_del)
|
messages.error(request, "Erreur le Ns suivant %s ne peut être supprimé" % ns_del)
|
||||||
|
@ -672,10 +596,7 @@ def del_ns(request):
|
||||||
def add_txt(request):
|
def add_txt(request):
|
||||||
txt = TxtForm(request.POST or None)
|
txt = TxtForm(request.POST or None)
|
||||||
if txt.is_valid():
|
if txt.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
txt.save()
|
txt.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cet enregistrement text a été ajouté")
|
messages.success(request, "Cet enregistrement text a été ajouté")
|
||||||
return redirect("/machines/index_extension")
|
return redirect("/machines/index_extension")
|
||||||
return form({'txtform': txt}, 'machines/machine.html', request)
|
return form({'txtform': txt}, 'machines/machine.html', request)
|
||||||
|
@ -690,10 +611,7 @@ def edit_txt(request, txtid):
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
txt = TxtForm(request.POST or None, instance=txt_instance)
|
txt = TxtForm(request.POST or None, instance=txt_instance)
|
||||||
if txt.is_valid():
|
if txt.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
txt.save()
|
txt.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in txt.changed_data))
|
|
||||||
messages.success(request, "Txt modifié")
|
messages.success(request, "Txt modifié")
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
return form({'txtform': txt}, 'machines/machine.html', request)
|
return form({'txtform': txt}, 'machines/machine.html', request)
|
||||||
|
@ -706,9 +624,7 @@ def del_txt(request):
|
||||||
txt_dels = txt.cleaned_data['txt']
|
txt_dels = txt.cleaned_data['txt']
|
||||||
for txt_del in txt_dels:
|
for txt_del in txt_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
txt_del.delete()
|
txt_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "Le txt a été supprimé")
|
messages.success(request, "Le txt a été supprimé")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Erreur le Txt suivant %s ne peut être supprimé" % txt_del)
|
messages.error(request, "Erreur le Txt suivant %s ne peut être supprimé" % txt_del)
|
||||||
|
@ -735,10 +651,7 @@ def add_alias(request, interfaceid):
|
||||||
if alias.is_valid():
|
if alias.is_valid():
|
||||||
alias = alias.save(commit=False)
|
alias = alias.save(commit=False)
|
||||||
alias.cname = interface.domain
|
alias.cname = interface.domain
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
alias.save()
|
alias.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cet alias a été ajouté")
|
messages.success(request, "Cet alias a été ajouté")
|
||||||
return redirect("/machines/index_alias/" + str(interfaceid))
|
return redirect("/machines/index_alias/" + str(interfaceid))
|
||||||
return form({'aliasform': alias}, 'machines/machine.html', request)
|
return form({'aliasform': alias}, 'machines/machine.html', request)
|
||||||
|
@ -755,10 +668,7 @@ def edit_alias(request, aliasid):
|
||||||
return redirect("/users/profil/" + str(request.user.id))
|
return redirect("/users/profil/" + str(request.user.id))
|
||||||
alias = AliasForm(request.POST or None, instance=alias_instance, infra=request.user.has_perms(('infra',)))
|
alias = AliasForm(request.POST or None, instance=alias_instance, infra=request.user.has_perms(('infra',)))
|
||||||
if alias.is_valid():
|
if alias.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
alias_instance = alias.save()
|
alias_instance = alias.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in alias.changed_data))
|
|
||||||
messages.success(request, "Alias modifié")
|
messages.success(request, "Alias modifié")
|
||||||
return redirect("/machines/index_alias/" + str(alias_instance.cname.interface_parent.id))
|
return redirect("/machines/index_alias/" + str(alias_instance.cname.interface_parent.id))
|
||||||
return form({'aliasform': alias}, 'machines/machine.html', request)
|
return form({'aliasform': alias}, 'machines/machine.html', request)
|
||||||
|
@ -778,9 +688,7 @@ def del_alias(request, interfaceid):
|
||||||
alias_dels = alias.cleaned_data['alias']
|
alias_dels = alias.cleaned_data['alias']
|
||||||
for alias_del in alias_dels:
|
for alias_del in alias_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
alias_del.delete()
|
alias_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "L'alias %s a été supprimé" % alias_del)
|
messages.success(request, "L'alias %s a été supprimé" % alias_del)
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Erreur l'alias suivant %s ne peut être supprimé" % alias_del)
|
messages.error(request, "Erreur l'alias suivant %s ne peut être supprimé" % alias_del)
|
||||||
|
@ -793,10 +701,7 @@ def del_alias(request, interfaceid):
|
||||||
def add_service(request):
|
def add_service(request):
|
||||||
service = ServiceForm(request.POST or None)
|
service = ServiceForm(request.POST or None)
|
||||||
if service.is_valid():
|
if service.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
service.save()
|
service.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cet enregistrement service a été ajouté")
|
messages.success(request, "Cet enregistrement service a été ajouté")
|
||||||
return redirect("/machines/index_service")
|
return redirect("/machines/index_service")
|
||||||
return form({'serviceform': service}, 'machines/machine.html', request)
|
return form({'serviceform': service}, 'machines/machine.html', request)
|
||||||
|
@ -811,10 +716,7 @@ def edit_service(request, serviceid):
|
||||||
return redirect("/machines/index_extension/")
|
return redirect("/machines/index_extension/")
|
||||||
service = ServiceForm(request.POST or None, instance=service_instance)
|
service = ServiceForm(request.POST or None, instance=service_instance)
|
||||||
if service.is_valid():
|
if service.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
service.save()
|
service.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in service.changed_data))
|
|
||||||
messages.success(request, "Service modifié")
|
messages.success(request, "Service modifié")
|
||||||
return redirect("/machines/index_service/")
|
return redirect("/machines/index_service/")
|
||||||
return form({'serviceform': service}, 'machines/machine.html', request)
|
return form({'serviceform': service}, 'machines/machine.html', request)
|
||||||
|
@ -827,9 +729,7 @@ def del_service(request):
|
||||||
service_dels = service.cleaned_data['service']
|
service_dels = service.cleaned_data['service']
|
||||||
for service_del in service_dels:
|
for service_del in service_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
service_del.delete()
|
service_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "Le service a été supprimée")
|
messages.success(request, "Le service a été supprimée")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Erreur le service suivant %s ne peut être supprimé" % service_del)
|
messages.error(request, "Erreur le service suivant %s ne peut être supprimé" % service_del)
|
||||||
|
@ -841,10 +741,7 @@ def del_service(request):
|
||||||
def add_vlan(request):
|
def add_vlan(request):
|
||||||
vlan = VlanForm(request.POST or None)
|
vlan = VlanForm(request.POST or None)
|
||||||
if vlan.is_valid():
|
if vlan.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
vlan.save()
|
vlan.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cet enregistrement vlan a été ajouté")
|
messages.success(request, "Cet enregistrement vlan a été ajouté")
|
||||||
return redirect("/machines/index_vlan")
|
return redirect("/machines/index_vlan")
|
||||||
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
||||||
|
@ -859,10 +756,7 @@ def edit_vlan(request, vlanid):
|
||||||
return redirect("/machines/index_vlan/")
|
return redirect("/machines/index_vlan/")
|
||||||
vlan = VlanForm(request.POST or None, instance=vlan_instance)
|
vlan = VlanForm(request.POST or None, instance=vlan_instance)
|
||||||
if vlan.is_valid():
|
if vlan.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
vlan.save()
|
vlan.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in vlan.changed_data))
|
|
||||||
messages.success(request, "Vlan modifié")
|
messages.success(request, "Vlan modifié")
|
||||||
return redirect("/machines/index_vlan/")
|
return redirect("/machines/index_vlan/")
|
||||||
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
||||||
|
@ -875,9 +769,7 @@ def del_vlan(request):
|
||||||
vlan_dels = vlan.cleaned_data['vlan']
|
vlan_dels = vlan.cleaned_data['vlan']
|
||||||
for vlan_del in vlan_dels:
|
for vlan_del in vlan_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
vlan_del.delete()
|
vlan_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "Le vlan a été supprimée")
|
messages.success(request, "Le vlan a été supprimée")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Erreur le Vlan suivant %s ne peut être supprimé" % vlan_del)
|
messages.error(request, "Erreur le Vlan suivant %s ne peut être supprimé" % vlan_del)
|
||||||
|
@ -889,10 +781,7 @@ def del_vlan(request):
|
||||||
def add_nas(request):
|
def add_nas(request):
|
||||||
nas = NasForm(request.POST or None)
|
nas = NasForm(request.POST or None)
|
||||||
if nas.is_valid():
|
if nas.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
nas.save()
|
nas.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cet enregistrement nas a été ajouté")
|
messages.success(request, "Cet enregistrement nas a été ajouté")
|
||||||
return redirect("/machines/index_nas")
|
return redirect("/machines/index_nas")
|
||||||
return form({'nasform': nas}, 'machines/machine.html', request)
|
return form({'nasform': nas}, 'machines/machine.html', request)
|
||||||
|
@ -907,10 +796,7 @@ def edit_nas(request, nasid):
|
||||||
return redirect("/machines/index_nas/")
|
return redirect("/machines/index_nas/")
|
||||||
nas = NasForm(request.POST or None, instance=nas_instance)
|
nas = NasForm(request.POST or None, instance=nas_instance)
|
||||||
if nas.is_valid():
|
if nas.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
nas.save()
|
nas.save()
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in nas.changed_data))
|
|
||||||
messages.success(request, "Nas modifié")
|
messages.success(request, "Nas modifié")
|
||||||
return redirect("/machines/index_nas/")
|
return redirect("/machines/index_nas/")
|
||||||
return form({'nasform': nas}, 'machines/machine.html', request)
|
return form({'nasform': nas}, 'machines/machine.html', request)
|
||||||
|
@ -923,9 +809,7 @@ def del_nas(request):
|
||||||
nas_dels = nas.cleaned_data['nas']
|
nas_dels = nas.cleaned_data['nas']
|
||||||
for nas_del in nas_dels:
|
for nas_del in nas_dels:
|
||||||
try:
|
try:
|
||||||
with transaction.atomic(), reversion.create_revision():
|
|
||||||
nas_del.delete()
|
nas_del.delete()
|
||||||
reversion.set_user(request.user)
|
|
||||||
messages.success(request, "Le nas a été supprimé")
|
messages.success(request, "Le nas a été supprimé")
|
||||||
except ProtectedError:
|
except ProtectedError:
|
||||||
messages.error(request, "Erreur le Nas suivant %s ne peut être supprimé" % nas_del)
|
messages.error(request, "Erreur le Nas suivant %s ne peut être supprimé" % nas_del)
|
||||||
|
|
Loading…
Reference in a new issue