示例#1
0
    def post(self, request, requestion):
        form = ChangeRequestionForm(instance=requestion,
            data=request.POST)
        address_form = RequestionAddressForm(instance=requestion.address, data=request.POST)
        if form.is_valid() and address_form.is_valid():
            if form.has_changed() or address_form.has_changed():
                address = address_form.save()
                requestion = form.save(commit=False)
                requestion.address = address
                requestion.save()
#                write logs
                context_dict = {'changed_fields': form.changed_data,
                    'requestion': requestion}
                Logger.objects.create_for_action(CHANGE_REQUESTION_BY_OPERATOR,
                    context_dict=context_dict,
                    extra={'user': request.user, 'obj': requestion})
                messages.success(request, u'Изменения в заявке %s сохранены' % requestion)
            else:
                messages.info(request, u'Заявка %s не была изменена' % requestion)
            return HttpResponseRedirect(
                reverse('operator_requestion_info',
                        kwargs={'requestion_id': requestion.id}))
        else:
            return self.render_to_response(
                {'form': form, 'requestion': requestion, 'address_form': address_form,
                 'openlayers_js': get_openlayers_js()})
示例#2
0
    def post(self, request, profile):
        token_dict = request.session.get('token')
        current_request_token = request.POST.get('token')
        if not token_dict or not(current_request_token in token_dict.keys()):
            return HttpResponseRedirect(request.path)
        if token_dict[current_request_token]:
            requestion = Requestion.objects.get(
                pk=token_dict[current_request_token])
            return HttpResponseRedirect(self.redirect_to(requestion))

        context = self.get_context_data(profile=profile)
        form = self.requestion_form(request.POST)
        benefits_form = self.benefits_form(data=request.POST)
        DocumentFormset = self.get_documents_formset()
        if DocumentFormset:
            formset = DocumentFormset(
                data=request.POST,
                queryset=EvidienceDocument.objects.filter(
                    template__destination=BENEFIT_DOCUMENT))
        else:
            formset = None
        if all((form.is_valid(), benefits_form.is_valid(),
                (not formset or formset.is_valid()))):
            if not profile:
                profile = self.create_profile()
            requestion = form.save(profile=profile)
            pref_sadiks = form.cleaned_data.get('pref_sadiks')
            benefits_form.instance = requestion
            requestion = benefits_form.save()
            find_closest_kg(requestion, save=True)
            if formset:
                formset.instance = requestion
                benefit_documents = formset.save()
            else:
                benefit_documents = None
            context_dict = {
                'requestion': requestion,
                'pref_sadiks': pref_sadiks,
                'benefit_documents': benefit_documents,
                'areas': form.cleaned_data.get('areas')}
            context_dict.update(dict([(field, benefits_form.cleaned_data[field])
                                for field in benefits_form.changed_data]))
            Logger.objects.create_for_action(
                self.logger_action,
                context_dict=context_dict, extra={
                    'user': request.user, 'obj': requestion,
                    'added_pref_sadiks': pref_sadiks})
            messages.info(request,
                          u'Добавлена заявка %s' % requestion.requestion_number)
            request.session['token'][current_request_token] = requestion.id
            request.session.modified = True
            return HttpResponseRedirect(self.redirect_to(requestion))
        else:
            context.update({'form': form, 'benefits_form': benefits_form,
                            'formset': formset,
                            'openlayers_js': get_openlayers_js()})
            return self.render_to_response(context)
示例#3
0
 def get(self, request, *args, **kwargs):
     context = self.get_context_data()
     form = RequestionForm()
     address_form = RequestionAddressForm()
     if settings.FACILITY_STORE == settings.FACILITY_STORE_YES:
         benefits_form = BenefitsForm()
     else:
         benefits_form = BenefitCategoryForm()
     personal_data_approve_form = PersonalDataApproveForm()
     context.update({'form': form, 'address_form': address_form,
         'benefits_form': benefits_form,
         'personal_data_approve_form': personal_data_approve_form,
         'openlayers_js': get_openlayers_js()})
     return self.render_to_response(context)
示例#4
0
 def get(self, request):
     registration_form = OperatorRegistrationForm(
         prefix="user")
     profile_form = OperatorProfileRegistrationForm(prefix="profile")
     requestion_form = OperatorRequestionForm(prefix="requestion")
     address_form = RequestionAddressForm()
     if settings.FACILITY_STORE == settings.FACILITY_STORE_YES:
         benefits_form = BenefitsForm()
     else:
         benefits_form = BenefitCategoryForm()
     context = {'registration_form': registration_form,
         'profile_form': profile_form,
         'requestion_form': requestion_form,
         'benefits_form': benefits_form,
         'address_form': address_form,
         'openlayers_js': get_openlayers_js()}
     return self.render_to_response(context)
示例#5
0
 def post(self, request, sadik):
     form = ChangeSadikForm(data=request.POST, files=request.FILES, instance=sadik)
     if form.is_valid():
         if form.has_changed():
             form.save()
             context_dict = {'sadik': sadik,
                           'cleaned_data': form.cleaned_data,
                           'changed_data': form.changed_data, }
             Logger.objects.create_for_action(CHANGE_SADIK_INFO,
                 context_dict=context_dict,
                 extra={'user': request.user, 'obj': sadik})
             messages.success(request, u'Информация о %s изменена' % sadik)
         else:
             messages.success(request, u'Информация о %s не была изменена' % sadik)
         return HttpResponseRedirect(reverse('sadik_info',
             kwargs={'sadik_id': sadik.id}))
     return self.render_to_response({'form': form, 'sadik': sadik,
          'openlayers_js': get_openlayers_js()})
示例#6
0
    def post(self, request, *args, **kwargs):
        context = self.get_context_data()
        form = RequestionForm(request.POST)
        address_form = RequestionAddressForm(request.POST)
        personal_data_approve_form = PersonalDataApproveForm(request.POST)
        if settings.FACILITY_STORE == settings.FACILITY_STORE_YES:
            benefits_form = BenefitsForm(data=request.POST)
        else:
            benefits_form = BenefitCategoryForm(data=request.POST)
        if (form.is_valid() and benefits_form.is_valid() and
                address_form.is_valid() and personal_data_approve_form.is_valid()):
            profile = request.user.get_profile()
            address = address_form.save()
            requestion = form.save(profile=profile)
            requestion.address = address
            requestion.save()
            pref_sadiks = form.cleaned_data.get('pref_sadiks')
            benefits_form.instance = requestion
            requestion = benefits_form.save()
            context_dict = {'requestion': requestion,
                'pref_sadiks': pref_sadiks,
                'areas': form.cleaned_data.get('areas')}
            context_dict.update(dict([(field, benefits_form.cleaned_data[field])
                for field in benefits_form.changed_data]))
            Logger.objects.create_for_action(ADD_REQUESTION,
                context_dict=context_dict, extra={
                'user': request.user, 'obj': requestion,
                'added_pref_sadiks': pref_sadiks})
            messages.info(request, u'Добавлена заявка %s' % requestion.requestion_number)
#            если были заданы типы льгот, то редирект на изменение документов
            if (settings.FACILITY_STORE == settings.FACILITY_STORE_YES and
                requestion.benefit_category != BenefitCategory.objects.category_without_benefits()):
                return HttpResponseRedirect(reverse("account_benefits_change", kwargs={'requestion_id': requestion.id}))
    #            иначе на страницу с информацией о заявке
            return HttpResponseRedirect(
                reverse('account_requestion_info',
                         kwargs={'requestion_id': requestion.id}))
        else:
            context.update({'form': form, 'benefits_form': benefits_form,
                'address_form': address_form,
                'personal_data_approve_form': personal_data_approve_form,
                'openlayers_js': get_openlayers_js()})
            return self.render_to_response(context)
示例#7
0
 def get(self, request, profile):
     token = get_random_token()
     if request.session.get('token'):
         request.session['token'].update({token: None})
         request.session.modified = True
     else:
         request.session['token'] = {token: None}
     context = self.get_context_data(profile=profile)
     form = self.requestion_form(initial={'token': token})
     benefits_form = self.benefits_form()
     DocumentFormset = self.get_documents_formset()
     if DocumentFormset:
         formset = DocumentFormset(
             queryset=EvidienceDocument.objects.filter(
             template__destination=BENEFIT_DOCUMENT))
     else:
         formset = None
     context.update({
         'form': form, 'benefits_form': benefits_form,
         'formset': formset, 'openlayers_js': get_openlayers_js()})
     return self.render_to_response(context)
示例#8
0
 def get(self, request, requestion):
     form = ChangeRequestionForm(instance=requestion)
     address_form = RequestionAddressForm(instance=requestion.address)
     return self.render_to_response({'requestion': requestion,
         'form': form, 'address_form': address_form, 'openlayers_js': get_openlayers_js()})
示例#9
0
 def get(self, request, sadik):
     form = ChangeSadikForm(instance=sadik)
     return self.render_to_response({'form': form, 'sadik': sadik,
         'openlayers_js': get_openlayers_js()})
示例#10
0
 def post(self, request, sadik):
     form = ChangeSadikForm(data=request.POST, files=request.FILES, instance=sadik)
     if form.is_valid():
         if form.has_changed():
             form.save()
             context_dict = {"sadik": sadik, "cleaned_data": form.cleaned_data, "changed_data": form.changed_data}
             Logger.objects.create_for_action(
                 CHANGE_SADIK_INFO, context_dict=context_dict, extra={"user": request.user, "obj": sadik}
             )
             messages.success(request, u"Информация о %s изменена" % sadik)
         else:
             messages.success(request, u"Информация о %s не была изменена" % sadik)
         return HttpResponseRedirect(reverse("sadik_info", kwargs={"sadik_id": sadik.id}))
     return self.render_to_response({"form": form, "sadik": sadik, "openlayers_js": get_openlayers_js()})
示例#11
0
 def get(self, request, sadik):
     form = ChangeSadikForm(instance=sadik)
     return self.render_to_response({"form": form, "sadik": sadik, "openlayers_js": get_openlayers_js()})
示例#12
0
    def post(self, request):
        temp_password = User.objects.make_random_password()
        registration_form = OperatorRegistrationForm(data=request.POST,
            password=temp_password, prefix="user")
        profile_form = OperatorProfileRegistrationForm(request.POST,
            prefix="profile")
        requestion_form = OperatorRequestionForm(request.POST,
            prefix="requestion")
        address_form = RequestionAddressForm(request.POST)
        if settings.FACILITY_STORE == settings.FACILITY_STORE_YES:
            benefits_form = BenefitsForm(data=request.POST)
        else:
            benefits_form = BenefitCategoryForm(data=request.POST)
        if (registration_form.is_valid() and profile_form.is_valid() and
            requestion_form.is_valid() and benefits_form.is_valid() and address_form.is_valid()):
            user = registration_form.save()
            #        задаем права
            permission = Permission.objects.get(codename=u'is_requester')
            user.user_permissions.add(permission)
            profile = profile_form.save(user=user)
            address = address_form.save()
            requestion = requestion_form.save(profile=profile)
            requestion.address = address
            requestion.save()
            benefits_form.instance = requestion
            requestion = benefits_form.save()
            added_pref_sadiks = requestion_form.cleaned_data.get('pref_sadiks')
            context_dict = {'requestion': requestion,
                          'pref_sadiks': requestion.pref_sadiks.all(),
                          'areas': requestion_form.cleaned_data.get('areas')}
            context_dict.update(dict([(field, benefits_form.cleaned_data[field])
                for field in benefits_form.changed_data]))
#            если указан email, то отсылаем почту
            if user.email:
                verification_key_object = VerificationKey.objects.create_key(user)
                verification_key_object.send_email_verification(password=temp_password)
            Logger.objects.create_for_action(CREATE_PROFILE,
                context_dict={'user': user, 'profile': profile},
                extra={'user': request.user, 'obj': profile})
            Logger.objects.create_for_action(REQUESTION_REGISTRATION,
                context_dict=context_dict,
                extra={'user': request.user, 'obj': requestion,
                    'added_pref_sadiks': added_pref_sadiks, })
            messages.info(request,
                u'Регистрация пользователя прошла успешно. Создана заявка %s' %
                requestion.requestion_number)
#            если были заданы типы льгот, то редирект на изменение документов
            if (settings.FACILITY_STORE == settings.FACILITY_STORE_YES and
                requestion.benefit_category != BenefitCategory.objects.category_without_benefits()):
                return HttpResponseRedirect(reverse("operator_benefits_change", kwargs={'requestion_id': requestion.id}))
#            иначе на страницу с информацией о заявке
            return HttpResponseRedirect(
                reverse('operator_requestion_info',
                    kwargs={'requestion_id': requestion.id}))


        context = {'registration_form': registration_form,
            'profile_form': profile_form,
            'requestion_form': requestion_form, 'address_form': address_form,
            'openlayers_js': get_openlayers_js()}
        return self.render_to_response(context)