admin: pimp the category view, point to it from biglist

This commit is contained in:
Frédéric Péters 2012-08-14 17:32:15 +02:00
parent ff65883cf1
commit 261deda2c3
1 changed files with 38 additions and 7 deletions

View File

@ -22,6 +22,8 @@ from wcs.categories import Category
from qommon.form import *
from qommon.admin.menu import html_top, command_icon, error_page
from wcs.formdef import FormDef
class CategoryUI:
def __init__(self, category):
self.category = category
@ -59,8 +61,41 @@ class CategoryPage(Directory):
self.category_ui = CategoryUI(self.category)
get_response().breadcrumb.append((component + '/', self.category.name))
def _q_index(self):
return redirect('edit')
def _q_index [html] (self):
html_top('categories', title=self.category.name)
get_response().filter['sidebar'] = self.get_sidebar()
'<h2>%s - ' % _('Category')
self.category.name
'</h2>'
if self.category.description:
'<div class="bo-block">'
'<p>'
self.category.description
'</p>'
'</div>'
formdefs = FormDef.select()
formdefs = [x for x in formdefs if x.category_id == self.category.id]
formdefs.sort(lambda x,y: cmp(x.name, y.name))
'<div class="bo-block">'
'<h2>%s</h2>' % _('Forms in this category')
'<ul>'
for formdef in formdefs:
'<li><a href="../../forms/%d">' % formdef.id
formdef.name
'</a></li>'
if not formdefs:
'<li>%s</li>' % _('no form associated to this category')
'</ul>'
'</div>'
def get_sidebar [html] (self):
'<ul>'
'<li><a href="edit">%s</a></li>' % _('Edit')
'<li><a href="delete">%s</a></li>' % _('Delete')
'</ul>'
def edit [html] (self):
form = self.category_ui.get_form()
@ -116,13 +151,9 @@ class CategoriesDirectory(Directory):
Category.sort_by_position(categories)
for category in categories:
'<li class="biglistitem" id="itemId_%s">' % category.id
'<strong class="label"><a href="%s/edit">%s</a></strong>' % (
'<strong class="label"><a href="%s/">%s</a></strong>' % (
category.id, category.name)
'<p class="details">'
'</p>'
'<p class="commands">'
command_icon('%s/edit' % category.id, 'edit')
command_icon('%s/delete' % category.id, 'remove', popup = True)
'</p></li>'
'</ul>'