Example #1
0
    def get_formset(self):
        formset_list = []
        formset = dict()
        for formset_name in getattr(self.model, 'list_formset', []):
            formset_list.append(formset_name)
            model = getattr(self.model, formset_name).rel.related_model
            fields = getattr(model, 'list_form_fields', [])
            queryset = model.objects.none()
            if self.user:
                queryset = getattr(self.user, formset_name).all()

            formset_class = modelformset_factory(
                model,
                fields=model.list_form_fields,
                max_num=queryset.count()
            )
            data = []
            for form in formset_class(queryset=queryset):
                item = form.initial.copy()
                item['id'] = form.instance.id
                data.append(item)

            formset[formset_name] = dict(
                name=formset_name,
                label=model._meta.verbose_name_plural,
                form=RemoteForm(modelform_factory(model, form=DirectoryForm, fields=fields)()).as_dict(),
                data=data,
            )
        return formset_list, formset
Example #2
0
 def get(self, request, *args, **kwargs):
     context = dict(
         agent=dict(
             id=self.agent.id,
             code=self.agent.code,
             discount=self.agent.discount,
             level_1=self.agent.level_1,
             level_2=self.agent.level_2,
             level_3=self.agent.level_3,
             bank_account=self.agent.bank_account,
             cache=self.agent.cache,
         ),
         person=dict(
             id=self.agent.person.id,
             full_name=self.agent.person.cache.get('full_name'),
             phone='+%s' % self.agent.person.get_phone(),
             birthday=self.agent.person.birthday.strftime(DATE_FORMAT)
             if self.agent.person.birthday else '',
         ),
         title=self.model._meta.verbose_name,
         error=[],
         permissions=self.permissions,
         form=RemoteForm(self.get_form(),
                         model=self.model,
                         csrf_token=csrf.get_token(self.request)).as_dict(),
     )
     if self.request.GET.get('debug'):
         return render_to_response('debug.jinja2', locals())
     return JsonResponse(context, safe=False)
Example #3
0
 def get(self, request, *args, **kwargs):
     form = self.get_form()
     context = dict(
         title='Регистрация в партнерской программе',
         form=RemoteForm(form).as_dict() if form else None,
         answer=self.answer
     )
     return JsonResponse(context)
Example #4
0
 def get(self, request, *args, **kwargs):
     form = self.get_form()
     context = dict(
         title='Онлайн-заявка',
         form=RemoteForm(form).as_dict() if form else None,
         answer=self.answer
     )
     return JsonResponse(context)
Example #5
0
 def get_context_data(self, **kwargs):
     context = dict(
         title='Регистрация партнера',
         csrf_token=csrf.get_token(self.request),
         # form=self.get_form(),
         form=RemoteForm(self.get_form(),
                         csrf_token=csrf.get_token(self.request)).as_dict(),
         permissions=self.permissions)
     return context
Example #6
0
    def get(self, request, *args, **kwargs):

        if self.kwargs.get('create_from_person'):
            return self.create_user_from_person()

        formset_list, formset = self.get_formset()
        context = dict(
            person_find_form=dict(RemoteForm(PersonFindForm(), csrf_token=csrf.get_token(self.request)).as_dict()),
            form=RemoteForm(self.get_form(), model=self.model, csrf_token=csrf.get_token(self.request)).as_dict(),
            formset_list=formset_list,
            formset=formset,
            formset_errors=self.formset_errors,
            groups=self.get_groups(),
            permissions=self.permissions
        )
        if self.request.GET.get('debug'):
            return render_to_response('debug.jinja2', locals())
        return JsonResponse(context, safe=False)
Example #7
0
 def get(self, request, *args, **kwargs):
     perms, group_perms = self.get_perms()
     context = dict(
         form=RemoteForm(self.get_form(), model=self.model, csrf_token=csrf.get_token(self.request)).as_dict(),
         perms=perms,
         group_perms=group_perms,
     )
     if self.request.GET.get('debug'):
         return render_to_response('debug.jinja2', locals())
     return JsonResponse(context, safe=False)
Example #8
0
    def get(self, request, *args, **kwargs):
        _form = RemoteForm(self.get_form(),
                           model=self.model,
                           csrf_token=csrf.get_token(self.request)).as_dict()
        context = dict(
            title=self.group.__str__() if self.group else 'Новая группа',
            form=_form,
            permissions=self.permissions)

        if self.request.GET.get('debug'):
            return render_to_response('debug.jinja2', locals())
        return JsonResponse(context)
Example #9
0
    def get(self, request, *args, **kwargs):
        if not request.GET:
            return render(request, 'app_vue.jinja2')
        _form = RemoteForm(self.get_form(), model=self.model, csrf_token=csrf.get_token(self.request)).as_dict()
        context = dict(
            title=self.shift.cache.get('title', None) if self.shift else 'Новая смена',
            form=_form,
            permissions=self.permissions
        )

        if self.request.GET.get('debug'):
            return render_to_response('debug.jinja2', locals())
        return JsonResponse(context)
Example #10
0
    def get_formset(self):
        formset_list = []
        formset = dict()
        for formset_name in getattr(self.model, 'list_formset', []):
            formset_list.append(formset_name)
            model = getattr(self.model, formset_name).rel.related_model
            fields = getattr(model, 'list_form_fields', [])

            queryset = model.objects.none()
            if self.object:
                queryset = getattr(self.object, formset_name).all()

            formset_class = modelformset_factory(model,
                                                 fields=model.list_form_fields,
                                                 max_num=queryset.count())
            data = []
            for form in formset_class(queryset=queryset):
                item = RemoteForm(form, model=model).as_dict()['data']
                item['id'] = form.instance.id
                if form.Meta.model._meta.verbose_name == 'Семейные связи':
                    item['relative'] = Person.objects.get(
                        pk=item['relative']).__str__()
                data.append(item)

            # deal.Client.phone
            if self.kwargs.get('phone') and self.model._meta.label == 'deal.Client' \
                    and formset_name == 'phones' and not data:
                data = [{'value': self.kwargs.get('phone'), 'type': 1}]

            formset[formset_name] = dict(
                name=formset_name,
                label=model._meta.verbose_name_plural,
                form=RemoteForm(
                    modelform_factory(model, form=DirectoryForm,
                                      fields=fields)()).as_dict(),
                data=data,
            )
        return formset_list, formset
Example #11
0
    def get(self, request, *args, **kwargs):
        if 'view' not in self.permissions:
            return JsonResponse(dict(answer='No permissions'), safe=False)
        if not request.GET:
            return render(request, 'app_vue.jinja2')

        person_set = self.get_person_set()
        person_set['form'] = RemoteForm(person_set['form']).as_dict()
        person_set['search'] = dict()

        form = RemoteForm(self.get_form(),
                          model=self.model,
                          csrf_token=csrf.get_token(self.request)).as_dict()
        if self.branch.periodic:
            form['fields']['services']['widget']['choices'] = [
                dict(label="Правка", value=1),
                dict(label="Диагностика", value=3)
            ]
        if not form['data']['services']:
            form['data']['services'] = [1]

        context = dict(
            title=self.deal.cache.get('title', None)
            if self.deal else 'Новая сделка',
            id=self.deal.id if self.deal else None,
            form=form,
            person_set=person_set,
            # person_find_form=dict(RemoteForm(PersonFindForm(), csrf_token=csrf.get_token(self.request)).as_dict()),
            stages=self.get_stages(),
            tabs=self.get_tabs(),
            permissions=self.permissions)

        if self.request.GET.get('debug'):
            return render_to_response('debug.jinja2', locals())

        return JsonResponse(context)
Example #12
0
    def get_filters(self, request):
        try:
            filters_form = eval('%sFilterForm' % self.model.__name__)
        except NameError:
            filters_form = FilterForm
        _fields = self.model.get_filter_fields()
        _filters_class = modelform_factory(self.model,
                                           form=filters_form,
                                           fields=_fields)
        _form = _filters_class(request=request, instance=None)

        _remote_form = RemoteForm(_form, model=self.model).as_dict()
        # TODO: отфильтровать по группам доступа
        if self.model.__name__.lower() == 'timetimetable':
            _remote_form['fields']['branch']['widget'][
                'choices'] = get_choices(self.request, 'company.Branch')

        return _remote_form
Example #13
0
 def get_context_data(self, **kwargs):
     agent = dict(id=self.agent.id,
                  position=self.agent.position,
                  position__label=self.agent.get_position_display(),
                  code=self.agent.code,
                  discount=self.agent.discount,
                  level_1=self.agent.level_1,
                  level_2=self.agent.level_2,
                  level_3=self.agent.level_3,
                  bank_account=self.agent.bank_account,
                  bank_account_fio=self.agent.bank_account_fio,
                  cache=self.agent.cache,
                  comment=self.agent.comment,
                  total_sum=self.agent.invites.filter(
                      status='ok').aggregate(Sum('cost'))['cost__sum'])
     if self.agent.referrer:
         agent.update(
             dict(referrer='%s (%s)' %
                  (self.agent.referrer.person.__str__(),
                   self.agent.referrer.code)))
     if self.agent.parent:
         agent.update(
             dict(
                 parent=dict(id=self.agent.parent.id,
                             code=self.agent.parent.code,
                             full_name=self.agent.parent.person.__str__())))
     context = dict(
         agent=agent,
         person=dict(
             id=self.agent.person.id,
             full_name=self.agent.person.cache.get('full_name'),
             phone='+%s' % self.agent.person.get_phone(),
             birthday=self.agent.person.birthday.strftime(DATE_FORMAT)
             if self.agent.person.birthday else '',
         ),
         title=self.model._meta.verbose_name,
         error=[],
         permissions=self.permissions,
         form=RemoteForm(self.get_form(),
                         model=self.model,
                         csrf_token=csrf.get_token(self.request)).as_dict())
     return context
Example #14
0
    def render_to_response(self, context, **response_kwargs):
        if 'view' not in self.permissions:
            return HttpResponse('no perm')
        formset_list, formset = self.get_formset()
        _form = RemoteForm(self.get_form(),
                           model=self.model,
                           csrf_token=csrf.get_token(self.request)).as_dict()

        # TODO: отфильтровать по группам доступа
        if self.model.__name__.lower() == 'expense':
            _form['fields']['branch']['widget']['choices'] = get_choices(
                self.request, 'company.Branch')
        elif self.model.__name__.lower() == 'servicetimetable':
            _form['fields']['service']['widget']['choices'] = get_choices(
                self.request, 'deal.Service')

        title, tabs = self.get_tabs()

        if self.get_form().is_valid() and not self.formset_errors:
            message = dict(type='success', text='Сохранено')
        else:
            message = dict(type='warning', text='Ошибка')

        context = dict(title=title,
                       tabs=tabs,
                       parents=self.parents,
                       form=_form,
                       formset_list=formset_list,
                       formset=formset,
                       formset_errors=self.formset_errors,
                       message=message,
                       permissions=self.permissions)

        if self.request.GET.get('debug'):
            from django.shortcuts import render_to_response
            return render_to_response('debug.jinja2', locals())

        return JsonResponse(context)