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
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)
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)
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)
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
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)
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)
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)
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)
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
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)
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
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
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)