views: reimplement form_valid() in Validation view (#23303)
We do not want the same behaviour as UserEditCoreView, event if information did not change
This commit is contained in:
parent
8a9082c95b
commit
98386538e2
|
@ -608,11 +608,12 @@ class AppConfig(django.apps.AppConfig):
|
|||
def cut_event_manager_remove_role_member(self, user, role, member, **kwargs):
|
||||
self.log_modification(user, member, u'retire le rôle %s' % role)
|
||||
|
||||
def cut_event_manager_cut_validate(self, user, instance, **kwargs):
|
||||
def cut_event_manager_cut_validate(self, user, instance, context, partner, **kwargs):
|
||||
if instance.attributes.validated:
|
||||
msg = u'modification du profil cœur'
|
||||
else:
|
||||
msg = u'validation du compte'
|
||||
msg += u', contexte "%s" venant de %s' % (context, partner)
|
||||
self.log_modification(user, instance, msg)
|
||||
|
||||
def cut_event_manager_view_user(self, user, instance, **kwargs):
|
||||
|
|
|
@ -101,17 +101,18 @@ class UserEditCoreView(UserEditView):
|
|||
field.required = True
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
def form_valid(self, form, context='office', partner=''):
|
||||
response = super(UserEditCoreView, self).form_valid(form)
|
||||
if form.has_changed():
|
||||
already_validated = form.instance.attributes.validated
|
||||
already_validated = form.instance.attributes.validated
|
||||
if form.has_changed() or not already_validated:
|
||||
form.instance.attributes.validated = True
|
||||
form.instance.attributes.validation_context = 'office'
|
||||
form.instance.attributes.validation_context = context
|
||||
form.instance.attributes.validation_date = now().date()
|
||||
if self.request.user.ou:
|
||||
form.instance.attributes.validation_partner = self.request.user.ou.slug
|
||||
if not partner and self.request.user.ou:
|
||||
partner = self.request.user.ou.slug
|
||||
form.instance.attributes.validation_partner = partner
|
||||
hooks.call_hooks('event', user=self.request.user, name='manager-cut-validate',
|
||||
instance=form.instance, form=form, context='office')
|
||||
instance=form.instance, form=form, context=context, partner=partner)
|
||||
if already_validated:
|
||||
msg = u'Les données cœur ont été modifiées.'
|
||||
else:
|
||||
|
@ -216,8 +217,9 @@ class Validation(UserEditCoreView):
|
|||
if 'refuse' in request.POST:
|
||||
reason = request.POST.get('reason')
|
||||
if not reason:
|
||||
messages.error(request, u'Vous devez préciser une raison pour le refus')
|
||||
messages.error(request, u'Vous devez préciser une raison pour le refus.')
|
||||
return HttpResponseRedirect('')
|
||||
messages.info(request, u'Demande traitée.')
|
||||
self.validation_request.reason = reason
|
||||
self.validation_request.status = models.ValidationRequest.STATUS_REFUSED
|
||||
self.validation_request.validated = now()
|
||||
|
@ -241,13 +243,23 @@ class Validation(UserEditCoreView):
|
|||
kwargs={'pk': validation_request.pk})
|
||||
|
||||
def form_valid(self, form):
|
||||
super(Validation, self).form_valid(form)
|
||||
partner = ''
|
||||
if hasattr(self.validation_request.origin, 'ou') and self.validation_request.origin.ou:
|
||||
partner = self.validation_request.origin.ou.slug
|
||||
if not partner and self.request.user.ou:
|
||||
partner = self.request.user.ou.slug
|
||||
super(UserEditCoreView, self).form_valid(form)
|
||||
form.instance.attributes.validated = True
|
||||
form.instance.attributes.validation_context = 'online'
|
||||
form.instance.attributes.validation_date = now().date()
|
||||
form.instance.attributes.validation_partner = partner
|
||||
hooks.call_hooks('event', user=self.request.user, name='manager-cut-validate',
|
||||
instance=form.instance, form=form, context='office', partner=partner)
|
||||
self.validation_request.status = models.ValidationRequest.STATUS_ACCEPTED
|
||||
self.validation_request.validated = now()
|
||||
self.validation_request.validated_by = self.request.user
|
||||
self.validation_request.save()
|
||||
if hasattr(self.validation_request.origin, 'ou') and self.validation_request.origin.ou:
|
||||
form.instance.attributes.validation_partner = self.validation_request.origin.ou.slug
|
||||
messages.info(self.request, u'Demande traitée.')
|
||||
return self.next_request(self.request)
|
||||
|
||||
validation = Validation.as_view()
|
||||
|
|
Loading…
Reference in New Issue