8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-12-25 00:13:45 +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:
Maël Kervella 2017-11-15 15:45:42 +01:00
commit 2c08510e3d
8 changed files with 68 additions and 29 deletions

View file

@ -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)

View file

@ -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
)

View 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),
),
]

View 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',
),
]

View file

@ -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')

View file

@ -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)

View file

@ -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'),

View file

@ -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