diff --git a/cotisations/views.py b/cotisations/views.py index 974f659e..6bf58994 100644 --- a/cotisations/views.py +++ b/cotisations/views.py @@ -249,8 +249,10 @@ def edit_facture(request, facture, factureid): ) vente_form = vente_form_set(request.POST or None, queryset=ventes_objects) if facture_form.is_valid() and vente_form.is_valid(): - facture_form.save() - vente_form.save() + if facture_form.changed_data: + facture_form.save() + if vente_form.changed_data: + vente_form.save() messages.success(request, "La facture a bien été modifiée") return redirect(reverse('cotisations:index')) return form({ @@ -321,8 +323,9 @@ def edit_article(request, article_instance, articleid): Réservé au trésorier""" article = ArticleForm(request.POST or None, instance=article_instance) if article.is_valid(): - article.save() - messages.success(request, "Type d'article modifié") + if article.changed_data: + article.save() + messages.success(request, "Type d'article modifié") return redirect(reverse('cotisations:index-article')) return form({'factureform': article, 'action_name' : 'Editer'}, 'cotisations/facture.html', request) @@ -359,8 +362,9 @@ def edit_paiement(request, paiement_instance, paiementid): """Edition d'un moyen de paiement""" paiement = PaiementForm(request.POST or None, instance=paiement_instance) if paiement.is_valid(): - paiement.save() - messages.success(request, "Type de paiement modifié") + if paiement.changed_data: + paiement.save() + messages.success(request, "Type de paiement modifié") return redirect(reverse('cotisations:index-paiement')) return form({'factureform': paiement, 'action_name' : 'Editer'}, 'cotisations/facture.html', request) @@ -407,8 +411,9 @@ def edit_banque(request, banque_instance, banqueid): """Edite le nom d'une banque""" banque = BanqueForm(request.POST or None, instance=banque_instance) if banque.is_valid(): - banque.save() - messages.success(request, "Banque modifiée") + if banque.changed_data: + banque.save() + messages.success(request, "Banque modifiée") return redirect(reverse('cotisations:index-banque')) return form({'factureform': banque, 'action_name' : 'Editer'}, 'cotisations/facture.html', request) diff --git a/machines/views.py b/machines/views.py index dcc43ff9..a3cfe209 100644 --- a/machines/views.py +++ b/machines/views.py @@ -277,9 +277,12 @@ def edit_interface(request, interface_instance, interfaceid): new_machine = machine_form.save(commit=False) new_interface = interface_form.save(commit=False) new_domain = domain_form.save(commit=False) - new_machine.save() - new_interface.save() - new_domain.save() + if machine_form.changed_data: + new_machine.save() + if interface_form.changed_data: + new_interface.save() + if domain_form.changed_data: + new_domain.save() messages.success(request, "La machine a été modifiée") return redirect(reverse( 'users:profil', @@ -375,8 +378,9 @@ def edit_ipv6list(request, ipv6list_instance, ipv6listid): """Edition d'une ipv6""" ipv6 = Ipv6ListForm(request.POST or None, instance=ipv6list_instance, user=request.user) if ipv6.is_valid(): - ipv6.save() - messages.success(request, "Ipv6 modifiée") + if ipv6.changed_data: + ipv6.save() + messages.success(request, "Ipv6 modifiée") return redirect(reverse( 'machines:index-ipv6', kwargs={'interfaceid':str(ipv6list_instance.interface.id)} @@ -416,8 +420,9 @@ def edit_iptype(request, iptype_instance, iptypeid): iptype = EditIpTypeForm(request.POST or None, instance=iptype_instance) if iptype.is_valid(): - iptype.save() - messages.success(request, "Type d'ip modifié") + if iptype.changed_data: + iptype.save() + messages.success(request, "Type d'ip modifié") return redirect(reverse('machines:index-iptype')) return form({'iptypeform': iptype, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -451,11 +456,11 @@ def add_machinetype(request): @login_required @can_edit(MachineType) def edit_machinetype(request, machinetype_instance, machinetypeid): - machinetype = MachineTypeForm(request.POST or None, instance=machinetype_instance) if machinetype.is_valid(): - machinetype.save() - messages.success(request, "Type de machine modifié") + if machinetype.changed_data: + machinetype.save() + messages.success(request, "Type de machine modifié") return redirect(reverse('machines:index-machinetype')) return form({'machinetypeform': machinetype, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -477,7 +482,6 @@ def del_machinetype(request, instances): @login_required @can_create(Extension) def add_extension(request): - extension = ExtensionForm(request.POST or None) if extension.is_valid(): extension.save() @@ -488,11 +492,11 @@ def add_extension(request): @login_required @can_edit(Extension) def edit_extension(request, extension_instance, extensionid): - extension = ExtensionForm(request.POST or None, instance=extension_instance) if extension.is_valid(): - extension.save() - messages.success(request, "Extension modifiée") + if extension.changed_data: + extension.save() + messages.success(request, "Extension modifiée") return redirect(reverse('machines:index-extension')) return form({'extensionform': extension, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -514,7 +518,6 @@ def del_extension(request, instances): @login_required @can_create(SOA) def add_soa(request): - soa = SOAForm(request.POST or None) if soa.is_valid(): soa.save() @@ -525,11 +528,11 @@ def add_soa(request): @login_required @can_edit(SOA) def edit_soa(request, soa_instance, soaid): - soa = SOAForm(request.POST or None, instance=soa_instance) if soa.is_valid(): - soa.save() - messages.success(request, "SOA modifié") + if soa.changed_data: + soa.save() + messages.success(request, "SOA modifié") return redirect(reverse('machines:index-extension')) return form({'soaform': soa, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -551,7 +554,6 @@ def del_soa(request, instances): @login_required @can_create(Mx) def add_mx(request): - mx = MxForm(request.POST or None) if mx.is_valid(): mx.save() @@ -562,11 +564,11 @@ def add_mx(request): @login_required @can_edit(Mx) def edit_mx(request, mx_instance, mxid): - mx = MxForm(request.POST or None, instance=mx_instance) if mx.is_valid(): - mx.save() - messages.success(request, "Mx modifié") + if mx.changed_data: + mx.save() + messages.success(request, "Mx modifié") return redirect(reverse('machines:index-extension')) return form({'mxform': mx, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -588,7 +590,6 @@ def del_mx(request, instances): @login_required @can_create(Ns) def add_ns(request): - ns = NsForm(request.POST or None) if ns.is_valid(): ns.save() @@ -599,11 +600,11 @@ def add_ns(request): @login_required @can_edit(Ns) def edit_ns(request, ns_instance, nsid): - ns = NsForm(request.POST or None, instance=ns_instance) if ns.is_valid(): - ns.save() - messages.success(request, "Ns modifié") + if ns.changed_data: + ns.save() + messages.success(request, "Ns modifié") return redirect(reverse('machines:index-extension')) return form({'nsform': ns, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -625,7 +626,6 @@ def del_ns(request, instances): @login_required @can_create(Txt) def add_txt(request): - txt = TxtForm(request.POST or None) if txt.is_valid(): txt.save() @@ -636,11 +636,11 @@ def add_txt(request): @login_required @can_edit(Txt) def edit_txt(request, txt_instance, txtid): - txt = TxtForm(request.POST or None, instance=txt_instance) if txt.is_valid(): - txt.save() - messages.success(request, "Txt modifié") + if txt.changed_data: + txt.save() + messages.success(request, "Txt modifié") return redirect(reverse('machines:index-extension')) return form({'txtform': txt, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -662,7 +662,6 @@ def del_txt(request, instances): @login_required @can_create(Srv) def add_srv(request): - srv = SrvForm(request.POST or None) if srv.is_valid(): srv.save() @@ -673,11 +672,11 @@ def add_srv(request): @login_required @can_edit(Srv) def edit_srv(request, srv_instance, srvid): - srv = SrvForm(request.POST or None, instance=srv_instance) if srv.is_valid(): - srv.save() - messages.success(request, "Srv modifié") + if srv.changed_data: + srv.save() + messages.success(request, "Srv modifié") return redirect(reverse('machines:index-extension')) return form({'srvform': srv, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -700,7 +699,6 @@ def del_srv(request, instances): @can_create(Domain) @can_edit(Interface) def add_alias(request, interface, interfaceid): - alias = AliasForm(request.POST or None, user=request.user) if alias.is_valid(): alias = alias.save(commit=False) @@ -716,11 +714,11 @@ def add_alias(request, interface, interfaceid): @login_required @can_edit(Domain) def edit_alias(request, domain_instance, domainid): - alias = AliasForm(request.POST or None, instance=domain_instance, user=request.user) if alias.is_valid(): - domain_instance = alias.save() - messages.success(request, "Alias modifié") + if alias.changed_data: + domain_instance = alias.save() + messages.success(request, "Alias modifié") return redirect(reverse( 'machines:index-alias', kwargs={'interfaceid':str(domain_instance.cname.interface_parent.id)} @@ -749,7 +747,6 @@ def del_alias(request, interface, interfaceid): @login_required @can_create(Service) def add_service(request): - service = ServiceForm(request.POST or None) if service.is_valid(): service.save() @@ -760,11 +757,11 @@ def add_service(request): @login_required @can_edit(Service) def edit_service(request, service_instance, serviceid): - service = ServiceForm(request.POST or None, instance=service_instance) if service.is_valid(): - service.save() - messages.success(request, "Service modifié") + if service.changed_data: + service.save() + messages.success(request, "Service modifié") return redirect(reverse('machines:index-service')) return form({'serviceform': service, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -786,7 +783,6 @@ def del_service(request, instances): @login_required @can_create(Vlan) def add_vlan(request): - vlan = VlanForm(request.POST or None) if vlan.is_valid(): vlan.save() @@ -797,11 +793,11 @@ def add_vlan(request): @login_required @can_edit(Vlan) def edit_vlan(request, vlan_instance, vlanid): - vlan = VlanForm(request.POST or None, instance=vlan_instance) if vlan.is_valid(): - vlan.save() - messages.success(request, "Vlan modifié") + if vlan.changed_data: + vlan.save() + messages.success(request, "Vlan modifié") return redirect(reverse('machines:index-vlan')) return form({'vlanform': vlan, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -823,7 +819,6 @@ def del_vlan(request, instances): @login_required @can_create(Nas) def add_nas(request): - nas = NasForm(request.POST or None) if nas.is_valid(): nas.save() @@ -834,11 +829,11 @@ def add_nas(request): @login_required @can_edit(Nas) def edit_nas(request, nas_instance, nasid): - nas = NasForm(request.POST or None, instance=nas_instance) if nas.is_valid(): - nas.save() - messages.success(request, "Nas modifié") + if nas.changed_data: + nas.save() + messages.success(request, "Nas modifié") return redirect(reverse('machines:index-nas')) return form({'nasform': nas, 'action_name' : 'Editer'}, 'machines/machine.html', request) @@ -951,7 +946,6 @@ def index_portlist(request): @login_required @can_edit(OuverturePortList) def edit_portlist(request, ouvertureportlist_instance, ouvertureportlistid): - port_list = EditOuverturePortListForm(request.POST or None, instance=ouvertureportlist_instance) port_formset = modelformset_factory( OuverturePort, @@ -962,7 +956,10 @@ def edit_portlist(request, ouvertureportlist_instance, ouvertureportlistid): validate_min=True, )(request.POST or None, queryset=ouvertureportlist_instance.ouvertureport_set.all()) if port_list.is_valid() and port_formset.is_valid(): - pl = port_list.save() + if port_list.changed_data: + pl = port_list.save() + else: + pl = ouvertureportlist_instance instances = port_formset.save(commit=False) for to_delete in port_formset.deleted_objects: to_delete.delete() @@ -983,7 +980,6 @@ def del_portlist(request, port_list_instance, ouvertureportlistid): @login_required @can_create(OuverturePortList) def add_portlist(request): - port_list = EditOuverturePortListForm(request.POST or None) port_formset = modelformset_factory( OuverturePort, @@ -1019,8 +1015,9 @@ def configure_ports(request, interface_instance, interfaceid): messages.error(request, "Attention, l'ipv4 n'est pas publique, l'ouverture n'aura pas d'effet en v4") interface = EditOuverturePortConfigForm(request.POST or None, instance=interface_instance) if interface.is_valid(): - interface.save() - messages.success(request, "Configuration des ports mise à jour.") + if interface.changed_data: + interface.save() + messages.success(request, "Configuration des ports mise à jour.") return redirect(reverse('machines:index')) return form({'interfaceform' : interface, 'action_name' : 'Editer la configuration'}, 'machines/machine.html', request) diff --git a/topologie/models.py b/topologie/models.py index 7e08917c..abbdfa7a 100644 --- a/topologie/models.py +++ b/topologie/models.py @@ -102,6 +102,9 @@ class AccessPoint(AclMixin, Machine): ("view_accesspoint", "Peut voir une borne"), ) + def __str__(self): + return str(self.interface_set.first()) + class Switch(AclMixin, Machine): """ Definition d'un switch. Contient un nombre de ports (number), diff --git a/users/views.py b/users/views.py index 3374fea9..be87dd06 100644 --- a/users/views.py +++ b/users/views.py @@ -152,8 +152,9 @@ def edit_club_admin_members(request, club_instance, clubid): membres d'un club""" club = ClubAdminandMembersForm(request.POST or None, instance=club_instance) if club.is_valid(): - club.save() - messages.success(request, "Le club a bien été modifié") + if club.changed_data: + club.save() + messages.success(request, "Le club a bien été modifié") return redirect(reverse( 'users:profil', kwargs={'userid':str(club_instance.id)} @@ -180,8 +181,9 @@ def edit_info(request, user, userid): user=request.user ) if user.is_valid(): - user.save() - messages.success(request, "L'user a bien été modifié") + if user.changed_data: + user.save() + messages.success(request, "L'user a bien été modifié") return redirect(reverse( 'users:profil', kwargs={'userid':str(userid)} @@ -202,8 +204,9 @@ def state(request, user, userid): user.unarchive() elif state.cleaned_data['state'] == User.STATE_DISABLED: user.state = User.STATE_DISABLED - user.save() - messages.success(request, "Etat changé avec succès") + if user.changed_data: + user.save() + messages.success(request, "Etat changé avec succès") return redirect(reverse( 'users:profil', kwargs={'userid':str(userid)} @@ -216,8 +219,9 @@ def state(request, user, userid): def groups(request, user, userid): group = GroupForm(request.POST or None, instance=user) if group.is_valid(): - group.save() - messages.success(request, "Groupes changés avec succès") + if group.changed_data: + group.save() + messages.success(request, "Groupes changés avec succès") return redirect(reverse( 'users:profil', kwargs={'userid':str(userid)} @@ -233,8 +237,9 @@ def password(request, user, userid): pour tous si droit bureau """ u_form = PassForm(request.POST or None, instance=user, user=request.user) if u_form.is_valid(): - u_form.save() - messages.success(request, "Le mot de passe a changé") + if u_form.changed_data: + u_form.save() + messages.success(request, "Le mot de passe a changé") return redirect(reverse( 'users:profil', kwargs={'userid':str(user.id)} @@ -277,7 +282,8 @@ def edit_serviceuser(request, user, userid): user_object = user.save(commit=False) if user.cleaned_data['password']: user_object.set_password(user.cleaned_data['password']) - user_object.save() + if user.changed_data: + user_object.save() messages.success(request, "L'user a bien été modifié") return redirect(reverse('users:index-serviceusers')) return form({'userform': user, 'action_name':'Editer un serviceuser'}, 'users/user.html', request) @@ -329,8 +335,9 @@ def edit_ban(request, ban_instance, banid): Syntaxe : JJ/MM/AAAA , heure optionnelle, prend effet immédiatement""" ban = BanForm(request.POST or None, instance=ban_instance) if ban.is_valid(): - ban.save() - messages.success(request, "Bannissement modifié") + if ban.changed_data: + ban.save() + messages.success(request, "Bannissement modifié") return redirect(reverse('users:index')) return form({'userform': ban, 'action_name': 'Editer un ban'}, 'users/user.html', request) @@ -375,8 +382,9 @@ def edit_whitelist(request, whitelist_instance, whitelistid): instance=whitelist_instance ) if whitelist.is_valid(): - whitelist.save() - messages.success(request, "Whitelist modifiée") + if whitelist.changed_data: + whitelist.save() + messages.success(request, "Whitelist modifiée") return redirect(reverse('users:index')) return form({'userform': whitelist, 'action_name': 'Editer une whitelist'}, 'users/user.html', request) @@ -401,8 +409,9 @@ def edit_school(request, school_instance, schoolid): la base de donnée, need cableur""" school = SchoolForm(request.POST or None, instance=school_instance) if school.is_valid(): - school.save() - messages.success(request, "Établissement modifié") + if school.changed_data: + school.save() + messages.success(request, "Établissement modifié") return redirect(reverse('users:index-school')) return form({'userform': school, 'action_name':'Editer'}, 'users/user.html', request) @@ -448,8 +457,9 @@ def edit_shell(request, shell_instance, listshellid): """ Editer un shell à partir du listshellid""" shell = ShellForm(request.POST or None, instance=shell_instance) if shell.is_valid(): - shell.save() - messages.success(request, "Le shell a été modifié") + if shell.changed_data: + shell.save() + messages.success(request, "Le shell a été modifié") return redirect(reverse('users:index-shell')) return form({'userform': shell, 'action_name':'Editer'}, 'users/user.html', request) @@ -492,8 +502,9 @@ def edit_listright(request, listright_instance, listrightid): instance=listright_instance ) if listright.is_valid(): - listright.save() - messages.success(request, "Droit modifié") + if listright.changed_data: + listright.save() + messages.success(request, "Droit modifié") return redirect(reverse('users:index-listright')) return form({'userform': listright, 'action_name': 'Editer'}, 'users/user.html', request)