fix problems with reportlab and ugettext_lazy

This commit is contained in:
Oskar Hahn 2012-07-10 12:11:07 +02:00
parent e22467b06e
commit debaa505fb
7 changed files with 36 additions and 42 deletions

View File

@ -16,7 +16,7 @@ from django.core.urlresolvers import reverse
from django.contrib import messages from django.contrib import messages
from django.db import transaction from django.db import transaction
from django.db.models import Model from django.db.models import Model
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext as _
from django.views.generic.detail import SingleObjectMixin from django.views.generic.detail import SingleObjectMixin
from openslides.utils.pdf import stylesheet from openslides.utils.pdf import stylesheet
@ -254,7 +254,7 @@ def register_tab(request):
""" """
register the agenda tab. register the agenda tab.
""" """
selected = True if request.path.startswith('/agenda/') else False selected = request.path.startswith('/agenda/')
return Tab( return Tab(
title=_('Agenda'), title=_('Agenda'),
url=reverse('item_overview'), url=reverse('item_overview'),

View File

@ -34,7 +34,7 @@ from django.core.context_processors import csrf
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.db import transaction from django.db import transaction
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils.translation import ugettext_lazy as _, ungettext from django.utils.translation import ugettext as _, ungettext
from openslides.utils import csv_ext from openslides.utils import csv_ext
from openslides.utils.pdf import stylesheet from openslides.utils.pdf import stylesheet
@ -852,13 +852,13 @@ class ApplicationPollPDF(PDFView):
circle = "<img src='%s' width='15' height='15'/>&nbsp;&nbsp;" % imgpath circle = "<img src='%s' width='15' height='15'/>&nbsp;&nbsp;" % imgpath
cell = [] cell = []
cell.append(Spacer(0,0.8*cm)) cell.append(Spacer(0,0.8*cm))
cell.append(Paragraph(_("Application No.")+" "+str(self.poll.application.number), stylesheet['Ballot_title'])) cell.append(Paragraph(_("Application No. %s") % self.poll.application.number, stylesheet['Ballot_title']))
cell.append(Paragraph(self.poll.application.title, stylesheet['Ballot_subtitle'])) cell.append(Paragraph(self.poll.application.title, stylesheet['Ballot_subtitle']))
cell.append(Paragraph(str(self.poll.get_ballot())+". "+_("Vote"), stylesheet['Ballot_description'])) cell.append(Paragraph(_("%d. Vote") % self.poll.get_ballot(), stylesheet['Ballot_description']))
cell.append(Spacer(0,0.5*cm)) cell.append(Spacer(0,0.5*cm))
cell.append(Paragraph(circle+_("Yes"), stylesheet['Ballot_option'])) cell.append(Paragraph(circle + unicode(_("Yes")), stylesheet['Ballot_option']))
cell.append(Paragraph(circle+_("No"), stylesheet['Ballot_option'])) cell.append(Paragraph(circle + unicode(_("No")), stylesheet['Ballot_option']))
cell.append(Paragraph(circle+_("Abstention"), stylesheet['Ballot_option'])) cell.append(Paragraph(circle + unicode(_("Abstention")), stylesheet['Ballot_option']))
data= [] data= []
# get ballot papers config values # get ballot papers config values
ballot_papers_selection = config["application_pdf_ballot_papers_selection"] ballot_papers_selection = config["application_pdf_ballot_papers_selection"]
@ -875,15 +875,15 @@ class ApplicationPollPDF(PDFView):
# print ballot papers # print ballot papers
if number > 0: if number > 0:
for user in xrange(number/2): for user in xrange(number / 2):
data.append([cell,cell]) data.append([cell, cell])
rest = number % 2 rest = number % 2
if rest: if rest:
data.append([cell,'']) data.append([cell, ''])
t=Table(data, 10.5*cm, 7.42*cm) t=Table(data, 10.5 * cm, 7.42 * cm)
t.setStyle(TableStyle([ ('GRID', (0,0), (-1,-1), 0.25, colors.grey), t.setStyle(TableStyle([('GRID', (0, 0), (-1, -1), 0.25, colors.grey),
('VALIGN', (0,0), (-1,-1), 'TOP'), ('VALIGN', (0, 0), (-1, -1), 'TOP'),
])) ]))
story.append(t) story.append(t)

View File

@ -227,9 +227,10 @@ class AssignmentPoll(BasePoll, CountInvalid, CountVotesCast, PublishPollMixin):
self.yesnoabstain = False self.yesnoabstain = False
self.save() self.save()
if self.yesnoabstain: if self.yesnoabstain:
return [_('Yes'), _('No'), _('Abstain')] return [ugettext_noop('Yes'), ugettext_noop('No'),
ugettext_noop('Abstain')]
else: else:
return [_('Votes')] return [ugettext_noop('Votes')]
def append_pollform_fields(self, fields): def append_pollform_fields(self, fields):
CountInvalid.append_pollform_fields(self, fields) CountInvalid.append_pollform_fields(self, fields)

View File

@ -23,7 +23,7 @@ from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils.translation import ungettext, ugettext_lazy as _ from django.utils.translation import ungettext, ugettext as _
from utils.pdf import stylesheet from utils.pdf import stylesheet
from utils.template import Tab from utils.template import Tab
@ -325,9 +325,9 @@ class AssignmentPDF(PDFView):
story.append(Paragraph(title, stylesheet['Heading1'])) story.append(Paragraph(title, stylesheet['Heading1']))
preamble = config["assignment_pdf_preamble"] preamble = config["assignment_pdf_preamble"]
if preamble: if preamble:
story.append(Paragraph("%s" % preamble.replace('\r\n','<br/>'), story.append(Paragraph("%s" % preamble.replace('\r\n', '<br/>'),
stylesheet['Paragraph'])) stylesheet['Paragraph']))
story.append(Spacer(0,0.75*cm)) story.append(Spacer(0, 0.75 * cm))
assignments = Assignment.objects.order_by('name') assignments = Assignment.objects.order_by('name')
if not assignments: # No assignments existing if not assignments: # No assignments existing
story.append(Paragraph(_("No assignments available."), story.append(Paragraph(_("No assignments available."),
@ -349,9 +349,9 @@ class AssignmentPDF(PDFView):
def get_assignment(self, assignment, story): def get_assignment(self, assignment, story):
# title # title
story.append(Paragraph(_("Election")+": %s" % assignment.name, story.append(Paragraph(_("Election: %s") % assignment.name,
stylesheet['Heading1'])) stylesheet['Heading1']))
story.append(Spacer(0,0.5*cm)) story.append(Spacer(0, 0.5 * cm))
# posts # posts
cell1a = [] cell1a = []
cell1a.append(Paragraph("<font name='Ubuntu-Bold'>%s:</font>" % cell1a.append(Paragraph("<font name='Ubuntu-Bold'>%s:</font>" %
@ -371,7 +371,7 @@ class AssignmentPDF(PDFView):
cell2b.append(Paragraph("<seq id='counter'/>.&nbsp; " cell2b.append(Paragraph("<seq id='counter'/>.&nbsp; "
"__________________________________________", "__________________________________________",
stylesheet['Signaturefield'])) stylesheet['Signaturefield']))
cell2b.append(Spacer(0,0.2*cm)) cell2b.append(Spacer(0, 0.2 * cm))
# Vote results # Vote results
@ -380,7 +380,6 @@ class AssignmentPDF(PDFView):
polls = assignment.poll_set.filter(published=True) polls = assignment.poll_set.filter(published=True)
data_votes = [] data_votes = []
# Left side # Left side
cell3a = [] cell3a = []
cell3a.append(Paragraph("%s:" % (_("Vote results")), cell3a.append(Paragraph("%s:" % (_("Vote results")),
@ -416,10 +415,8 @@ class AssignmentPDF(PDFView):
if vote == None: if vote == None:
row.append('') row.append('')
elif 'Yes' in vote and 'No' in vote and 'Abstain' in vote: elif 'Yes' in vote and 'No' in vote and 'Abstain' in vote:
tmp = _("Y")+": " + vote['Yes'] + "\n" row.append(_("Y: %s\nN: %s\nA: %s") % (vote['Yes'],
tmp += _("N")+": " + vote['No'] + "\n" vote['No'], vote['Abstain']))
tmp += _("A")+": " + vote['Abstain']
row.append(tmp)
elif 'Votes' in vote: elif 'Votes' in vote:
row.append(vote['Votes']) row.append(vote['Votes'])
else: else:
@ -452,10 +449,10 @@ class AssignmentPDF(PDFView):
# table # table
data = [] data = []
data.append([cell1a,cell1b]) data.append([cell1a, cell1b])
if polls: if polls:
data.append([cell3a,table_votes]) data.append([cell3a, table_votes])
data.append(['', '* = '+_('elected')]) data.append(['', '* = ' + _('elected')])
else: else:
data.append([cell2a, cell2b]) data.append([cell2a, cell2b])
data.append([Spacer(0, 0.2 * cm), '']) data.append([Spacer(0, 0.2 * cm), ''])
@ -649,6 +646,6 @@ def register_tab(request):
def get_widgets(request): def get_widgets(request):
return [ return [
Widget(name=ugettext('Assignments'), template='assignment/widget.html', Widget(name=_('Assignments'), template='assignment/widget.html',
context={'assignments': Assignment.objects.all()}) context={'assignments': Assignment.objects.all()})
] ]

View File

@ -32,7 +32,7 @@ from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User, Group from django.contrib.auth.models import User, Group
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils.translation import ugettext_lazy as _, ungettext from django.utils.translation import ugettext as _, ungettext
from openslides.utils import csv_ext from openslides.utils import csv_ext
from openslides.utils.pdf import stylesheet from openslides.utils.pdf import stylesheet

View File

@ -214,23 +214,22 @@ def firstPage(canvas, doc):
title_line = u"%s | %s" % (config["event_name"], config["event_description"]) title_line = u"%s | %s" % (config["event_name"], config["event_description"])
if len(title_line) > 75: if len(title_line) > 75:
title_line = "%s ..." % title_line[:70] title_line = "%s ..." % title_line[:70]
canvas.drawString(2.75*cm, 28*cm, title_line) canvas.drawString(2.75 * cm, 28 * cm, title_line)
if config["event_date"] and config["event_location"]: if config["event_date"] and config["event_location"]:
canvas.drawString(2.75 * cm, 27.6 * cm, u"%s, %s" % (config["event_date"], config["event_location"])) canvas.drawString(2.75 * cm, 27.6 * cm, u"%s, %s" % (config["event_date"], config["event_location"]))
# time # time
canvas.setFont('Ubuntu', 7) canvas.setFont('Ubuntu', 7)
time = datetime.now().strftime(str(_("%Y-%m-%d %H:%Mh"))) time = datetime.now().strftime(str(_("%Y-%m-%d %H:%Mh")))
canvas.drawString(15 * cm, 28 * cm, _("Printed") + ": %s" % time) canvas.drawString(15 * cm, 28 * cm, unicode(_("Printed: %s") % time))
# title # title
if doc.title: if doc.title:
canvas.setFont('Ubuntu-Bold', 24) canvas.setFont('Ubuntu-Bold', 24)
canvas.setFillGray(0) canvas.setFillGray(0)
#canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-108, doc.title) canvas.drawString(2.75 * cm, PAGE_HEIGHT - 108, unicode(doc.title))
canvas.drawString(2.75 * cm, PAGE_HEIGHT - 108, doc.title)
# footer (with page number) # footer (with page number)
canvas.setFont('Ubuntu', 8) canvas.setFont('Ubuntu', 8)
canvas.setFillGray(0.4) canvas.setFillGray(0.4)
canvas.drawString(10 * cm, 1*cm, _("Page") + " %s" % doc.page) canvas.drawString(10 * cm, 1 * cm, unicode(_("Page %s") % doc.page))
canvas.restoreState() canvas.restoreState()
@ -239,5 +238,5 @@ def laterPages(canvas, doc):
# footer (with page number) # footer (with page number)
canvas.setFont('Ubuntu', 7) canvas.setFont('Ubuntu', 7)
canvas.setFillGray(0.4) canvas.setFillGray(0.4)
canvas.drawString(10 * cm, 1 * cm, _("Page") + " %s" % doc.page) canvas.drawString(10 * cm, 1 * cm, unicode(_("Page %s") % doc.page))
canvas.restoreState() canvas.restoreState()

View File

@ -282,9 +282,6 @@ class PDFView(PermissionMixin, View):
response.write(pdf) response.write(pdf)
return response return response
def append_to_pdf(self, story):
pass
def get_filename(self): def get_filename(self):
return self.filename return self.filename