convert some ptl files (#3930)

This commit is contained in:
Frédéric Péters 2013-11-03 23:24:14 +01:00
parent 37532a7108
commit 2bac98e91b
6 changed files with 148 additions and 109 deletions

View File

@ -1,5 +1,6 @@
from quixote import get_publisher, redirect, get_request
from quixote.directory import Directory, AccessControlled
from quixote.html import TemplateIO, htmltext
from qommon import get_cfg, get_logger
from qommon.form import Form, StringWidget, CheckboxWidget, SingleSelectWidget
@ -75,35 +76,37 @@ class AbeliumDominoDirectory(Directory):
_q_exports = [ '' , 'debug' ]
label = N_('Domino')
def debug [html] (self):
def debug(self):
from abelium_domino_vars import SESSION_CACHE
html_top(ABELIUM_DOMINO)
'<form method="post"><button>Lancer le cron</button></form>'
r = TemplateIO(html=True)
r += htmltext('<form method="post"><button>Lancer le cron</button></form>')
if get_request().get_method() == 'POST':
try:
from abelium_domino_synchro import synchronize_domino
synchronize_domino(get_publisher())
except Exception, e:
htmltext('<pre>%s</pre>') % repr(e)
'<p>code interne: %s</p>' % getattr(get_request().user, str('abelium_domino_code_famille'), None)
'<dl>'
r += htmltext('<pre>%s</pre>') % repr(e)
r += htmltext('<p>code interne: %s</p>') % getattr(get_request().user, str('abelium_domino_code_famille'), None)
r += htmltext('<dl>')
context = get_publisher().substitutions.get_context_variables()
for var in sorted(context.keys()):
value = context[var]
if value:
'<dt>%s</dt>' % var
'<dd>%s</dt>' % value
'</dl>'
r += htmltext('<dt>%s</dt>') % var
r += htmltext('<dd>%s</dt>') % value
r += htmltext('</dl>')
delattr(get_request().session, SESSION_CACHE)
def _q_index [html] (self):
def _q_index(self):
publisher = get_publisher()
cfg = get_cfg(ABELIUM_DOMINO, {})
form = self.form(cfg)
title = _('Abelium Domino')
html_top(ABELIUM_DOMINO, title = title)
'<h2>%s</h2>' % title
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % title
if form.is_submitted() and not form.has_errors():
if form.get_widget('cancel').parse():
@ -118,20 +121,21 @@ class AbeliumDominoDirectory(Directory):
return redirect('.')
if abelium_domino_ws:
form.render()
r += form.render()
else:
message = _('The Abelium Domino module is not '
'activated because of this error when '
'loading it: %r') % import_error
'<p class="errornotice">%s</p>' % message
'<dl style="display: none">'
r += htmltext('<p class="errornotice">%s</p>') % message
r += htmltext('<dl style="display: none">')
context = get_publisher().substitutions.get_context_variables()
for var in sorted(context.keys()):
value = context[var]
if value:
'<dt>%s</dt>' % var
'<dd>%s</dt>' % value
'</dl>'
r += htmltext('<dt>%s</dt>') % var
r += htmltext('<dd>%s</dt>') % value
r += htmltext('</dl>')
return r.getvalue()
form_desc = (
# name, required, title, kind

View File

@ -2,6 +2,7 @@ import os
from quixote import get_publisher, redirect
from quixote.directory import Directory
from quixote.html import TemplateIO, htmltext
from qommon.publisher import get_publisher_class
@ -21,17 +22,19 @@ class BackofficeRootDirectory(wcs.backoffice.root.RootDirectory):
('home', N_('Pending Forms')),
('/', N_('WCS Form Server'))]
def _q_index [html] (self):
def _q_index(self):
return self.home()
def home [html] (self):
'<p>'
_('Welcome on Au Quotidien back office interface')
'</p>'
wcs.backoffice.root.RootDirectory.forms(self)
def home(self):
r = TemplateIO(html=True)
r += htmltext('<p>')
r += _('Welcome on Au Quotidien back office interface')
r += htmltext('</p>')
r += wcs.backoffice.root.RootDirectory.forms(self)
from qommon.backoffice.menu import html_top
html_top('home', _('Pending Forms'))
get_response().breadcrumb[-1:] = [('home', _('Pending Forms'))]
return r.getvalue()
def _q_lookup(self, component):
return FormPage(component)

View File

@ -16,6 +16,7 @@
from quixote import redirect
from quixote.directory import Directory
from quixote.html import TemplateIO, htmltext
from qommon import misc
from wcs.categories import Category
@ -81,7 +82,7 @@ class CategoryPage(wcs.admin.categories.CategoryPage):
class CategoriesDirectory(wcs.admin.categories.CategoriesDirectory):
label = N_('Categories')
def new [html] (self):
def new(self):
get_response().breadcrumb.append( ('categories/', _('Categories')) )
get_response().breadcrumb.append( ('new', _('New')) )
category_ui = CategoryUI(None)
@ -98,8 +99,10 @@ class CategoriesDirectory(wcs.admin.categories.CategoriesDirectory):
return redirect('.')
html_top('categories', title = _('New Category'))
'<h2>%s</h2>' % _('New Category')
form.render()
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('New Category')
r += form.render()
return r.getvalue()
def _q_lookup(self, component):
get_response().breadcrumb.append( ('categories/', _('Categories')) )

View File

@ -23,6 +23,7 @@ except ImportError:
from quixote import get_publisher, get_request, redirect, get_session, get_session_manager
from quixote.directory import Directory
from quixote.html import TemplateIO, htmltext
from qommon import get_cfg, template, emails
from qommon import misc
@ -90,36 +91,40 @@ class EzMyspaceDirectory(MyspaceDirectory):
def __init__(self):
self._q_exports.extend(['change_email'])
def _index_buttons [html] (self, form_data):
super(EzMyspaceDirectory, self)._index_buttons(form_data)
'<p class="command"><a href="change_email">%s</a></p>' % _('Change my email')
'<br />'
'<br />'
'<p>'
_('You can delete your account freely from the services portal. '
'This action is irreversible; it will destruct your personal '
'datas and destruct the access to your request history.')
' <strong><a href="remove">%s</a></strong>.' % _('Delete My Account')
'</p>'
def _index_buttons(self, form_data):
r = TemplateIO(html=True)
r += super(EzMyspaceDirectory, self)._index_buttons(form_data)
r += htmltext('<p class="command"><a href="change_email">%s</a></p>') % _('Change my email')
r += htmltext('<br />')
r += htmltext('<br />')
r += htmltext('<p>')
r += _('You can delete your account freely from the services portal. '
'This action is irreversible; it will destruct your personal '
'datas and destruct the access to your request history.')
r += htmltext(' <strong><a href="remove">%s</a></strong>.') % _('Delete My Account')
r += htmltext('</p>')
return r.getvalue()
def _my_profile [html] (self, user_formdef, user):
'<h3 id="my-profile">%s</h3>' % _('My Profile')
def _my_profile(self, user_formdef, user):
r = TemplateIO(html=True)
r += htmltext('<h3 id="my-profile">%s</h3>') % _('My Profile')
TextsDirectory.get_html_text('top-of-profile')
r += TextsDirectory.get_html_text('top-of-profile')
if user.form_data:
get_publisher().substitutions.feed(get_request().user)
data = get_publisher().substitutions.get_context_variables()
TextsDirectory.get_html_text('aq-profile-presentation', data)
r += TextsDirectory.get_html_text('aq-profile-presentation', data)
else:
'<p>%s</p>' % _('Empty profile')
r += htmltext('<p>%s</p>') % _('Empty profile')
return r.getvalue()
def submit_password(self, new_password):
userPassword = ['{sha}%s' % base64.encodestring(sha(new_password).digest()).strip()]
mod_list = [(ldap.MOD_REPLACE, 'userPassword', userPassword)]
ezldap.get_ldap_conn().modify_s(get_session().user, mod_list)
def change_email [html] (self):
def change_email(self):
form = Form(enctype = 'multipart/form-data')
form.add(ezldap.EzEmailWidget, 'new_email', title = _('New email'),
required=True, size=30)
@ -131,11 +136,13 @@ class EzMyspaceDirectory(MyspaceDirectory):
new_email = form.get_widget('new_email').parse()
self.change_email_submit(new_email)
template.html_top(_('Change email'))
TextsDirectory.get_html_text('aq-change-email-token-sent') % { 'new_email': new_email }
return TextsDirectory.get_html_text('aq-change-email-token-sent') % { 'new_email': new_email }
else:
template.html_top(_('Change email'))
TextsDirectory.get_html_text('aq-change-email')
form.render()
r = TemplateIO(html=True)
r += TextsDirectory.get_html_text('aq-change-email')
r += form.render()
return r.getvalue()
def change_email_submit(self, new_email):
data = {}
@ -155,7 +162,7 @@ class EzMyspaceDirectory(MyspaceDirectory):
emails.custom_ezt_email('aq-change-email-request', data,
data['new_email'], fire_and_forget = True)
def remove [html] (self):
def remove(self):
user = get_request().user
if not user or user.anonymous:
raise errors.AccessUnauthorizedError()
@ -167,11 +174,13 @@ class EzMyspaceDirectory(MyspaceDirectory):
if form.is_submitted() and not form.has_errors():
self.remove_email_submit()
template.html_top(_('Removing Account'))
TextsDirectory.get_html_text('aq-remove-token-sent') % { 'email': user.email }
return TextsDirectory.get_html_text('aq-remove-token-sent') % { 'email': user.email }
else:
template.html_top(_('Removing Account'))
TextsDirectory.get_html_text('aq-remove-account')
form.render()
r = TemplateIO(html=True)
r += TextsDirectory.get_html_text('aq-remove-account')
r += form.render()
return r.getvalue()
def remove_email_submit(self):
data = {}
@ -404,7 +413,7 @@ class EzRegisterDirectory(Directory):
data.get('email'), fire_and_forget = True)
def passwordreset [html] (self):
def passwordreset(self):
form = Form(enctype='multipart/form-data')
form.add(EmailWidget, 'email', title=_('Email'), required=True, size=30)
form.add_submit('change', _('Submit Request'))
@ -415,16 +424,20 @@ class EzRegisterDirectory(Directory):
if dn:
self.passwordreset_submit(email, dn)
template.html_top(_('Forgotten Password'))
TextsDirectory.get_html_text(str('password-forgotten-token-sent'))
return TextsDirectory.get_html_text(str('password-forgotten-token-sent'))
else:
form.set_error('email', _('There is no user with that email.'))
template.html_top(_('Forgotten Password'))
TextsDirectory.get_html_text(str('password-forgotten-enter-username'))
form.render()
r = TemplateIO(html=True)
r += TextsDirectory.get_html_text(str('password-forgotten-enter-username'))
r += form.render()
return r.getvalue()
else:
template.html_top(_('Forgotten Password'))
TextsDirectory.get_html_text(str('password-forgotten-enter-username'))
form.render()
r = TemplateIO(html=True)
r += TextsDirectory.get_html_text(str('password-forgotten-enter-username'))
r += form.render()
return r.getvalue()
def get_dn_by_email(self, email):
ldap_conn = ezldap.get_ldap_conn()

View File

@ -1,5 +1,6 @@
from quixote import get_request, get_response, get_session, redirect
from quixote.directory import Directory, AccessControlled
from quixote.html import TemplateIO, htmltext
import wcs
import wcs.admin.root
@ -28,7 +29,7 @@ class FormDirectory(Directory):
self.formdef.store()
return redirect('..')
def options [html] (self):
def options(self):
form = Form(enctype='multipart/form-data')
form.add_submit('submit', _('Submit'))
form.add_submit('cancel', _('Cancel'))
@ -43,10 +44,12 @@ class FormDirectory(Directory):
if form.is_submitted() and not form.has_errors():
return redirect('..')
'<p>'
_('No available options')
'</p>'
form.render()
r = TemplateIO(html=True)
r += htmltext('<p>')
r += _('No available options')
r += htmltext('</p>')
r += form.render()
return r.getvalue()
def is_forms_admin():
@ -66,8 +69,9 @@ class FormsDirectory(AccessControlled, Directory):
def _q_access(self):
get_response().breadcrumb.append(('forms/', _('Forms Management')))
def _q_index [html] (self):
def _q_index(self):
html_top('forms', _('Forms Management'))
r = TemplateIO(html=True)
session = get_session()
user = get_request().user
@ -97,40 +101,41 @@ class FormsDirectory(AccessControlled, Directory):
mid_term = ((len(lists) * 2) + sum([len(x[-1]) for x in lists])) / 2
count = 0
in_second_column = False
'<div class="splitcontent-left">'
r += htmltext('<div class="splitcontent-left">')
for cat_name, formdefs in lists:
if not in_second_column and count > mid_term:
'</div>'
'<div class="splitcontent-right">'
r += htmltext('</div>')
r += htmltext('<div class="splitcontent-right">')
count += 2 + len(formdefs)
if len([x for x in formdefs if not x.disabled]) == 0:
# all forms are disabled, dim the block
'<div class="bo-block dimmed-block">'
r += htmltext('<div class="bo-block dimmed-block">')
else:
'<div class="bo-block">'
r += htmltext('<div class="bo-block">')
if cat_name:
'<h2>%s</h2>' % cat_name
r += htmltext('<h2>%s</h2>') % cat_name
elif len(lists) > 1:
'<h2>%s</h2>' % _('Misc')
'<ul>'
r += htmltext('<h2>%s</h2>') % _('Misc')
r += htmltext('<ul>')
for formdef in formdefs:
'<li>'
r += htmltext('<li>')
if formdef.disabled:
'<span class="disabled">'
'<a href="../%s/">%s</a>' % (formdef.url_name, formdef.name)
r += htmltext('<span class="disabled">')
r += htmltext('<a href="../%s/">%s</a>') % (formdef.url_name, formdef.name)
if formdef.disabled:
'</span>'
r += htmltext('</span>')
if is_admin:
if formdef.disabled:
' (<a href="%s/enable">%s</a>)' % (formdef.id, _('enable'))
r += htmltext(' (<a href="%s/enable">%s</a>)') % (formdef.id, _('enable'))
else:
' (<a href="%s/disable">%s</a>)' % (formdef.id, _('disable'))
'</li>'
'</ul>'
'</div>'
'</div>'
r += htmltext(' (<a href="%s/disable">%s</a>)') % (formdef.id, _('disable'))
r += htmltext('</li>')
r += htmltext('</ul>')
r += htmltext('</div>')
r += htmltext('</div>')
get_logger().info('forms backoffice - home')
return r.getvalue()
def _q_lookup(self, component):
try:

View File

@ -1,5 +1,6 @@
from quixote import get_request, get_response, get_session, redirect
from quixote.directory import Directory, AccessControlled
from quixote.html import TemplateIO, htmltext
import wcs
import wcs.admin.root
@ -17,7 +18,7 @@ class LinkDirectory(Directory):
def __init__(self, link):
self.link = link
def _q_index [html] (self):
def _q_index(self):
form = Form(enctype='multipart/form-data')
form.add_submit('edit', _('Edit'))
form.add_submit('delete', _('Delete'))
@ -31,14 +32,16 @@ class LinkDirectory(Directory):
return redirect('..')
html_top('links', title = _('Link: %s') % self.link.title)
'<h2>%s</h2>' % _('Link: %s') % self.link.title
'<p>'
self.link.url
'</p>'
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Link: %s') % self.link.title
r += htmltext('<p>')
r += self.link.url
r += htmltext('</p>')
form.render()
r += form.render()
return r.getvalue()
def edit [html] (self):
def edit(self):
form = self.form()
if form.get_submit() == 'cancel':
return redirect('.')
@ -48,8 +51,10 @@ class LinkDirectory(Directory):
return redirect('..')
html_top('links', title = _('Edit Link: %s') % self.link.title)
'<h2>%s</h2>' % _('Edit Link: %s') % self.link.title
form.render()
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Edit Link: %s') % self.link.title
r += form.render()
return r.getvalue()
def form(self):
@ -70,7 +75,7 @@ class LinkDirectory(Directory):
setattr(self.link, k, widget.parse())
self.link.store()
def delete [html] (self):
def delete(self):
form = Form(enctype='multipart/form-data')
form.widgets.append(HtmlWidget('<p>%s</p>' % _(
'You are about to irrevocably delete this link.')))
@ -81,8 +86,10 @@ class LinkDirectory(Directory):
if not form.is_submitted() or form.has_errors():
get_response().breadcrumb.append(('delete', _('Delete')))
html_top('links', title = _('Delete Link'))
'<h2>%s</h2>' % _('Deleting Link: %s') % self.link.title
form.render()
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Deleting Link: %s') % self.link.title
r += form.render()
return r.getvalue()
else:
self.link.remove_self()
return redirect('..')
@ -105,30 +112,32 @@ class LinksDirectory(AccessControlled, Directory):
get_response().breadcrumb.append(('links/', _('Links')))
def _q_index [html] (self):
def _q_index(self):
html_top('links', _('Links'))
r = TemplateIO(html=True)
get_response().add_javascript(['jquery.js', 'jquery-ui.js', 'biglist.js'])
'<ul id="main-actions">'
' <li><a class="new-item" href="new">%s</a></li>' % _('New Link')
'</ul>'
r += htmltext('<ul id="main-actions">')
r += htmltext(' <li><a class="new-item" href="new">%s</a></li>') % _('New Link')
r += htmltext('</ul>')
links = Link.select()
Link.sort_by_position(links)
'<ul class="biglist sortable" id="links-list">'
r += htmltext('<ul class="biglist sortable" id="links-list">')
for l in links:
link_id = l.id
'<li class="biglistitem" id="itemId_%s">' % link_id
'<strong class="label"><a href="%s/">%s</a></strong>' % (link_id, l.title)
'<p class="details">'
l.url
'</p>'
'<p class="commands">'
command_icon('%s/edit' % link_id, 'edit')
command_icon('%s/delete' % link_id, 'remove')
'</p></li>'
'</ul>'
r += htmltext('<li class="biglistitem" id="itemId_%s">') % link_id
r += htmltext('<strong class="label"><a href="%s/">%s</a></strong>') % (link_id, l.title)
r += htmltext('<p class="details">')
r += l.url
r += htmltext('</p>')
r += htmltext('<p class="commands">')
r += command_icon('%s/edit' % link_id, 'edit')
r += command_icon('%s/delete' % link_id, 'remove')
r += htmltext('</p></li>')
r += htmltext('</ul>')
return r.getvalue()
def update_order(self):
request = get_request()
@ -143,7 +152,7 @@ class LinksDirectory(AccessControlled, Directory):
return 'ok'
def new [html] (self):
def new(self):
link_ui = LinkDirectory(Link())
form = link_ui.form()
@ -156,8 +165,10 @@ class LinksDirectory(AccessControlled, Directory):
get_response().breadcrumb.append(('new', _('New Link')))
html_top('links', title = _('New Link'))
'<h2>%s</h2>' % _('New Link')
form.render()
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('New Link')
r += form.render()
return r.getvalue()
def _q_lookup(self, component):
try: