You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

76 lines
2.8 KiB

# -*- 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')