From f92b1dfabdd30b8273d485d9dfbfd7102f03ef11 Mon Sep 17 00:00:00 2001 From: Ivan_Home_PC Date: Sun, 27 Sep 2015 19:40:01 +0300 Subject: [PATCH] Calendar hotfix --- core/utils.py | 32 +++++++++++++++++++++---- core/views.py | 4 ++-- templates/client/accounts/calendar.html | 4 ++-- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/core/utils.py b/core/utils.py index 37a7f4ce..99b93844 100644 --- a/core/utils.py +++ b/core/utils.py @@ -7,6 +7,21 @@ http://www.simplistix.co.uk/presentations/python-excel.pdf import xlwt import datetime from django.core.exceptions import ObjectDoesNotExist +from django.conf import settings +from django.utils.translation import get_language + +current_lang = get_language()[:2] +if current_lang == 'ru': + header_list = [u'#', u'Название события',u'Даты',u'Краткое описание',u'Место проведения', u'Заметка', u'Ссылка на событие'] + main_header = u'Мой календарь собитий на {month} {year} года' +else: + header_list = [u'#', u'Event',u'Period',u'Short description',u'Place', u'Notes', u'Hyperlink'] + main_header = u'My event calendar on {month} {year}' + + + + + HEADER_STYLE = xlwt.easyxf('font: bold on') DEFAULT_STYLE = xlwt.easyxf() @@ -46,6 +61,12 @@ def get_column_cell(obj, name): def queryset_to_workbook(queryset, columns, report_date = None): + # localization + if current_lang == 'ru': + month_name = settings.MONTHES[report_date.strftime("%b").lower()]['name'] + else: + month_name = report_date.strftime("%B") + # defining styles for different types of cells main_style = xlwt.Style.easyxf( "font: name Calibri, height 600, bold False;" @@ -63,13 +84,13 @@ def queryset_to_workbook(queryset, columns, report_date = None): odd_style = xlwt.Style.easyxf( 'font: name Calibri, height 300, bold False;' 'borders: left thin, right thin, top thin, bottom thin;' - 'alignment: horizontal center, wrap True;' + 'alignment: horizontal center, vertical center, wrap True;' 'pattern: pattern solid, fore_color white;', ) even_style = xlwt.Style.easyxf( 'font: name Calibri, height 300, bold False;' 'borders: left thin, right thin, top thin, bottom thin;' - 'alignment: horizontal center, wrap True;' + 'alignment: horizontal center, vertical center, wrap True;' 'pattern: pattern solid, fore_color silver_ega;', ) # creating workbook and adding sheet @@ -78,14 +99,15 @@ def queryset_to_workbook(queryset, columns, report_date = None): sheet_name = u'My calendar {0}'.format(report_date.strftime('%Y-%B')) sheet = workbook.add_sheet(sheet_name) + # drawing head part with image - sheet.write_merge(0, 6, 0, 6, u'Мой календарь собитий на %s года' % report_date.strftime("%B %Y"), main_style) + sheet.write_merge(0, 6, 0, 6, main_header.format( + month = month_name,year = report_date.strftime("%Y")), main_style) for i in range(7): sheet.row(i).set_style(xlwt.Style.easyxf('font:height 300;')) - sheet.insert_bitmap('/home/www/proj/media/logo.bmp', row=0, col=5, x=0, y=0, scale_x=0.3, scale_y=2) + sheet.insert_bitmap('/home/www/proj/static/logo.bmp', row=0, col=5, x=0, y=0, scale_x=0.3, scale_y=2) # drawing headers - header_list = [u'#', u'Название события',u'Даты',u'Краткое описание',u'Место проведения', u'Заметка', u'Ссылка на событие'] for i, column in enumerate(columns): sheet.write(8, i, header_list[i], header_style) sheet.col(i).width = 8000 diff --git a/core/views.py b/core/views.py index 1ad5be9a..125c1f1f 100644 --- a/core/views.py +++ b/core/views.py @@ -282,9 +282,9 @@ def download_workbook(request): setattr(obj, 'dates', u'%s - %s'%(obj.data_begin.strftime('%d %B %Y'),obj.data_end.strftime('%d %B %Y'))) setattr(obj, 'full_place', u'%s, %s, %s' % (obj.country, obj.city, getattr(obj.place, 'name', ''))) try: - setattr(obj, 'link', u'http://www.expomap.ru%s)'%obj.get_absolute_url()) + setattr(obj, 'link', u'http://www.expomap.ru%s'%obj.get_absolute_url()) except: - setattr(obj, 'link', u'http://www.expomap.ru%s)'%obj.get_permanent_url()) + setattr(obj, 'link', u'http://www.expomap.ru%s'%obj.get_permanent_url()) columns = ( 'number', diff --git a/templates/client/accounts/calendar.html b/templates/client/accounts/calendar.html index d49542e5..6a1f8502 100644 --- a/templates/client/accounts/calendar.html +++ b/templates/client/accounts/calendar.html @@ -65,11 +65,11 @@ } console.log(clear_list); var query = $.param({data:clear_list}); - if(clear_list.Length > 0){ + if(clear_list.length > 0){ window.location.href = "/profile/calendar/export/?" + query; } else{ - alert({% trans "Не выбрано ни одного события!" %}) + alert('{% trans "Не выбрано ни одного события!" %}'); } });