mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-30 16:42:25 +00:00
Merge branch 'fix_txt' into 'master'
Fix bug sur l'edition du txt + élargi le champ pour dnssec See merge request federez/re2o!35
This commit is contained in:
commit
5f7f1fd8c0
8 changed files with 68 additions and 29 deletions
|
@ -27,7 +27,7 @@ from django.contrib import admin
|
|||
from reversion.admin import VersionAdmin
|
||||
|
||||
from .models import IpType, Machine, MachineType, Domain, IpList, Interface
|
||||
from .models import Extension, SOA, Mx, Ns, Vlan, Text, Nas, Service
|
||||
from .models import Extension, SOA, Mx, Ns, Vlan, Txt, Nas, Service
|
||||
from .models import OuverturePort, OuverturePortList
|
||||
|
||||
|
||||
|
@ -63,7 +63,7 @@ class NsAdmin(VersionAdmin):
|
|||
pass
|
||||
|
||||
|
||||
class TextAdmin(VersionAdmin):
|
||||
class TxtAdmin(VersionAdmin):
|
||||
pass
|
||||
|
||||
|
||||
|
@ -102,7 +102,7 @@ admin.site.register(Extension, ExtensionAdmin)
|
|||
admin.site.register(SOA, SOAAdmin)
|
||||
admin.site.register(Mx, MxAdmin)
|
||||
admin.site.register(Ns, NsAdmin)
|
||||
admin.site.register(Text, TextAdmin)
|
||||
admin.site.register(Txt, TxtAdmin)
|
||||
admin.site.register(IpList, IpListAdmin)
|
||||
admin.site.register(Interface, InterfaceAdmin)
|
||||
admin.site.register(Domain, DomainAdmin)
|
||||
|
|
|
@ -47,7 +47,7 @@ from .models import (
|
|||
Extension,
|
||||
SOA,
|
||||
Mx,
|
||||
Text,
|
||||
Txt,
|
||||
Ns,
|
||||
Service,
|
||||
Vlan,
|
||||
|
@ -364,7 +364,7 @@ class DelNsForm(Form):
|
|||
class TxtForm(ModelForm):
|
||||
"""Ajout d'un txt pour une zone"""
|
||||
class Meta:
|
||||
model = Text
|
||||
model = Txt
|
||||
fields = '__all__'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
@ -375,7 +375,7 @@ class TxtForm(ModelForm):
|
|||
class DelTxtForm(Form):
|
||||
"""Suppression d'un ou plusieurs TXT"""
|
||||
txt = forms.ModelMultipleChoiceField(
|
||||
queryset=Text.objects.all(),
|
||||
queryset=Txt.objects.all(),
|
||||
label="Enregistrements Txt actuels",
|
||||
widget=forms.CheckboxSelectMultiple
|
||||
)
|
||||
|
|
20
machines/migrations/0064_auto_20171115_0253.py
Normal file
20
machines/migrations/0064_auto_20171115_0253.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.10.7 on 2017-11-15 01:53
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('machines', '0063_auto_20171020_0040'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='text',
|
||||
name='field2',
|
||||
field=models.TextField(max_length=2047),
|
||||
),
|
||||
]
|
19
machines/migrations/0065_auto_20171115_1514.py
Normal file
19
machines/migrations/0065_auto_20171115_1514.py
Normal file
|
@ -0,0 +1,19 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.10.7 on 2017-11-15 14:14
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('machines', '0064_auto_20171115_0253'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='Text',
|
||||
new_name='Txt',
|
||||
),
|
||||
]
|
|
@ -382,13 +382,13 @@ class Ns(models.Model):
|
|||
return str(self.zone) + ' ' + str(self.ns)
|
||||
|
||||
|
||||
class Text(models.Model):
|
||||
class Txt(models.Model):
|
||||
""" Un enregistrement TXT associé à une extension"""
|
||||
PRETTY_NAME = "Enregistrement TXT"
|
||||
|
||||
zone = models.ForeignKey('Extension', on_delete=models.PROTECT)
|
||||
field1 = models.CharField(max_length=255)
|
||||
field2 = models.CharField(max_length=255)
|
||||
field2 = models.TextField(max_length=2047)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.zone) + " : " + str(self.field1) + " " +\
|
||||
|
@ -920,13 +920,13 @@ def ns_post_delete(sender, **kwargs):
|
|||
regen('dns')
|
||||
|
||||
|
||||
@receiver(post_save, sender=Text)
|
||||
@receiver(post_save, sender=Txt)
|
||||
def text_post_save(sender, **kwargs):
|
||||
"""Regeneration dns après modification d'un TXT"""
|
||||
regen('dns')
|
||||
|
||||
|
||||
@receiver(post_delete, sender=Text)
|
||||
@receiver(post_delete, sender=Txt)
|
||||
def text_post_delete(sender, **kwargs):
|
||||
"""Regeneration dns après modification d'un TX"""
|
||||
regen('dns')
|
||||
|
|
|
@ -31,7 +31,7 @@ from machines.models import (
|
|||
IpList,
|
||||
MachineType,
|
||||
Domain,
|
||||
Text,
|
||||
Txt,
|
||||
Mx,
|
||||
Service_link,
|
||||
Ns,
|
||||
|
@ -195,20 +195,20 @@ class MxSerializer(serializers.ModelSerializer):
|
|||
return str(obj.dns_entry)
|
||||
|
||||
|
||||
class TextSerializer(serializers.ModelSerializer):
|
||||
class TxtSerializer(serializers.ModelSerializer):
|
||||
"""Serialisation d'un txt : zone cible et l'entrée txt
|
||||
sont evaluées à part"""
|
||||
zone = serializers.SerializerMethodField('get_zone_name')
|
||||
text_entry = serializers.SerializerMethodField('get_text_name')
|
||||
txt_entry = serializers.SerializerMethodField('get_txt_name')
|
||||
|
||||
class Meta:
|
||||
model = Text
|
||||
fields = ('zone', 'text_entry', 'field1', 'field2')
|
||||
model = Txt
|
||||
fields = ('zone', 'txt_entry', 'field1', 'field2')
|
||||
|
||||
def get_zone_name(self, obj):
|
||||
return str(obj.zone.name)
|
||||
|
||||
def get_text_name(self, obj):
|
||||
def get_txt_name(self, obj):
|
||||
return str(obj.dns_entry)
|
||||
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ urlpatterns = [
|
|||
url(r'^edit_mx/(?P<mxid>[0-9]+)$', views.edit_mx, name='edit-mx'),
|
||||
url(r'^del_mx/$', views.del_mx, name='del-mx'),
|
||||
url(r'^add_txt/$', views.add_txt, name='add-txt'),
|
||||
url(r'^edit_txt/(?P<textid>[0-9]+)$', views.edit_txt, name='edit-txt'),
|
||||
url(r'^edit_txt/(?P<txtid>[0-9]+)$', views.edit_txt, name='edit-txt'),
|
||||
url(r'^del_txt/$', views.del_txt, name='del-txt'),
|
||||
url(r'^add_ns/$', views.add_ns, name='add-ns'),
|
||||
url(r'^edit_ns/(?P<nsid>[0-9]+)$', views.edit_ns, name='edit-ns'),
|
||||
|
@ -94,7 +94,7 @@ urlpatterns = [
|
|||
url(r'^rest/corresp/$', views.corresp, name='corresp'),
|
||||
url(r'^rest/mx/$', views.mx, name='mx'),
|
||||
url(r'^rest/ns/$', views.ns, name='ns'),
|
||||
url(r'^rest/text/$', views.text, name='text'),
|
||||
url(r'^rest/txt/$', views.txt, name='txt'),
|
||||
url(r'^rest/zones/$', views.zones, name='zones'),
|
||||
url(r'^rest/service_servers/$', views.service_servers, name='service-servers'),
|
||||
url(r'^rest/ouverture_ports/$', views.ouverture_ports, name='ouverture-ports'),
|
||||
|
|
|
@ -48,7 +48,7 @@ from machines.serializers import ( FullInterfaceSerializer,
|
|||
InterfaceSerializer,
|
||||
TypeSerializer,
|
||||
DomainSerializer,
|
||||
TextSerializer,
|
||||
TxtSerializer,
|
||||
MxSerializer,
|
||||
ExtensionSerializer,
|
||||
ServiceServersSerializer,
|
||||
|
@ -109,7 +109,7 @@ from .models import (
|
|||
Service_link,
|
||||
Vlan,
|
||||
Nas,
|
||||
Text,
|
||||
Txt,
|
||||
OuverturePortList,
|
||||
OuverturePort
|
||||
)
|
||||
|
@ -721,8 +721,8 @@ def add_txt(request):
|
|||
@permission_required('infra')
|
||||
def edit_txt(request, txtid):
|
||||
try:
|
||||
txt_instance = Text.objects.get(pk=txtid)
|
||||
except Text.DoesNotExist:
|
||||
txt_instance = Txt.objects.get(pk=txtid)
|
||||
except Txt.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
txt = TxtForm(request.POST or None, instance=txt_instance)
|
||||
|
@ -1045,8 +1045,8 @@ def index_extension(request):
|
|||
soa_list = SOA.objects.order_by('name')
|
||||
mx_list = Mx.objects.order_by('zone').select_related('zone').select_related('name__extension')
|
||||
ns_list = Ns.objects.order_by('zone').select_related('zone').select_related('ns__extension')
|
||||
text_list = Text.objects.all().select_related('zone')
|
||||
return render(request, 'machines/index_extension.html', {'extension_list':extension_list, 'soa_list': soa_list, 'mx_list': mx_list, 'ns_list': ns_list, 'text_list' : text_list})
|
||||
txt_list = Txt.objects.all().select_related('zone')
|
||||
return render(request, 'machines/index_extension.html', {'extension_list':extension_list, 'soa_list': soa_list, 'mx_list': mx_list, 'ns_list': ns_list, 'txt_list' : txt_list})
|
||||
|
||||
@login_required
|
||||
def index_alias(request, interfaceid):
|
||||
|
@ -1141,8 +1141,8 @@ def history(request, object, id):
|
|||
return redirect(reverse('machines:index'))
|
||||
elif object == 'txt' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Text.objects.get(pk=id)
|
||||
except Text.DoesNotExist:
|
||||
object_instance = Txt.objects.get(pk=id)
|
||||
except Txt.DoesNotExist:
|
||||
messages.error(request, "Txt inexistant")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'ns' and request.user.has_perms(('cableur',)):
|
||||
|
@ -1338,9 +1338,9 @@ def mx(request):
|
|||
@csrf_exempt
|
||||
@login_required
|
||||
@permission_required('serveur')
|
||||
def text(request):
|
||||
text = Text.objects.all().select_related('zone')
|
||||
seria = TextSerializer(text, many=True)
|
||||
def txt(request):
|
||||
txt = Txt.objects.all().select_related('zone')
|
||||
seria = TxtSerializer(txt, many=True)
|
||||
return JSONResponse(seria.data)
|
||||
|
||||
@csrf_exempt
|
||||
|
|
Loading…
Reference in a new issue