# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1239184330 -7200 # Node ID 0d0f09c36bba1d6e20de22e95f323c5d73d0fc6e # Parent 984e249764d1d3c0205a7184d7f87f8d2685d089 fix some euser rcategories, drop editgroup form which 1. is unused 2. has no advantage vs muledit of users diff -r 984e249764d1 -r 0d0f09c36bba web/views/euser.py --- a/web/views/euser.py Wed Apr 08 11:33:57 2009 +0200 +++ b/web/views/euser.py Wed Apr 08 11:52:10 2009 +0200 @@ -6,36 +6,29 @@ """ __docformat__ = "restructuredtext en" -from logilab.common.decorators import cached from logilab.mtconverter import html_escape -from cubicweb.schema import display_name from cubicweb.selectors import one_line_rset, implements, match_user_groups from cubicweb.view import EntityView -from cubicweb.web import INTERNAL_FIELD_VALUE -from cubicweb.web.form import FormMixIn -from cubicweb.web.action import Action -from cubicweb.web.views.baseviews import PrimaryView, EntityView -from cubicweb.web.views.editforms import AutomaticEntityForm -from cubicweb.web.views.boxes import EditBox +from cubicweb.web import uicfg, action +from cubicweb.web.views.baseviews import PrimaryView -AutomaticEntityForm.rcategories.set_rtag('secondary', 'firstname', 'subject', 'EUser') -AutomaticEntityForm.rcategories.set_rtag('secondary', 'surname', 'subject', 'EUser') -AutomaticEntityForm.rcategories.set_rtag('metadata', 'last_login_time', 'subject', 'EUser') -AutomaticEntityForm.rcategories.set_rtag('primary', 'in_group', 'subject', 'EUser') -AutomaticEntityForm.rcategories.set_rtag('generated', 'owned_by', 'object', 'EUser') -AutomaticEntityForm.rcategories.set_rtag('metadata', 'created_by', 'object', 'EUser') -AutomaticEntityForm.rcategories.set_rtag('metadata', 'bookmarked_by', 'object', 'EUser') -AutomaticEntityForm.rinlined.set_rtag(True, 'use_email', 'subject', 'EUser') - -EditBox.rmode.set_rtag('create', 'in_group', 'subject', 'EGroup') -EditBox.rmode.set_rtag('link', 'owned_by', 'object', 'EUser') -EditBox.rmode.set_rtag('link', 'created_by', 'object', 'EUser') -EditBox.rmode.set_rtag('create', 'bookmarked_by', 'object', 'EUser') +uicfg.rcategories.set_rtag('secondary', 'firstname', 'subject', 'EUser') +uicfg.rcategories.set_rtag('secondary', 'surname', 'subject', 'EUser') +uicfg.rcategories.set_rtag('metadata', 'last_login_time', 'subject', 'EUser') +uicfg.rcategories.set_rtag('primary', 'in_group', 'subject', 'EUser') +uicfg.rcategories.set_rtag('generated', 'owned_by', 'object', otype='EUser') +uicfg.rcategories.set_rtag('generated', 'created_by', 'object', otype='EUser') +uicfg.rcategories.set_rtag('metadata', 'bookmarked_by', 'object', otype='EUser') +uicfg.rinlined.set_rtag(True, 'use_email', 'subject', 'EUser') +uicfg.rmode.set_rtag('create', 'in_group', 'subject', 'EGroup') +uicfg.rmode.set_rtag('link', 'owned_by', 'object', 'EUser') +uicfg.rmode.set_rtag('link', 'created_by', 'object', 'EUser') +uicfg.rmode.set_rtag('create', 'bookmarked_by', 'object', 'EUser') -class UserPreferencesEntityAction(Action): +class UserPreferencesEntityAction(action.Action): id = 'prefs' __select__ = (one_line_rset() & implements('EUser') & match_user_groups('owners', 'managers')) @@ -66,6 +59,7 @@ def is_side_related(self, rschema, eschema): return rschema.type in ['interested_in', 'tags', 'todo_by', 'bookmarked_by', + ] class FoafView(EntityView): id = 'foaf' @@ -102,67 +96,3 @@ if emailaddr: self.w(u'%s\n' % html_escape(emailaddr)) self.w(u'\n') - - -class EditGroups(FormMixIn, EntityView): - """displays a simple euser / egroups editable table""" - - id = 'editgroups' - __select__ = implements('EUser') - - def call(self): - self.req.add_css('cubicweb.acl.css') - _ = self.req._ - self.w(u'
') - self.w(u'\n') - self.w(u'') - self.w(u'' % display_name(self.req, 'EUser')) - self.w(u''.join(u'' % _(gname) for geid, gname in self.egroups)) - self.w(u'') - for row in xrange(len(self.rset)): - self.build_table_line(row) - self.w(u'
%s%s
') - self.w(u'
') - self.w(self.button_cancel()) - self.w(self.button_ok()) - self.w(u'
') - self.w(u'
') - - - def build_table_line(self, row): - euser = self.entity(row) - euser_groups = [group.name for group in euser.in_group] - if euser_groups: - self.w(u'') - else: - self.w(u'') - self.w(u'
') - self.w(u'' % euser.eid) - self.w(u'' % euser.eid) - # this should not occur (for now) since in_group relation is mandatory - if not euser_groups: - self.w(u'' % - (euser.eid, INTERNAL_FIELD_VALUE)) - self.w(euser.dc_title()) - self.w(u'
') - for geid, gname in self.egroups: - self.w(u'
') - if gname in euser_groups: - self.w(u'' % - (euser.eid, geid)) - self.w(u'' % - (euser.eid, geid)) - else: - self.w(u'' % - (euser.eid, geid)) - self.w(u'
') - self.w(u'\n') - - - @property - @cached - def egroups(self): - groups = self.req.execute('Any G, N ORDERBY N WHERE G is EGroup, G name N') - return [(geid, gname) for geid, gname in groups.rows if gname != 'owners'] - -