From b74fbe20e29bd2cfa5cafb7b0a0d5d025e9334d6 Mon Sep 17 00:00:00 2001 From: Angger Date: Sat, 10 Sep 2022 18:03:28 +0700 Subject: [PATCH 1/5] added attr enctype="multipart/form-data" in form --- .../billing_setting/templates/billing_setting/_form_setting.html | 1 + 1 file changed, 1 insertion(+) diff --git a/yuyu/admin/billing_setting/templates/billing_setting/_form_setting.html b/yuyu/admin/billing_setting/templates/billing_setting/_form_setting.html index f732ba8..864fe15 100644 --- a/yuyu/admin/billing_setting/templates/billing_setting/_form_setting.html +++ b/yuyu/admin/billing_setting/templates/billing_setting/_form_setting.html @@ -1,5 +1,6 @@ {% extends "horizon/common/_modal_form.html" %} {% load i18n %} +{% block form_attrs %}enctype="multipart/form-data"{% endblock %} {% block modal-body-right %}

{% trans "Description:" %}

From 7db39ec9258dbcc8b021607f3ff279a681c159d5 Mon Sep 17 00:00:00 2001 From: Angger Date: Sat, 10 Sep 2022 18:03:54 +0700 Subject: [PATCH 2/5] modify display logo --- .../templates/projects_invoice/base_invoice.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yuyu/admin/projects_invoice/templates/projects_invoice/base_invoice.html b/yuyu/admin/projects_invoice/templates/projects_invoice/base_invoice.html index 9d9002e..a9205ef 100644 --- a/yuyu/admin/projects_invoice/templates/projects_invoice/base_invoice.html +++ b/yuyu/admin/projects_invoice/templates/projects_invoice/base_invoice.html @@ -56,7 +56,7 @@
- + {{ setting.company_logo }}

From 251e64dadef62dc391901412cac6b5020b58d6b9 Mon Sep 17 00:00:00 2001 From: Angger Date: Sat, 10 Sep 2022 18:11:17 +0700 Subject: [PATCH 3/5] add a condition on method get_settings when containing company logo will be converting from base64 --- yuyu/cases/setting_use_case.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/yuyu/cases/setting_use_case.py b/yuyu/cases/setting_use_case.py index 04ac90a..088b7ab 100644 --- a/yuyu/cases/setting_use_case.py +++ b/yuyu/cases/setting_use_case.py @@ -1,10 +1,20 @@ from openstack_dashboard.dashboards.yuyu.core import yuyu_client +from django.utils.html import format_html + class SettingUseCase: def get_settings(self, request): response = yuyu_client.get(request, "settings/").json() + + if response["company_logo"]: + # convert base64 img + response['company_logo'] = format_html( + '', + response['company_logo'] + ) + return response def set_setting(self, request, key, value): From d1ad25f07852c5b8ae2a0233bfab7cd606e39272 Mon Sep 17 00:00:00 2001 From: Angger Date: Sat, 10 Sep 2022 18:15:28 +0700 Subject: [PATCH 4/5] change company logo field, and add method clean to convert the image input to base64 --- yuyu/admin/billing_setting/forms.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/yuyu/admin/billing_setting/forms.py b/yuyu/admin/billing_setting/forms.py index d68b8de..574f5de 100644 --- a/yuyu/admin/billing_setting/forms.py +++ b/yuyu/admin/billing_setting/forms.py @@ -1,3 +1,5 @@ +import base64 + from django.utils.translation import ugettext_lazy as _ from horizon import forms, messages, exceptions @@ -10,8 +12,9 @@ class SettingForm(forms.SelfHandlingForm): company_name = forms.CharField(label=_("COMPANY NAME"), required=False) - company_logo = forms.URLField(label=_("COMPANY LOGO URL"), - required=False) + + company_logo = forms.ImageField(label=_("COMPANY LOGO"), + required=False) company_address = forms.CharField(label=_("COMPANY ADDRESS"), required=False, widget=forms.Textarea()) email_admin = forms.EmailField(label=_("EMAIL ADMIN"), @@ -20,6 +23,17 @@ class SettingForm(forms.SelfHandlingForm): invoice_tax = forms.IntegerField(label=_("INVOICE TAX (%)"), required=True) + def clean(self): + data = super(SettingForm, self).clean() + company_logo = data.get('company_logo', None) + + if company_logo: + company_logo = self.files['company_logo'].read() + encoded_string = base64.b64encode(company_logo) + data["company_logo"] = encoded_string + + return data + def handle(self, request, data): try: result = "" From e05f29cc928c0d35e7eea4391cc8c944a45b35d9 Mon Sep 17 00:00:00 2001 From: Angger Date: Sun, 11 Sep 2022 15:54:33 +0700 Subject: [PATCH 5/5] mofidy template --- yuyu/project/invoice/templates/invoice/base_invoice.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yuyu/project/invoice/templates/invoice/base_invoice.html b/yuyu/project/invoice/templates/invoice/base_invoice.html index 9d9002e..a9205ef 100644 --- a/yuyu/project/invoice/templates/invoice/base_invoice.html +++ b/yuyu/project/invoice/templates/invoice/base_invoice.html @@ -56,7 +56,7 @@
- + {{ setting.company_logo }}