From 068d245393da91340d94c1c72257753453347410 Mon Sep 17 00:00:00 2001 From: Michail Bortnikov Date: Thu, 2 Mar 2017 14:35:23 +0300 Subject: [PATCH] send file in letter --- courses/models.py | 12 ++++++++++-- management/api.py | 6 +++++- management/letters.py | 3 +++ management/mails.py | 3 ++- service/models.py | 1 + templates/mails/sent_order.html | 13 ++++++++++++- 6 files changed, 33 insertions(+), 5 deletions(-) diff --git a/courses/models.py b/courses/models.py index a8ddb04..b10a6c9 100755 --- a/courses/models.py +++ b/courses/models.py @@ -76,9 +76,12 @@ class Course(models.Model): public = models.BooleanField(verbose_name=u'Опубликовать', default=False) title = models.CharField(verbose_name=u"Заголовок", max_length=255) description = RedactorField(verbose_name=u'Описание', blank=True) + description_file = models.FileField(verbose_name='Файл писания курса', black=True, null=True, upload_to='course', + help_text=u'Файл, который будет отправляться в письме со счетом') image = models.ImageField(verbose_name=u'Изображение', upload_to='course', blank=True) big_image = models.ImageField(verbose_name=u'Большое изображение', upload_to='course', blank=True) - big_mobile_image = models.ImageField(verbose_name=u'Под мобилку', upload_to='course', blank=True, null=True, help_text=u'Большая картинка для мобильной версии') + big_mobile_image = models.ImageField(verbose_name=u'Под мобилку', upload_to='course', blank=True, null=True, + help_text=u'Большая картинка для мобильной версии') page = models.URLField(verbose_name=u'Страничка описания', blank=True, default='') preview = models.CharField(verbose_name=u'Трэйл', blank=True, default='', max_length=255) teachers = models.ManyToManyField(User, verbose_name=u'Преподаватели', related_name='course_teachers') @@ -90,7 +93,9 @@ class Course(models.Model): buy_icon = models.ImageField(verbose_name=u'Картинка покупки', upload_to='course', blank=True, null=True) must_build = models.BooleanField(verbose_name=u'На переформировку', default=False) keywords = models.ManyToManyField(Tags, verbose_name=u'Ключевые слова', blank=True) - recommend = models.ManyToManyField('self', verbose_name=u'Связанные курсы', blank=True, help_text=u'Курсы, которые стоит порекомендовать вместе с этим') + recommend = models.ManyToManyField('self', verbose_name=u'Связанные курсы', blank=True, + help_text=u'Курсы, которые стоит порекомендовать вместе с этим') + def __str__(self): return self.title @@ -157,6 +162,9 @@ class Course(models.Model): # Получить описание курса return self.description + def get_description_file(self): + return self.description_file + def get_skills(self): # Получить скилы темы result = [] diff --git a/management/api.py b/management/api.py index 630de56..ff1ef0b 100755 --- a/management/api.py +++ b/management/api.py @@ -94,7 +94,10 @@ def new_bill(request, context): service = Price.objects.get(id=request.POST['new_bill_checked_service']) bill = Bill.objects.create(user=user, service=service, - manager=request.user, price=request.POST['new_bill_cost'], + file=bill.service.course.get_description_file(), + manager=request.user.get_full_name(), + manager_phone=request.user.get_phone(), + price=request.POST['new_bill_cost'], description=request.POST.get('new_bill_comment') if request.POST.get( 'new_bill_comment') else '') sent_new_bill(bill) @@ -117,6 +120,7 @@ def new_bill(request, context): return context + @api_decor(without_auth=False) def sent_charge(request, context): if request.user.in_role == 'S' or request.user.in_role == 'A': diff --git a/management/letters.py b/management/letters.py index d379860..8dbfe50 100755 --- a/management/letters.py +++ b/management/letters.py @@ -246,6 +246,9 @@ def sent_new_bill(bill): 'PRICE': bill.price, 'USER': bill.user.email, 'SERVICE': bill.get_name(), + 'MANAGER': bill.manager_name, + 'MANAGER_PHONE': bill.amanger_phone, + 'FILE': bill.file, 'DOMAIN': DOMAIN, 'NAME': NAME } diff --git a/management/mails.py b/management/mails.py index ab6b88f..a95b031 100755 --- a/management/mails.py +++ b/management/mails.py @@ -12,6 +12,7 @@ def letter_decor(): text=data['text'], _type=data['type'], template=data['template'] if data.get('template') else '', - result=data['result'] if data.get('result') else None) + result=data['result'] if data.get('result') else None, + file=data['file']) return _render_json return wrap_response diff --git a/service/models.py b/service/models.py index 82d12a0..bddf409 100755 --- a/service/models.py +++ b/service/models.py @@ -75,6 +75,7 @@ class MailBox(models.Model): msg = EmailMessage(self.title, self.result, u'{1} <{0}>'.format(DEFAULT_FROM_EMAIL, NAME), [self._to if not TESTING else TEST_EMAIL]) msg.content_subtype = "html" + msg.attach(u'Описание курса', file) try: msg.send() except smtplib.SMTPDataError as e: diff --git a/templates/mails/sent_order.html b/templates/mails/sent_order.html index 62807e4..3bb8173 100644 --- a/templates/mails/sent_order.html +++ b/templates/mails/sent_order.html @@ -146,7 +146,18 @@ html, body {background-image: none !important; background-color: transparent !im
- +

{{ USER }}, вам выставлен счет для оплаты.

 

 

 

Состав заказа: {{ SERVICE }}

 

Сумма для оплаты: {{ PRICE }} руб.

 

Чтобы выбрать способ оплаты и оплатить данный счет, воспользуйтесь ссылкой: {{ LINK }}

 

или кнопкой ниже

 

{{ USER }}, вам выставлен счет для оплаты.

+

 

 

 

+

Состав заказа: {{ SERVICE }}

 

+

Сумма для оплаты: {{ PRICE }} руб.

 

+

+ Ваш менеджер:

+

 

+

{{ MANAGER }}

+

 

+

{{ MANAGER_PHONE }}

+ +

 

Чтобы выбрать способ оплаты и оплатить данный счет, воспользуйтесь ссылкой: {{ LINK }}

 

или кнопкой ниже