# -*- coding: utf-8 -*- import simplejson as json from django.shortcuts import get_object_or_404 from django.http import HttpResponseBadRequest, HttpResponse from django.views.decorators.http import require_POST from django.views.decorators.csrf import csrf_protect from django.contrib.auth.decorators import login_required from .. import models, forms from .profile import _send_profile_email, _profile_get_pdf @login_required @require_POST @csrf_protect def profile_filters_edit_ajax(request): """Сохранить фильтры реквизитов профиля - AJAX.""" if not request.is_ajax(): return HttpResponseBadRequest() profile = get_object_or_404(models.UserProfile, user=request.user) accounts = models.BankAccount.objects.get_all(request.user) filters_form_class = forms.get_profile_filters_form_class(profile.profile_type) filters = models.UserProfileFilters.objects.get_or_create_filters(user=request.user) form = filters_form_class(data=request.POST, instance=filters, profile=profile, accounts=accounts) if form.is_valid(): form.save() non_field_errors = form.non_field_errors() if not form.is_valid(): non_field_errors.append(u'Заполните/исправьте выделенные поля.') data = { 'success': form.is_valid(), 'field_errors': form.errors, # ошибки полей 'form_errors': non_field_errors, # ошибки формы } return HttpResponse(json.dumps(data), mimetype='application/json') @login_required @require_POST @csrf_protect def profile_email_ajax(request): """Обработка формы отправки профиля пользователя на email аттачем в PDF - AJAX.""" if not request.is_ajax(): return HttpResponseBadRequest() form_class = forms.EmailProfileForm profile = get_object_or_404(models.UserProfile, user=request.user) filters = models.UserProfileFilters.objects.get_or_create_filters(user=request.user) form = form_class(data=request.POST) if form.is_valid(): _send_profile_email( subject = u'Реквизиты %s' % profile.get_company_name(), to = form.cleaned_data['to'], body = form.cleaned_data['body'], pdf_content = _profile_get_pdf(request, profile, filters.bank_account, filters) ) non_field_errors = form.non_field_errors() if not form.is_valid(): non_field_errors.append(u'Заполните/исправьте выделенные поля.') data = { 'success': form.is_valid(), 'field_errors': form.errors, # ошибки полей 'form_errors': non_field_errors, # ошибки формы } return HttpResponse(json.dumps(data), mimetype='application/json')