Merge branch '29-Yuyu/change-method-storing-logo' into 'main'

29 yuyu/change method storing logo

Closes yuyu#29

See merge request dev/yuyu_dashboard!11
This commit is contained in:
Setyo Nugroho 2022-09-16 09:00:56 +00:00
commit c5a56b4670
5 changed files with 29 additions and 4 deletions

View file

@ -1,3 +1,5 @@
import base64
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from horizon import forms, messages, exceptions from horizon import forms, messages, exceptions
@ -10,8 +12,9 @@ class SettingForm(forms.SelfHandlingForm):
company_name = forms.CharField(label=_("COMPANY NAME"), company_name = forms.CharField(label=_("COMPANY NAME"),
required=False) 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"), company_address = forms.CharField(label=_("COMPANY ADDRESS"),
required=False, widget=forms.Textarea()) required=False, widget=forms.Textarea())
email_admin = forms.EmailField(label=_("EMAIL ADMIN"), email_admin = forms.EmailField(label=_("EMAIL ADMIN"),
@ -20,6 +23,17 @@ class SettingForm(forms.SelfHandlingForm):
invoice_tax = forms.IntegerField(label=_("INVOICE TAX (%)"), invoice_tax = forms.IntegerField(label=_("INVOICE TAX (%)"),
required=True) 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): def handle(self, request, data):
try: try:
result = "" result = ""

View file

@ -1,5 +1,6 @@
{% extends "horizon/common/_modal_form.html" %} {% extends "horizon/common/_modal_form.html" %}
{% load i18n %} {% load i18n %}
{% block form_attrs %}enctype="multipart/form-data"{% endblock %}
{% block modal-body-right %} {% block modal-body-right %}
<h3>{% trans "Description:" %}</h3> <h3>{% trans "Description:" %}</h3>

View file

@ -56,7 +56,7 @@
<div class="invoice-title"> <div class="invoice-title">
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
<img src="{{ setting.company_logo }}" alt="" height="50"> {{ setting.company_logo }}
</div> </div>
</div> </div>
<br> <br>

View file

@ -1,10 +1,20 @@
from openstack_dashboard.dashboards.yuyu.core import yuyu_client from openstack_dashboard.dashboards.yuyu.core import yuyu_client
from django.utils.html import format_html
class SettingUseCase: class SettingUseCase:
def get_settings(self, request): def get_settings(self, request):
response = yuyu_client.get(request, "settings/").json() response = yuyu_client.get(request, "settings/").json()
if response["company_logo"]:
# convert base64 img
response['company_logo'] = format_html(
'<img height="50" src="data:;base64,{}">',
response['company_logo']
)
return response return response
def set_setting(self, request, key, value): def set_setting(self, request, key, value):

View file

@ -56,7 +56,7 @@
<div class="invoice-title"> <div class="invoice-title">
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
<img src="{{ setting.company_logo }}" alt="" height="50"> {{ setting.company_logo }}
</div> </div>
</div> </div>
<br> <br>