def dispatch(self, request, requestion_id, dst_status): u""" Метод переопределен, чтобы сохранить в атрибутах ``transition`` """ requestion = get_object_or_404(Requestion, id=requestion_id) redirect_to = request.REQUEST.get('next', '') self.redirect_to = check_url( redirect_to, self.default_redirect_to(requestion)) if not requestion.is_available_for_actions: messages.error( request, u"Изменения заявки в статусе '{}' запрещены.".format( requestion.get_status_display() )) return HttpResponseRedirect(self.redirect_to) transition_indexes = workflow.available_transitions( src=requestion.status, dst=int(dst_status)) if transition_indexes: self.transition = workflow.get_transition_by_index( transition_indexes[0]) else: self.transition = None # копирование ролей из workflow в проверку прав if self.transition: # Если на перевод есть права if self.transition.required_permissions: temp_copy = self.transition.required_permissions[:] # Пропустить публичный доступ ``ANONYMOUS_PERMISSION`` if Transition.ANONYMOUS_PERMISSION in temp_copy: temp_copy.remove(Transition.ANONYMOUS_PERMISSION) self.required_permissions = temp_copy # Если переод только внутрисистемный, запретить его выполнение else: self.required_permissions = None # задаем шаблон в зависимости от типа изменения статуса self.template_name = self.get_custom_template_name() or self.template_name response = super(RequestionStatusChange, self).dispatch( request, requestion) # если проверка прав прошла успешно, переход предполагает проверку # документов и у заявки не указан документ, то перенаправляем на # страницу указания документа if (isinstance(response, TemplateResponse) and not isinstance(request, FakeWSGIRequest) and self.transition and self.transition.check_document and requestion.is_fake_identity_documents): return HttpResponseRedirect( u'%s?next=%s' % (reverse('operator_requestion_set_identity_document', kwargs={'requestion_id': requestion_id}), urlquote(request.get_full_path())) ) return response
def dispatch(self, request, requestion_id): if request.method == "GET": redirect_to = request.GET.get("next", "") else: redirect_to = request.POST.get("next", "") self.redirect_to = check_url( redirect_to, reverse("operator_requestion_info", kwargs={"requestion_id": requestion_id}) ) return super(SetIdentityDocument, self).dispatch(request, requestion_id)
def dispatch(self, request, requestion_id, dst_status): u""" Метод переопределен, чтобы сохранить в атрибутах ``transition`` """ requestion = get_object_or_404(Requestion, id=requestion_id) redirect_to = request.REQUEST.get('next', '') self.redirect_to = check_url(redirect_to, self.default_redirect_to(requestion)) transition_indexes = workflow.available_transitions(src=requestion.status, dst=int(dst_status)) if transition_indexes: self.transition = workflow.get_transition_by_index(transition_indexes[0]) else: self.transition = None # копирование ролей из workflow в проверку прав if self.transition: # Если на перевод есть права if self.transition.required_permissions: temp_copy = self.transition.required_permissions[:] # Пропустить публичный доступ ``ANONYMOUS_PERMISSION`` if Transition.ANONYMOUS_PERMISSION in temp_copy: temp_copy.remove(Transition.ANONYMOUS_PERMISSION) self.required_permissions = temp_copy # Если переод только внутрисистемный, запретить его выполнение else: self.required_permissions = None response = super(RequestionStatusChange, self).dispatch(request, requestion) # если проверка прав прошла, то проверяем есть ли у заявки документы if isinstance(response, TemplateResponse): if not requestion.evidience_documents().filter( template__destination=REQUESTION_IDENTITY).exists(): return HttpResponseRedirect( u'%s?next=%s' % (reverse('operator_requestion_set_identity_document', kwargs={'requestion_id': requestion_id}), urlquote(request.get_full_path())) ) return response
def dispatch(self, request): redirect_to = request.REQUEST.get('next', '') redirect_to = check_url(redirect_to, reverse('supervisor_frontpage')) return RequirePermissionsMixin.dispatch(self, request, redirect_to=redirect_to)
def dispatch(self, request): redirect_to = request.GET.get("next") or request.POST.get("next", "") redirect_to = check_url(redirect_to, reverse("supervisor_frontpage")) return RequirePermissionsMixin.dispatch(self, request, redirect_to=redirect_to)
def dispatch(self, request, requestion_id): redirect_to = request.REQUEST.get('next', '') self.redirect_to = check_url(redirect_to, reverse('operator_requestion_info', kwargs={'requestion_id': requestion_id})) return super(SetIdentityDocument, self).dispatch(request, requestion_id)
def dispatch(self, request, backend, association_id): redirect_to = request.GET.get("next") or request.POST.get("next", "") redirect_to = check_url(redirect_to, reverse("frontpage")) return super(AccountSocialAuthDisconnect, self).dispatch( request, backend, association_id, redirect_to=redirect_to )