def lambda dthandler to def

prod
Dmitriy Shesterkin 9 years ago
parent 9c682d0e6b
commit 107f7684df
  1. 3
      src/commons/forms.py
  2. 3
      src/commons/models.py
  3. 15
      src/commons/paginator.py
  4. 9
      src/commons/pdf_tools.py
  5. 10
      src/commons/utils.py
  6. 1
      src/commons/views.py
  7. 4
      src/commons/xls/xls_to_response.py
  8. 4
      src/customer/views/bank_accounts_ajax.py
  9. 4
      src/docs/views/base_views.py

@ -18,7 +18,8 @@ class _MySuperForm(object):
# Список условно-обязательных полей, у которых нужно установить атрибут required=False.
# Полезно, когда какие-то поля становятся обязательны к заполнению в зависимости от значения других полей.
conditional_fields = [] #TODO мигрировать на unset_required
# TODO мигрировать на unset_required
conditional_fields = []
# Список полей, у которых нужно сбросить признак обязательности: required=False.
# Полезно, когда в базовой форме определяются какие-то поля, которые в одних унаследованных формах обязательны,

@ -1,3 +0,0 @@
from django.db import models
# Create your models here.

@ -9,14 +9,15 @@ from commons.utils import safe_int
# допустимые значения `per_page`
_ALLOW_PER_PAGE = (10, 20, 50, 75, 100,) # по умолчанию
# по умолчанию
_ALLOW_PER_PAGE = (10, 20, 50, 75, 100,)
ALLOW_PER_PAGE = getattr(settings, 'ALLOW_PER_PAGE', _ALLOW_PER_PAGE)
class PaginationForm(forms.Form):
"""Форма для пагинатора со списком допустимых значений `per_page`."""
per_page = forms.ChoiceField(label=u'записей на странице', choices=zip(ALLOW_PER_PAGE, ALLOW_PER_PAGE),
required=False)
per_page = forms.ChoiceField(label=u'записей на странице',
choices=zip(ALLOW_PER_PAGE, ALLOW_PER_PAGE), required=False)
def save_per_page_value(func):
@ -32,7 +33,8 @@ def save_per_page_value(func):
per_page = safe_int(request.POST[key])
if per_page in ALLOW_PER_PAGE:
if hasattr(output, 'set_cookie'):
max_age = 365*24*60*60 # год
# год
max_age = 365 * 24 * 60 * 60
output.set_cookie(key, per_page, max_age)
return output
return wrapper
@ -60,7 +62,8 @@ def pagination(request, object_list, page_num=None, form_class=PaginationForm):
"""Создает и возвращает объект django.core.paginator.Paginator и,
если form_class!=None, форму со списком допустимых значений `per_page`.
"""
per_page = get_per_page_value(request) # кол-во записей на странице
# кол-во записей на странице
per_page = get_per_page_value(request)
# пагинатор
paginator = Paginator(object_list, per_page)
page_num = max(1, safe_int(page_num, 1))
@ -71,5 +74,5 @@ def pagination(request, object_list, page_num=None, form_class=PaginationForm):
# форма
form = None
if form_class:
form = PaginationForm(initial={'per_page': per_page,})
form = PaginationForm(initial={'per_page': per_page})
return objects, form

@ -9,7 +9,9 @@ from django.http import HttpResponse
# TODO: merge with src/commons/xls/xls_to_response.py => common def
def pdf_to_response(content, filename=None):
"""Выводит content в django.http.HttpResponse, который и возвращает."""
"""
Выводит content в django.http.HttpResponse, который и возвращает.
"""
response = HttpResponse(content, content_type='application/pdf')
if filename:
filename = filename.replace('"', "''")
@ -20,7 +22,10 @@ def pdf_to_response(content, filename=None):
def render_pdf_to_string(request, template_name, dictionary=None):
"""Рендерит html шаблон в pdf. Возвращает строку, в которой содержится сгенерированный pdf."""
"""
Рендерит html шаблон в pdf. Возвращает строку,
в которой содержится сгенерированный pdf.
"""
template = get_template(template_name)
html = template.render(Context(dictionary))

@ -3,7 +3,9 @@ import datetime
# convert datetime to json
dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime.datetime) or isinstance(obj, datetime.date) else None
def dthandler():
return lambda obj: obj.isoformat() if \
isinstance(obj, datetime.datetime) or isinstance(obj, datetime.date) else None
def safe_int(value, default=None):
@ -15,5 +17,7 @@ def safe_int(value, default=None):
def only_numerics(value):
"""Убирает из переданной строки все не цифровые символы."""
return u''.join(c for c in value if c.isdigit())
"""
Убирает из переданной строки все не цифровые символы.
"""
return u''.join(c for c in value if c.isdigit())

@ -1 +0,0 @@
# Create your views here.

@ -4,7 +4,9 @@ from django.http import HttpResponse
def xls_to_response(content, filename=None):
"""Выводит content в django.http.HttpResponse, который и возвращает."""
"""
Выводит content в django.http.HttpResponse, который и возвращает.
"""
response = HttpResponse(content, content_type='application/ms-excel')
if filename:
filename = filename.replace('"', "''")

@ -31,7 +31,7 @@ def bank_accounts_list_ajax(request):
a['edit_url'] = reverse('customer_bank_accounts_edit', kwargs={'id': a['pk']})
a['delete_url'] = reverse('customer_bank_accounts_delete', kwargs={'id': a['pk']})
data = json.dumps(list(accounts), default=dthandler)
data = json.dumps(list(accounts), default=dthandler())
return HttpResponse(data, content_type='application/json')
@ -54,7 +54,7 @@ def bank_accounts_get_ajax(request, id):
account = get_object_or_404(models.BankAccount.objects.values(*fields_list),
pk=id, company=request.user.profile)
data = json.dumps(account, default=dthandler)
data = json.dumps(account, default=dthandler())
return HttpResponse(data, content_type='application/json')

@ -599,7 +599,7 @@ class BaseViews(object):
'form_errors': non_field_errors, # ошибки формы
}
if form.is_valid() and result:
data['message'] = {'title': 'Инфо', 'msg': 'Письмо отправлено.',}
data['message'] = {'title': 'Инфо', 'msg': 'Письмо отправлено.'}
return HttpResponse(json.dumps(data), content_type='application/json')
@ -608,7 +608,7 @@ class BaseViews(object):
if not self.request.is_ajax():
return HttpResponseBadRequest()
obj = self.get_obj(kwargs['id'], only_form_fields=True)
data = json.dumps(obj, default=dthandler)
data = json.dumps(obj, default=dthandler())
return HttpResponse(data, content_type='application/json')
# -----------------------------------------------------------------------------

Loading…
Cancel
Save