From 877ab9b8bfc69c0484b7246e0f6a6f96ca388f62 Mon Sep 17 00:00:00 2001 From: Dmitriy Shesterkin Date: Mon, 26 Jun 2017 20:23:15 +0300 Subject: [PATCH] f-strings --- conf/env.local | 2 +- conf/env.stage | 1 + requirements/base.txt | 2 +- src/callback/models.py | 11 +--------- src/customer/forms.py | 2 +- src/customer/models.py | 35 +++++++----------------------- src/customer/views/documents.py | 18 +++++++-------- src/dokumentor/settings/testing.py | 2 +- 8 files changed, 23 insertions(+), 50 deletions(-) diff --git a/conf/env.local b/conf/env.local index 7ea75c6..b13262e 100644 --- a/conf/env.local +++ b/conf/env.local @@ -5,7 +5,7 @@ DJANGO_SECRET='CHANGE_ME_IN_PRODUCTION' SSL=False DJANGO_DB='postgres://dokumentor:dokumentor@localhost:5432/dokumentor' -DJANGO_DB_sqlite3='sqlite:////Users/mitri4/Projects/dokumentor/db.sqlite3' +DJANGO_TEST_DB='sqlite:////Users/mitri4/Projects/dokumentor/test_db.sqlite3' DJANGO_FROM_EMAIL='root@localhost' DJANGO_EMAIL_HOST='' diff --git a/conf/env.stage b/conf/env.stage index 9f28abc..ce7315d 100644 --- a/conf/env.stage +++ b/conf/env.stage @@ -5,6 +5,7 @@ SSL=False DJANGO_SECRET='ewfrevwavrvq3tg4wvf3tvw4ug97hf3t48w7hfy3rf32' DJANGO_DB='postgres://dokumentor:dokumentor@db:5432/dokumentor' +DJANGO_TEST_DB='sqlite:////opt/app/test_db.sqlite3' DJANGO_FROM_EMAIL='Открытые технологии ' DJANGO_EMAIL_HOST='smtp.yandex.ru' diff --git a/requirements/base.txt b/requirements/base.txt index 717e9c5..6e5f278 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -11,7 +11,7 @@ configparser==3.5.0 django-appconf==1.0.1 django-autocomplete-light==2.1.1 django-classy-tags==0.8.0 -django-cms==3.4.3 +django-cms==3.4.4 django-filer==1.2.7 django-filter==0.11.0 django-formtools==1.0 diff --git a/src/callback/models.py b/src/callback/models.py index b85bd1b..f13532d 100644 --- a/src/callback/models.py +++ b/src/callback/models.py @@ -43,14 +43,5 @@ class ReqAvail(models.Model): verbose_name_plural = u'Обратная связь' ordering = ['-created_at'] - def __unicode__(self): - return u'Сообщение %s от %s' % ( - self.name[:20], - self.created_at.strftime("%d.%m.%Y %H:%M"), - ) - def __str__(self): - return u'Сообщение %s от %s' % ( - self.name[:20], - self.created_at.strftime("%d.%m.%Y %H:%M"), - ) + return f'Сообщение {self.name[:20]} от {self.created_at.strftime("%d.%m.%Y %H:%M")}' diff --git a/src/customer/forms.py b/src/customer/forms.py index daddbb1..1b7ebf8 100644 --- a/src/customer/forms.py +++ b/src/customer/forms.py @@ -393,7 +393,7 @@ class UserProfileFiltersForm(MyBaseModelForm): f_acc.empty_label = None # исправить метку f_acc.label_from_instance = lambda obj: mark_safe( - force_text('%s
%s' % (obj.account, obj.name,))) + force_text(f'{obj.account}
{obj.name}')) # TODO: refactor # заблокировать чекбоксы, если: не заполнены определенные поля diff --git a/src/customer/models.py b/src/customer/models.py index 26b1b61..d36c8c2 100644 --- a/src/customer/models.py +++ b/src/customer/models.py @@ -525,20 +525,17 @@ class UserProfileFilters(models.Model): show_full_name = models.BooleanField(u'Полное название организации', default=True) show_kpp = models.BooleanField(u'КПП', default=True) show_org_boss_title_and_fio = models.BooleanField( - u'Руководитель (Должность, ФИО)', default=True) + 'Руководитель (Должность, ФИО)', default=True) show_na_osnovanii = models.BooleanField(u'Действует на основании', default=True) objects = managers.UserProfileFiltersManager() class Meta: - verbose_name = u'Фильтры реквизитов' - verbose_name_plural = u'Фильтры реквизитов' - - def __unicode__(self): # TODO fix name - return u'{}'.format(self.company.email) + verbose_name = 'Фильтры реквизитов' + verbose_name_plural = 'Фильтры реквизитов' def __str__(self): # TODO fix name - return u'{}'.format(self.company.email) + return f'{self.company.email}' def save(self, *args, **kwargs): # всегда включены @@ -569,15 +566,6 @@ class License(models.Model): super(License, self).__init__(*args, **kwargs) self.__prev_date = self.paid_date - def __unicode__(self): - return u'%s - %s %s (%d %s)' % ( - self.company.get_company_name(), - self.term, - numeral.choose_plural(self.term, u"месяц, месяца, месяцев"), - self.pay_sum, - numeral.choose_plural(self.pay_sum, u"рубль, рубля, рублей"), - ) - def __str__(self): return u'%s - %s %s (%d %s)' % ( self.company.get_company_name(), @@ -652,24 +640,17 @@ class License(models.Model): left.days, numeral.choose_plural(left.days, u"день, дня, дней"), ) - return u'Лицензия активирована: осталось %s' % left_str + return f'Лицензия активирована: осталось {left_str}' elif self.status == 3: - return u'Время истекло' + return 'Время истекло' else: return None class LicensePrice(models.Model): - term = models.IntegerField(verbose_name=u'срок лицензии', + term = models.IntegerField(verbose_name='срок лицензии', choices=consts.TERMS) - price = models.IntegerField(verbose_name=u'сумма оплаты') - - def __unicode__(self): - return u'%s %s (%d %s)' % (self.term, - numeral.choose_plural(self.term, u"месяц, месяца, месяцев"), - self.price, - numeral.choose_plural(self.price, u"рубль, рубля, рублей"), - ) + price = models.IntegerField(verbose_name='сумма оплаты') def __str__(self): return u'%s %s (%d %s)' % (self.term, diff --git a/src/customer/views/documents.py b/src/customer/views/documents.py index 7ebdbb7..4e8b41d 100644 --- a/src/customer/views/documents.py +++ b/src/customer/views/documents.py @@ -28,15 +28,15 @@ def get_doc(request, order_num=None): data = request.user.profile if pm == 0: tmp_name = 'bill.xls' - file_name = "Invoice No.%s.xls" % (order_num,) + file_name = "Invoice No.{order_num}.xls" elif pm == 2: tmp_name = '4pd.xls' - file_name = "Kvitanciya na oplatu zakaza No.%s.xls" % (order_num,) + file_name = f"Kvitanciya na oplatu zakaza No.{order_num}.xls" else: raise Http404() response = HttpResponse(content_type="application/vnd.ms-excel") - response['Content-Disposition'] = 'attachment; filename=%s' % file_name + response['Content-Disposition'] = f'attachment; filename={file_name}' rb = open_workbook(os.path.join(XLS_ROOT, tmp_name), on_demand=True, formatting_info=True) wb = copy(rb) @@ -63,10 +63,10 @@ def get_doc(request, order_num=None): ) style4.num_format_str = "#,##0.00" - ws.write(11, 0, u"СЧЕТ № %s от %s" % (order_num, license.order_date.strftime('%d.%m.%Y')), + ws.write(11, 0, f"СЧЕТ № {order_num} от {license.order_date.strftime('%d.%m.%Y')}", style0_center) - ws.write(13, 0, u"Покупатель: %s" % data.name, style1) - ws.write(16, 2, u"Лицензия Dokumentor.ru на %s" % (license.get_term()), style3) + ws.write(13, 0, f"Покупатель: {data.name}", style1) + ws.write(16, 2, f"Лицензия Dokumentor.ru на {license.get_term()}", style3) style3.num_format_str = "#,##0.00" @@ -74,8 +74,8 @@ def get_doc(request, order_num=None): ws.write(16, 44, license.pay_sum, style3) ws.write(17, 44, license.pay_sum, style4) ws.write(19, 44, license.pay_sum, style4) - ws.write(21, 0, u"Всего наименование 1, на сумму %s,00 руб." % license.pay_sum, style1) - ws.write(23, 0, u"%s." % rubles(license.pay_sum).capitalize(), style2) + ws.write(21, 0, f"Всего наименование 1, на сумму {license.pay_sum},00 руб.", style1) + ws.write(23, 0, f"{rubles(license.pay_sum).capitalize()}.", style2) ws.insert_bitmap(os.path.join(XLS_ROOT, 'stamp.bmp'), 26, 12, y=3, scale_y=1.1) @@ -90,7 +90,7 @@ def get_doc(request, order_num=None): ) # заполняем оригинал - ws.write(11, 4, u"Лицензия Dokumentor.ru на %s" % (license.get_term()), style1) + ws.write(11, 4, f"Лицензия Dokumentor.ru на {license.get_term()}", style1) ws.write(13, 13, data.get_boss_fio(), style0) ws.write(14, 13, re.sub("^\s+|\n|\r|\s+$", ' ', data.address), style0) ws.write(15, 11, license.pay_sum, style1) diff --git a/src/dokumentor/settings/testing.py b/src/dokumentor/settings/testing.py index b366464..0b8cef5 100644 --- a/src/dokumentor/settings/testing.py +++ b/src/dokumentor/settings/testing.py @@ -13,7 +13,7 @@ EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' PASSWORD_HASHERS = ('django.contrib.auth.hashers.MD5PasswordHasher', ) DATABASES = { - 'default': dj_database_url.parse(e.get('TEST_DB')), + 'default': dj_database_url.parse(e.get('DJANGO_TEST_DB')), }