--- a/entities/__init__.py Wed Sep 23 08:42:52 2009 +0200
+++ b/entities/__init__.py Wed Sep 23 09:29:39 2009 +0200
@@ -22,7 +22,7 @@
"""an entity instance has e_schema automagically set on the class and
instances have access to their issuing cursor
"""
- id = 'Any'
+ __regid__ = 'Any'
__implements__ = (IBreadCrumbs, IFeed)
fetch_attrs = ('modification_date',)
--- a/entities/authobjs.py Wed Sep 23 08:42:52 2009 +0200
+++ b/entities/authobjs.py Wed Sep 23 09:29:39 2009 +0200
@@ -13,7 +13,7 @@
from cubicweb.entities import AnyEntity, fetch_config
class CWGroup(AnyEntity):
- id = 'CWGroup'
+ __regid__ = 'CWGroup'
fetch_attrs, fetch_order = fetch_config(['name'])
fetch_unrelated_order = fetch_order
@@ -22,7 +22,7 @@
return self.get('name')
class CWUser(AnyEntity):
- id = 'CWUser'
+ __regid__ = 'CWUser'
fetch_attrs, fetch_order = fetch_config(['login', 'firstname', 'surname'])
fetch_unrelated_order = fetch_order
--- a/entities/lib.py Wed Sep 23 08:42:52 2009 +0200
+++ b/entities/lib.py Wed Sep 23 09:29:39 2009 +0200
@@ -24,7 +24,7 @@
return '%s at %s' % (name, host.replace('.', ' dot '))
class EmailAddress(AnyEntity):
- id = 'EmailAddress'
+ __regid__ = 'EmailAddress'
fetch_attrs, fetch_order = fetch_config(['address', 'alias'])
def dc_title(self):
@@ -84,7 +84,7 @@
class Bookmark(AnyEntity):
"""customized class for Bookmark entities"""
- id = 'Bookmark'
+ __regid__ = 'Bookmark'
fetch_attrs, fetch_order = fetch_config(['title', 'path'])
def actual_url(self):
@@ -103,7 +103,7 @@
class CWProperty(AnyEntity):
- id = 'CWProperty'
+ __regid__ = 'CWProperty'
fetch_attrs, fetch_order = fetch_config(['pkey', 'value'])
rest_attr = 'pkey'
@@ -126,7 +126,7 @@
class CWCache(AnyEntity):
"""Cache"""
- id = 'CWCache'
+ __regid__ = 'CWCache'
fetch_attrs, fetch_order = fetch_config(['name'])
def touch(self):
--- a/entities/schemaobjs.py Wed Sep 23 08:42:52 2009 +0200
+++ b/entities/schemaobjs.py Wed Sep 23 09:29:39 2009 +0200
@@ -16,7 +16,7 @@
class CWEType(AnyEntity):
- id = 'CWEType'
+ __regid__ = 'CWEType'
fetch_attrs, fetch_order = fetch_config(['name'])
def dc_title(self):
@@ -37,7 +37,7 @@
class CWRType(AnyEntity):
- id = 'CWRType'
+ __regid__ = 'CWRType'
fetch_attrs, fetch_order = fetch_config(['name'])
def dc_title(self):
@@ -87,7 +87,7 @@
class CWRelation(AnyEntity):
- id = 'CWRelation'
+ __regid__ = 'CWRelation'
fetch_attrs = fetch_config(['cardinality'])[0]
def dc_title(self):
@@ -130,7 +130,7 @@
class CWAttribute(CWRelation):
- id = 'CWAttribute'
+ __regid__ = 'CWAttribute'
def dc_long_title(self):
card = self.cardinality
@@ -144,7 +144,7 @@
class CWConstraint(AnyEntity):
- id = 'CWConstraint'
+ __regid__ = 'CWConstraint'
fetch_attrs, fetch_order = fetch_config(['value'])
def dc_title(self):
@@ -164,7 +164,7 @@
class RQLExpression(AnyEntity):
- id = 'RQLExpression'
+ __regid__ = 'RQLExpression'
fetch_attrs, fetch_order = fetch_config(['exprtype', 'mainvars', 'expression'])
def dc_title(self):
@@ -198,7 +198,7 @@
class CWPermission(AnyEntity):
- id = 'CWPermission'
+ __regid__ = 'CWPermission'
fetch_attrs, fetch_order = fetch_config(['name', 'label'])
def dc_title(self):
--- a/entities/wfobjs.py Wed Sep 23 08:42:52 2009 +0200
+++ b/entities/wfobjs.py Wed Sep 23 09:29:39 2009 +0200
@@ -19,7 +19,7 @@
class WorkflowException(Exception): pass
class Workflow(AnyEntity):
- id = 'Workflow'
+ __regid__ = 'Workflow'
@property
def initial(self):
@@ -156,11 +156,11 @@
provides a specific may_be_fired method to check if the relation may be
fired by the logged user
"""
- id = 'BaseTransition'
+ __regid__ = 'BaseTransition'
fetch_attrs, fetch_order = fetch_config(['name'])
def __init__(self, *args, **kwargs):
- if self.id == 'BaseTransition':
+ if self.__regid__ == 'BaseTransition':
raise WorkflowException('should not be instantiated')
super(BaseTransition, self).__init__(*args, **kwargs)
@@ -233,7 +233,7 @@
class Transition(BaseTransition):
"""customized class for Transition entities"""
- id = 'Transition'
+ __regid__ = 'Transition'
def destination(self):
return self.destination_state[0]
@@ -241,7 +241,7 @@
class WorkflowTransition(BaseTransition):
"""customized class for WorkflowTransition entities"""
- id = 'WorkflowTransition'
+ __regid__ = 'WorkflowTransition'
@property
def subwf(self):
@@ -284,7 +284,7 @@
class SubWorkflowExitPoint(AnyEntity):
"""customized class for SubWorkflowExitPoint entities"""
- id = 'SubWorkflowExitPoint'
+ __regid__ = 'SubWorkflowExitPoint'
@property
def subwf_state(self):
@@ -297,7 +297,7 @@
class State(AnyEntity):
"""customized class for State entities"""
- id = 'State'
+ __regid__ = 'State'
fetch_attrs, fetch_order = fetch_config(['name'])
rest_attr = 'eid'
@@ -318,7 +318,7 @@
class TrInfo(AnyEntity):
"""customized class for Transition information entities
"""
- id = 'TrInfo'
+ __regid__ = 'TrInfo'
fetch_attrs, fetch_order = fetch_config(['creation_date', 'comment'],
pclass=None) # don't want modification_date
@property
--- a/sobjects/notification.py Wed Sep 23 08:42:52 2009 +0200
+++ b/sobjects/notification.py Wed Sep 23 09:29:39 2009 +0200
@@ -26,7 +26,7 @@
by default user's with their email set are notified if any, else the default
email addresses specified in the configuration are used
"""
- id = 'recipients_finder'
+ __regid__ = 'recipients_finder'
__select__ = yes()
user_rql = ('Any X,E,A WHERE X is CWUser, X in_state S, S name "activated",'
'X primary_email E, E address A')
@@ -59,7 +59,7 @@
class StatusChangeMixIn(object):
- id = 'notif_status_change'
+ __regid__ = 'notif_status_change'
msgid_timestamp = True
message = _('status changed')
content = _("""
@@ -89,7 +89,7 @@
override call)
"""
__abstract__ = True
- id = 'notif_after_add_entity'
+ __regid__ = 'notif_after_add_entity'
msgid_timestamp = False
message = _('new')
content = """
--- a/sobjects/supervising.py Wed Sep 23 08:42:52 2009 +0200
+++ b/sobjects/supervising.py Wed Sep 23 09:29:39 2009 +0200
@@ -82,8 +82,8 @@
class SupervisionEmailView(Component):
"""view implementing the email API for data changes supervision notification
"""
+ __regid__ = 'supervision_notif'
__select__ = none_rset()
- id = 'supervision_notif'
def recipients(self):
return self.config['supervising-addrs']
--- a/web/views/actions.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/actions.py Wed Sep 23 09:29:39 2009 +0200
@@ -74,7 +74,7 @@
any size entity result search it the current state is 'linksearch'
if accept match.
"""
- id = 'select'
+ __regid__ = 'select'
__select__ = match_search_state('linksearch') & nonempty_rset() & match_searched_etype()
title = _('select')
@@ -86,7 +86,7 @@
class CancelSelectAction(Action):
- id = 'cancel'
+ __regid__ = 'cancel'
__select__ = match_search_state('linksearch')
title = _('cancel select')
@@ -100,7 +100,7 @@
class ViewAction(Action):
- id = 'view'
+ __regid__ = 'view'
__select__ = (match_search_state('normal') &
match_user_groups('users', 'managers') &
view_is_not_default_view() &
@@ -119,7 +119,7 @@
class ModifyAction(Action):
- id = 'edit'
+ __regid__ = 'edit'
__select__ = (match_search_state('normal') &
one_line_rset() &
(has_permission('update') | has_editable_relation('add')))
@@ -134,7 +134,7 @@
class MultipleEditAction(Action):
- id = 'muledit' # XXX get strange conflicts if id='edit'
+ __regid__ = 'muledit' # XXX get strange conflicts if id='edit'
__select__ = (match_search_state('normal') &
two_lines_rset() & one_etype_rset() &
has_permission('update'))
@@ -150,7 +150,7 @@
# generic "more" actions #######################################################
class ManagePermissionsAction(Action):
- id = 'managepermission'
+ __regid__ = 'managepermission'
__select__ = one_line_rset() & non_final_entity() & match_user_groups('managers')
title = _('manage permissions')
@@ -171,7 +171,7 @@
class DeleteAction(Action):
- id = 'delete'
+ __regid__ = 'delete'
__select__ = has_permission('delete')
title = _('delete')
@@ -186,7 +186,7 @@
class CopyAction(Action):
- id = 'copy'
+ __regid__ = 'copy'
__select__ = one_line_rset() & has_permission('add')
title = _('copy')
@@ -202,7 +202,7 @@
"""when we're seeing more than one entity with the same type, propose to
add a new one
"""
- id = 'addentity'
+ __regid__ = 'addentity'
__select__ = (match_search_state('normal') &
(addable_etype_empty_rset()
| (two_lines_rset() & one_etype_rset & has_add_permission()))
@@ -227,7 +227,7 @@
class AddRelatedActions(Action):
"""fill 'addrelated' sub-menu of the actions box"""
- id = 'addrelated'
+ __regid__ = 'addrelated'
__select__ = Action.__select__ & one_line_rset() & non_final_entity()
submenu = _('addrelated')
@@ -293,7 +293,7 @@
# logged user actions #########################################################
class UserPreferencesAction(Action):
- id = 'myprefs'
+ __regid__ = 'myprefs'
__select__ = authenticated_user()
title = _('user preferences')
@@ -305,7 +305,7 @@
class UserInfoAction(Action):
- id = 'myinfos'
+ __regid__ = 'myinfos'
__select__ = authenticated_user()
title = _('personnal informations')
@@ -317,7 +317,7 @@
class LogoutAction(Action):
- id = 'logout'
+ __regid__ = 'logout'
__select__ = authenticated_user()
title = _('logout')
@@ -341,21 +341,21 @@
class SiteConfigurationAction(ManagersAction):
- id = 'siteconfig'
+ __regid__ = 'siteconfig'
title = _('site configuration')
order = 10
class ManageAction(ManagersAction):
- id = 'manage'
+ __regid__ = 'manage'
title = _('manage')
order = 20
class SiteInfoAction(ManagersAction):
- id = 'siteinfo'
+ __regid__ = 'siteinfo'
+ __select__ = match_user_groups('users','managers')
title = _('info')
order = 30
- __select__ = match_user_groups('users','managers')
from logilab.common.deprecation import class_moved
--- a/web/views/ajaxedit.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/ajaxedit.py Wed Sep 23 09:29:39 2009 +0200
@@ -19,10 +19,10 @@
class attributes.
"""
__registry__ = 'views'
+ __regid__ = 'xaddrelation'
__select__ = (match_form_params('rtype', 'target')
| match_kwargs('rtype', 'target'))
cw_property_defs = {} # don't want to inherit this from Box
- id = 'xaddrelation'
expected_kwargs = form_params = ('rtype', 'target')
build_js = EditRelationBoxTemplate.build_reload_js_call
--- a/web/views/basecomponents.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/basecomponents.py Wed Sep 23 09:29:39 2009 +0200
@@ -29,7 +29,7 @@
class RQLInputForm(component.Component):
"""build the rql input form, usually displayed in the header"""
- id = 'rqlinput'
+ __regid__ = 'rqlinput'
cw_property_defs = VISIBLE_PROP_DEF
visible = False
@@ -59,7 +59,7 @@
class ApplLogo(component.Component):
"""build the instance logo, usually displayed in the header"""
- id = 'logo'
+ __regid__ = 'logo'
cw_property_defs = VISIBLE_PROP_DEF
# don't want user to hide this component using an cwproperty
site_wide = True
@@ -71,7 +71,7 @@
class ApplHelp(component.Component):
"""build the help button, usually displayed in the header"""
- id = 'help'
+ __regid__ = 'help'
cw_property_defs = VISIBLE_PROP_DEF
def call(self):
self.w(u'<a href="%s" class="help" title="%s"> </a>'
@@ -86,7 +86,7 @@
cw_property_defs = VISIBLE_PROP_DEF
# don't want user to hide this component using an cwproperty
site_wide = True
- id = 'loggeduserlink'
+ __regid__ = 'loggeduserlink'
def call(self):
if not self.req.cnx.anonymous_connection:
@@ -123,7 +123,7 @@
section
"""
__select__ = yes()
- id = 'applmessages'
+ __regid__ = 'applmessages'
# don't want user to hide this component using an cwproperty
cw_property_defs = {}
@@ -140,7 +140,7 @@
class ApplicationName(component.Component):
"""display the instance name"""
- id = 'appliname'
+ __regid__ = 'appliname'
cw_property_defs = VISIBLE_PROP_DEF
# don't want user to hide this component using an cwproperty
site_wide = True
@@ -154,7 +154,7 @@
class SeeAlsoVComponent(component.RelatedObjectsVComponent):
"""display any entity's see also"""
- id = 'seealso'
+ __regid__ = 'seealso'
context = 'navcontentbottom'
rtype = 'see_also'
role = 'subject'
@@ -168,7 +168,7 @@
"""displays the list of entity types contained in the resultset
to be able to filter accordingly.
"""
- id = 'etypenavigation'
+ __regid__ = 'etypenavigation'
__select__ = two_etypes_rset() | match_form_params('__restrtype', '__restrtypes',
'__restrrql')
cw_property_defs = VISIBLE_PROP_DEF
@@ -216,7 +216,7 @@
self.w(u'</div>')
class PdfViewComponent(component.Component):
- id = 'pdfview'
+ __regid__ = 'pdfview'
__select__ = yes()
context = 'header'
--- a/web/views/basecontrollers.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/basecontrollers.py Wed Sep 23 09:29:39 2009 +0200
@@ -64,7 +64,7 @@
class LoginController(Controller):
- id = 'login'
+ __regid__ = 'login'
def publish(self, rset=None):
"""log in the instance"""
@@ -77,7 +77,7 @@
class LogoutController(Controller):
- id = 'logout'
+ __regid__ = 'logout'
def publish(self, rset=None):
"""logout from the instance"""
@@ -89,7 +89,7 @@
- build result set
- select and call main template
"""
- id = 'view'
+ __regid__ = 'view'
template = 'main-template'
def publish(self, rset=None):
@@ -208,7 +208,7 @@
class FormValidatorController(Controller):
- id = 'validateform'
+ __regid__ = 'validateform'
def response(self, domid, status, args, entity):
callback = str(self.req.form.get('__onsuccess', 'null'))
@@ -232,7 +232,7 @@
class JSonController(Controller):
- id = 'json'
+ __regid__ = 'json'
def publish(self, rset=None):
"""call js_* methods. Expected form keys:
@@ -539,7 +539,7 @@
class SendMailController(Controller):
- id = 'sendmail'
+ __regid__ = 'sendmail'
__select__ = match_user_groups('managers', 'users')
def recipients(self):
@@ -588,7 +588,7 @@
class MailBugReportController(SendMailController):
- id = 'reportbug'
+ __regid__ = 'reportbug'
__select__ = yes()
def publish(self, rset=None):
--- a/web/views/basetemplates.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/basetemplates.py Wed Sep 23 09:29:39 2009 +0200
@@ -43,7 +43,7 @@
class LogInTemplate(LogInOutTemplate):
- id = 'login'
+ __regid__ = 'login'
title = 'log in'
def content(self, w):
@@ -51,7 +51,7 @@
class LoggedOutTemplate(LogInOutTemplate):
- id = 'loggedout'
+ __regid__ = 'loggedout'
title = 'logged out'
def content(self, w):
@@ -78,7 +78,7 @@
class NonTemplatableViewTemplate(MainTemplate):
"""main template for any non templatable views (xml, binaries, etc.)"""
- id = 'main-template'
+ __regid__ = 'main-template'
__select__ = ~templatable_view()
def call(self, view):
@@ -101,7 +101,7 @@
- call header / footer templates
"""
- id = 'main-template'
+ __regid__ = 'main-template'
__select__ = templatable_view()
def call(self, view):
@@ -193,7 +193,7 @@
main template. This template may be called for authentication error,
which means that req.cnx and req.user may not be set.
"""
- id = 'error-template'
+ __regid__ = 'error-template'
def call(self):
"""display an unexpected error"""
@@ -222,7 +222,7 @@
class SimpleMainTemplate(TheMainTemplate):
- id = 'main-no-top'
+ __regid__ = 'main-no-top'
def template_header(self, content_type, view=None, page_title='', additional_headers=()):
page_title = page_title or view.page_title()
@@ -273,7 +273,7 @@
from cubicweb.ext.xhtml2fo import ReportTransformer
class PdfMainTemplate(TheMainTemplate):
- id = 'pdf-main-template'
+ __regid__ = 'pdf-main-template'
def call(self, view):
"""build the standard view, then when it's all done, convert xhtml to pdf
@@ -308,7 +308,7 @@
class HTMLHeader(View):
"""default html headers"""
- id = 'htmlheader'
+ __regid__ = 'htmlheader'
def call(self, **kwargs):
self.favicon()
@@ -352,7 +352,7 @@
class HTMLPageHeader(View):
"""default html page header"""
- id = 'header'
+ __regid__ = 'header'
main_cell_components = ('appliname', 'breadcrumbs')
def call(self, view, **kwargs):
@@ -419,7 +419,7 @@
class HTMLPageFooter(View):
"""default html page footer: include logo if any, and close the HTML body
"""
- id = 'footer'
+ __regid__ = 'footer'
def call(self, **kwargs):
req = self.req
@@ -440,7 +440,7 @@
* include message component if selectable for this request
* include selectable content navigation components
"""
- id = 'contentheader'
+ __regid__ = 'contentheader'
def call(self, view, **kwargs):
"""by default, display informal messages in content header"""
@@ -457,7 +457,7 @@
"""default html page content footer: include selectable content navigation
components
"""
- id = 'contentfooter'
+ __regid__ = 'contentfooter'
def call(self, view, **kwargs):
components = self.vreg['contentnavigation'].poss_visible_objects(
@@ -470,7 +470,7 @@
class LogFormTemplate(View):
- id = 'logform'
+ __regid__ = 'logform'
__select__ = match_kwargs('id', 'klass')
title = 'log in'
--- a/web/views/baseviews.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/baseviews.py Wed Sep 23 09:29:39 2009 +0200
@@ -30,7 +30,7 @@
class NullView(AnyRsetView):
"""default view when no result has been found"""
- id = 'null'
+ __regid__ = 'null'
__select__ = yes()
def call(self, **kwargs):
pass
@@ -40,7 +40,7 @@
class NoResultView(View):
"""default view when no result has been found"""
__select__ = empty_rset()
- id = 'noresult'
+ __regid__ = 'noresult'
def call(self, **kwargs):
self.w(u'<div class="searchMessage"><strong>%s</strong></div>\n'
@@ -51,7 +51,7 @@
"""display values without any transformation (i.e. get a number for
entities)
"""
- id = 'final'
+ __regid__ = 'final'
# record generated i18n catalog messages
_('%d years')
_('%d months')
@@ -112,7 +112,7 @@
# XXX deprecated
class SecondaryView(EntityView):
- id = 'secondary'
+ __regid__ = 'secondary'
title = _('secondary')
def cell_call(self, row, col):
@@ -125,7 +125,7 @@
class OneLineView(EntityView):
- id = 'oneline'
+ __regid__ = 'oneline'
title = _('oneline')
def cell_call(self, row, col):
@@ -139,7 +139,7 @@
class TextView(EntityView):
"""the simplest text view for an entity"""
- id = 'text'
+ __regid__ = 'text'
title = _('text')
content_type = 'text/plain'
@@ -166,7 +166,7 @@
class MetaDataView(EntityView):
"""paragraph view of some metadata"""
- id = 'metadata'
+ __regid__ = 'metadata'
show_eid = True
def cell_call(self, row, col):
@@ -191,7 +191,7 @@
class InContextTextView(TextView):
- id = 'textincontext'
+ __regid__ = 'textincontext'
title = None # not listed as a possible view
def cell_call(self, row, col):
entity = self.rset.get_entity(row, col)
@@ -199,7 +199,7 @@
class OutOfContextTextView(InContextTextView):
- id = 'textoutofcontext'
+ __regid__ = 'textoutofcontext'
def cell_call(self, row, col):
entity = self.rset.get_entity(row, col)
@@ -207,7 +207,7 @@
class InContextView(EntityView):
- id = 'incontext'
+ __regid__ = 'incontext'
def cell_call(self, row, col):
entity = self.rset.get_entity(row, col)
@@ -220,7 +220,7 @@
class OutOfContextView(EntityView):
- id = 'outofcontext'
+ __regid__ = 'outofcontext'
def cell_call(self, row, col):
entity = self.rset.get_entity(row, col)
@@ -235,7 +235,7 @@
# list views ##################################################################
class ListView(EntityView):
- id = 'list'
+ __regid__ = 'list'
title = _('list')
item_vid = 'listitem'
@@ -269,7 +269,7 @@
class ListItemView(EntityView):
- id = 'listitem'
+ __regid__ = 'listitem'
@property
def redirect_vid(self):
@@ -290,13 +290,13 @@
class SimpleListView(ListItemView):
"""list without bullets"""
- id = 'simplelist'
+ __regid__ = 'simplelist'
redirect_vid = 'incontext'
class AdaptedListView(EntityView):
"""list of entities of the same type"""
- id = 'adaptedlist'
+ __regid__ = 'adaptedlist'
__select__ = EntityView.__select__ & one_etype_rset()
item_vid = 'adaptedlistitem'
@@ -316,11 +316,11 @@
class AdaptedListItemView(ListItemView):
- id = 'adaptedlistitem'
+ __regid__ = 'adaptedlistitem'
class CSVView(SimpleListView):
- id = 'csv'
+ __regid__ = 'csv'
redirect_vid = 'incontext'
def call(self, **kwargs):
@@ -332,7 +332,7 @@
class TreeItemView(ListItemView):
- id = 'treeitem'
+ __regid__ = 'treeitem'
def cell_call(self, row, col):
self.wview('incontext', self.rset, row=row, col=col)
@@ -344,7 +344,7 @@
XXX: finish me (fixed line width, fixed number of lines, CSS, etc.)
"""
- id = 'tsearch'
+ __regid__ = 'tsearch'
def cell_call(self, row, col, **kwargs):
entity = self.complete_entity(row, col)
@@ -374,7 +374,7 @@
class TooltipView(EntityView):
"""A entity view used in a tooltip"""
- id = 'tooltip'
+ __regid__ = 'tooltip'
def cell_call(self, row, col):
self.wview('oneline', self.rset, row=row, col=col)
--- a/web/views/boxes.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/boxes.py Wed Sep 23 09:29:39 2009 +0200
@@ -33,7 +33,7 @@
box with all actions impacting the entity displayed: edit, copy, delete
change state, add related entities
"""
- id = 'edit_box'
+ __regid__ = 'edit_box'
__select__ = BoxTemplate.__select__ & non_final_entity()
title = _('actions')
@@ -106,7 +106,7 @@
class SearchBox(BoxTemplate):
"""display a box with a simple search form"""
- id = 'search_box'
+ __regid__ = 'search_box'
visible = True # enabled by default
title = _('search')
@@ -139,7 +139,7 @@
class PossibleViewsBox(BoxTemplate):
"""display a box containing links to all possible views"""
- id = 'possible_views_box'
+ __regid__ = 'possible_views_box'
__select__ = BoxTemplate.__select__ & match_user_groups('users', 'managers')
visible = False
@@ -162,7 +162,7 @@
class StartupViewsBox(BoxTemplate):
"""display a box containing links to all startup views"""
- id = 'startup_views_box'
+ __regid__ = 'startup_views_box'
visible = False # disabled by default
title = _('startup views')
order = 70
@@ -181,7 +181,7 @@
class SideBoxView(EntityView):
"""helper view class to display some entities in a sidebox"""
- id = 'sidebox'
+ __regid__ = 'sidebox'
def call(self, boxclass='sideBox', title=u''):
"""display a list of entities by calling their <item_vid> view"""
--- a/web/views/calendar.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/calendar.py Wed Sep 23 09:29:39 2009 +0200
@@ -44,7 +44,7 @@
content_type = 'text/calendar'
title = _('iCalendar')
templatable = False
- id = 'ical'
+ __regid__ = 'ical'
def call(self):
ical = iCalendar()
@@ -71,7 +71,7 @@
Does apply to ICalendarable compatible entities
"""
- id = 'hcal'
+ __regid__ = 'hcal'
__select__ = implements(ICalendarable)
need_navigation = False
title = _('hCalendar')
@@ -94,7 +94,7 @@
class CalendarItemView(EntityView):
- id = 'calendaritem'
+ __regid__ = 'calendaritem'
def cell_call(self, row, col, dates=False):
task = self.complete_entity(row)
@@ -106,7 +106,7 @@
self.w('<br/>to %s'%self.format_date(task.stop))
class CalendarLargeItemView(CalendarItemView):
- id = 'calendarlargeitem'
+ __regid__ = 'calendarlargeitem'
class _TaskEntry(object):
@@ -129,7 +129,7 @@
class OneMonthCal(EntityView):
"""At some point, this view will probably replace ampm calendars"""
- id = 'onemonthcal'
+ __regid__ = 'onemonthcal'
__select__ = implements(ICalendarable)
need_navigation = False
title = _('one month')
@@ -320,7 +320,7 @@
class OneWeekCal(EntityView):
"""At some point, this view will probably replace ampm calendars"""
- id = 'oneweekcal'
+ __regid__ = 'oneweekcal'
__select__ = implements(ICalendarable)
need_navigation = False
title = _('one week')
--- a/web/views/csvexport.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/csvexport.py Wed Sep 23 09:29:39 2009 +0200
@@ -33,7 +33,7 @@
class CSVRsetView(CSVMixIn, AnyRsetView):
"""dumps raw result set in CSV"""
- id = 'csvexport'
+ __regid__ = 'csvexport'
title = _('csv export')
def call(self):
@@ -64,7 +64,7 @@
resultset. ('table' here only means empty lines separation between table
contents)
"""
- id = 'ecsvexport'
+ __regid__ = 'ecsvexport'
title = _('csv entities export')
def call(self):
--- a/web/views/cwproperties.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/cwproperties.py Wed Sep 23 09:29:39 2009 +0200
@@ -65,7 +65,7 @@
class SystemCWPropertiesForm(FormViewMixIn, StartupView):
"""site-wide properties edition form"""
- id = 'systempropertiesform'
+ __regid__ = 'systempropertiesform'
__select__ = none_rset() & match_user_groups('managers')
title = _('site configuration')
@@ -227,7 +227,7 @@
class CWPropertiesForm(SystemCWPropertiesForm):
"""user's preferences properties edition form"""
- id = 'propertiesform'
+ __regid__ = 'propertiesform'
__select__ = (
(none_rset() & match_user_groups('users','managers'))
| (one_line_rset() & match_user_groups('users') & is_user_prefs())
@@ -360,7 +360,7 @@
class CWPropertiesFormRenderer(formrenderers.FormRenderer):
"""specific renderer for properties"""
- id = 'cwproperties'
+ __regid__ = 'cwproperties'
def open_form(self, form, values):
err = '<div class="formsg"></div>'
--- a/web/views/cwuser.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/cwuser.py Wed Sep 23 09:29:39 2009 +0200
@@ -17,7 +17,7 @@
uicfg.primaryview_section.tag_attribute(('CWUser', 'login'), 'hidden')
class UserPreferencesEntityAction(action.Action):
- id = 'prefs'
+ __regid__ = 'prefs'
__select__ = (one_line_rset() & implements('CWUser') &
match_user_groups('owners', 'managers'))
@@ -30,7 +30,7 @@
class FoafView(EntityView):
- id = 'foaf'
+ __regid__ = 'foaf'
__select__ = implements('CWUser')
title = _('foaf')
--- a/web/views/debug.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/debug.py Wed Sep 23 09:29:39 2009 +0200
@@ -26,7 +26,7 @@
class DebugView(StartupView):
- id = 'debug'
+ __regid__ = 'debug'
__select__ = none_rset() & match_user_groups('managers')
title = _('server debug information')
@@ -60,3 +60,27 @@
w(u'</ul>')
else:
w(u'<p>no web sessions found</p>')
+
+
+class RegistryView(StartupView):
+ __regid__ = 'registry'
+ __select__ = StartupView.__select__ & match_user_groups('managers')
+ title = _('registry')
+
+ def call(self, **kwargs):
+ """The default view representing the instance's management"""
+ self.w(u'<h1>%s</h1>' % _("Registry's content"))
+ keys = sorted(self.vreg)
+ self.w(u'<p>%s</p>\n' % ' - '.join('<a href="/_registry#%s">%s</a>'
+ % (key, key) for key in keys))
+ for key in keys:
+ self.w(u'<h2><a name="%s">%s</a></h2>' % (key,key))
+ items = self.vreg[key].items()
+ if items:
+ self.w(u'<table><tbody>')
+ for key, value in sorted(items):
+ self.w(u'<tr><td>%s</td><td>%s</td></tr>'
+ % (key, xml_escape(repr(value))))
+ self.w(u'</tbody></table>\n')
+ else:
+ self.w(u'<p>Empty</p>\n')
--- a/web/views/editcontroller.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/editcontroller.py Wed Sep 23 09:29:39 2009 +0200
@@ -23,7 +23,7 @@
"""
class EditController(ViewController):
- id = 'edit'
+ __regid__ = 'edit'
def publish(self, rset=None):
"""edit / create / copy / delete entity / relations"""
--- a/web/views/editforms.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/editforms.py Wed Sep 23 09:29:39 2009 +0200
@@ -45,7 +45,7 @@
class DeleteConfForm(forms.CompositeForm):
- id = 'deleteconf'
+ __regid__ = 'deleteconf'
__select__ = non_final_entity()
domid = 'deleteconf'
@@ -70,7 +70,7 @@
class DeleteConfFormView(FormViewMixIn, EntityView):
"""form used to confirm deletion of some entities"""
- id = 'deleteconf'
+ __regid__ = 'deleteconf'
title = _('delete')
# don't use navigation, all entities asked to be deleted should be displayed
# else we will only delete the displayed page
@@ -101,7 +101,7 @@
(double-click on the field to see an appropriate edition widget).
"""
- id = 'doreledit'
+ __regid__ = 'doreledit'
__select__ = non_final_entity() & match_kwargs('rtype')
# FIXME editableField class could be toggleable from userprefs
@@ -262,7 +262,7 @@
"""same as ClickAndEditFormView but checking if the view *should* be applied
by checking uicfg configuration and composite relation property.
"""
- id = 'reledit'
+ __regid__ = 'reledit'
def should_edit_relation(self, entity, rschema, role, rvid):
eschema = entity.e_schema
@@ -282,7 +282,7 @@
class EditionFormView(FormViewMixIn, EntityView):
"""display primary entity edition form"""
- id = 'edition'
+ __regid__ = 'edition'
# add yes() so it takes precedence over deprecated views in baseforms,
# though not baseforms based customized view
__select__ = one_line_rset() & non_final_entity() & yes()
@@ -319,7 +319,7 @@
class CreationFormView(EditionFormView):
"""display primary entity creation form"""
- id = 'creation'
+ __regid__ = 'creation'
__select__ = specified_etype_implements('Any') & yes()
title = _('creation')
@@ -369,7 +369,7 @@
"""display primary entity creation form initialized with values from another
entity
"""
- id = 'copy'
+ __regid__ = 'copy'
warning_message = _('Please note that this is only a shallow copy')
def render_form(self, entity):
@@ -405,7 +405,7 @@
class TableEditForm(forms.CompositeForm):
- id = 'muledit'
+ __regid__ = 'muledit'
domid = 'entityForm'
onsubmit = "return validateForm('%s', null);" % domid
form_buttons = [SubmitButton(_('validate modifications on selected items')),
@@ -425,7 +425,7 @@
class TableEditFormView(FormViewMixIn, EntityView):
- id = 'muledit'
+ __regid__ = 'muledit'
__select__ = EntityView.__select__ & yes()
title = _('multiple edit')
@@ -439,7 +439,7 @@
class InlineEntityEditionFormView(FormViewMixIn, EntityView):
- id = 'inline-edition'
+ __regid__ = 'inline-edition'
__select__ = non_final_entity() & match_kwargs('peid', 'rtype')
removejs = "removeInlinedEntity('%s', '%s', '%s')"
@@ -506,7 +506,7 @@
class InlineEntityCreationFormView(InlineEntityEditionFormView):
- id = 'inline-creation'
+ __regid__ = 'inline-creation'
__select__ = (match_kwargs('peid', 'rtype')
& specified_etype_implements('Any'))
removejs = "removeInlineForm('%s', '%s', '%s')"
--- a/web/views/editviews.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/editviews.py Wed Sep 23 09:29:39 2009 +0200
@@ -27,7 +27,7 @@
"""view called by the edition view when the user asks to search for
something to link to the edited eid
"""
- id = 'search-associate'
+ __regid__ = 'search-associate'
__select__ = (one_line_rset() & match_search_state('linksearch')
& non_final_entity())
@@ -58,7 +58,7 @@
class OutOfContextSearch(EntityView):
- id = 'outofcontext-search'
+ __regid__ = 'outofcontext-search'
def cell_call(self, row, col):
entity = self.rset.get_entity(row, col)
erset = entity.as_rset()
@@ -74,7 +74,7 @@
class UnrelatedDivs(EntityView):
- id = 'unrelateddivs'
+ __regid__ = 'unrelateddivs'
__select__ = match_form_params('relation')
def cell_call(self, row, col):
@@ -184,7 +184,7 @@
THIS IS A TEXT VIEW. DO NOT HTML_ESCAPE
"""
- id = 'combobox'
+ __regid__ = 'combobox'
title = None
def cell_call(self, row, col):
@@ -196,7 +196,7 @@
class EditableFinalView(FinalView):
"""same as FinalView but enables inplace-edition when possible"""
- id = 'editable-final'
+ __regid__ = 'editable-final'
def cell_call(self, row, col, props=None):
entity, rtype = self.rset.related_entity(row, col)
--- a/web/views/emailaddress.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/emailaddress.py Wed Sep 23 09:29:39 2009 +0200
@@ -55,7 +55,7 @@
class EmailAddressShortPrimaryView(EmailAddressPrimaryView):
__select__ = implements('EmailAddress')
- id = 'shortprimary'
+ __regid__ = 'shortprimary'
title = None # hidden view
def render_entity_attributes(self, entity):
@@ -85,7 +85,7 @@
"""A one line view that builds a user clickable URL for an email with
'mailto:'"""
- id = 'mailto'
+ __regid__ = 'mailto'
__select__ = implements('EmailAddress')
def cell_call(self, row, col, **kwargs):
--- a/web/views/embedding.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/embedding.py Wed Sep 23 09:29:39 2009 +0200
@@ -29,7 +29,7 @@
class ExternalTemplate(basetemplates.TheMainTemplate):
"""template embeding an external web pages into CubicWeb web interface
"""
- id = 'external'
+ __regid__ = 'external'
def call(self, body):
# XXX fallback to HTML 4 mode when embeding ?
@@ -44,7 +44,7 @@
class EmbedController(Controller):
- id = 'embed'
+ __regid__ = 'embed'
template = 'external'
def publish(self, rset=None):
@@ -92,7 +92,7 @@
"""display an 'embed' link on entity implementing `embeded_url` method
if the returned url match embeding configuration
"""
- id = 'embed'
+ __regid__ = 'embed'
__select__ = (one_line_rset() & match_search_state('normal')
& implements(IEmbedable)
& score_entity(entity_has_embedable_url))
--- a/web/views/error.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/error.py Wed Sep 23 09:29:39 2009 +0200
@@ -11,7 +11,7 @@
from cubicweb.view import StartupView
class FourOhFour(StartupView):
- id = '404'
+ __regid__ = '404'
def call(self):
_ = self.req._
@@ -19,7 +19,7 @@
class ErrorOccured(StartupView):
- id = '500'
+ __regid__ = '500'
def call(self):
_ = self.req._
--- a/web/views/facets.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/facets.py Wed Sep 23 09:29:39 2009 +0200
@@ -29,7 +29,7 @@
class FilterBox(BoxTemplate):
"""filter results of a query"""
- id = 'filter_box'
+ __regid__ = 'filter_box'
__select__ = (((non_final_entity() & two_lines_rset())
| contextview_selector()
) & match_context_prop())
@@ -125,23 +125,23 @@
# facets ######################################################################
class CreatedByFacet(RelationFacet):
- id = 'created_by-facet'
+ __regid__ = 'created_by-facet'
rtype = 'created_by'
target_attr = 'login'
class InGroupFacet(RelationFacet):
- id = 'in_group-facet'
+ __regid__ = 'in_group-facet'
rtype = 'in_group'
target_attr = 'name'
class InStateFacet(RelationFacet):
- id = 'in_state-facet'
+ __regid__ = 'in_state-facet'
rtype = 'in_state'
target_attr = 'name'
# inherit from RelationFacet to benefit from its possible_values implementation
class ETypeFacet(RelationFacet):
- id = 'etype-facet'
+ __regid__ = 'etype-facet'
__select__ = yes()
order = 1
rtype = 'is'
@@ -182,7 +182,7 @@
class HasTextFacet(AbstractFacet):
__select__ = relation_possible('has_text', 'subject') & match_context_prop()
- id = 'has_text-facet'
+ __regid__ = 'has_text-facet'
rtype = 'has_text'
role = 'subject'
order = 0
--- a/web/views/formrenderers.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/formrenderers.py Wed Sep 23 09:29:39 2009 +0200
@@ -39,7 +39,7 @@
+---------+
"""
__registry__ = 'formrenderers'
- id = 'default'
+ __regid__ = 'default'
_options = ('display_fields', 'display_label', 'display_help',
'display_progress_div', 'table_class', 'button_bar_class',
@@ -246,7 +246,7 @@
"""use form_renderer_id = 'base' if you want base FormRenderer layout even
when selected for an entity
"""
- id = 'base'
+ __regid__ = 'base'
class EntityBaseFormRenderer(BaseFormRenderer):
@@ -275,7 +275,7 @@
| field1 input | field2 input | buttons
+--------------+--------------+---------+
"""
- id = 'htable'
+ __regid__ = 'htable'
display_help = False
def _render_fields(self, fields, w, form):
@@ -312,7 +312,7 @@
class EntityCompositeFormRenderer(FormRenderer):
"""specific renderer for multiple entities edition form (muledit)"""
- id = 'composite'
+ __regid__ = 'composite'
_main_display_fields = None
@@ -372,7 +372,7 @@
class EntityFormRenderer(EntityBaseFormRenderer):
"""specific renderer for entity edition form (edition)"""
- id = 'default'
+ __regid__ = 'default'
# needs some additional points in some case (XXX explain cases)
__select__ = EntityBaseFormRenderer.__select__ & yes()
@@ -532,7 +532,7 @@
"""specific renderer for entity inlined edition form
(inline-[creation|edition])
"""
- id = 'inline'
+ __regid__ = 'inline'
def render(self, form, values):
form.add_media()
--- a/web/views/forms.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/forms.py Wed Sep 23 09:29:39 2009 +0200
@@ -54,7 +54,7 @@
* `fieldsets_in_order`: fieldset name sequence, to control order
"""
- id = 'base'
+ __regid__ = 'base'
is_subform = False
internal_fields = ('__errorurl',) + NAV_FORM_PARAMETERS
@@ -288,7 +288,7 @@
class EntityFieldsForm(FieldsForm):
- id = 'base'
+ __regid__ = 'base'
__select__ = (match_kwargs('entity')
| (one_line_rset() & non_final_entity()))
@@ -541,7 +541,7 @@
class CompositeForm(FieldsForm):
"""form composed of sub-forms"""
- id = 'composite'
+ __regid__ = 'composite'
form_renderer_id = id
def __init__(self, *args, **kwargs):
@@ -556,7 +556,7 @@
class CompositeEntityForm(EntityFieldsForm):
"""form composed of sub-forms"""
- id = 'composite'
+ __regid__ = 'composite'
form_renderer_id = id
def __init__(self, *args, **kwargs):
--- a/web/views/ibreadcrumbs.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/ibreadcrumbs.py Wed Sep 23 09:29:39 2009 +0200
@@ -20,7 +20,7 @@
class BreadCrumbEntityVComponent(Component):
- id = 'breadcrumbs'
+ __regid__ = 'breadcrumbs'
__select__ = one_line_rset() & implements(IBreadCrumbs)
property_defs = {
@@ -94,7 +94,7 @@
class BreadCrumbView(EntityView):
- id = 'breadcrumbs'
+ __regid__ = 'breadcrumbs'
def cell_call(self, row, col):
entity = self.rset.get_entity(row, col)
@@ -105,7 +105,7 @@
class BreadCrumbTextView(EntityView):
- id = 'breadcrumbtext'
+ __regid__ = 'breadcrumbtext'
def cell_call(self, row, col):
entity = self.rset.get_entity(row, col)
--- a/web/views/idownloadable.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/idownloadable.py Wed Sep 23 09:29:39 2009 +0200
@@ -42,7 +42,7 @@
class DownloadBox(EntityBoxTemplate):
- id = 'download_box'
+ __regid__ = 'download_box'
# no download box for images
# XXX primary_view selector ?
__select__ = (one_line_rset() & implements(IDownloadable) &
@@ -58,7 +58,7 @@
"""this view is replacing the deprecated 'download' controller and allow
downloading of entities providing the necessary interface
"""
- id = 'download'
+ __regid__ = 'download'
__select__ = one_line_rset() & implements(IDownloadable)
templatable = False
@@ -85,7 +85,7 @@
class DownloadLinkView(EntityView):
"""view displaying a link to download the file"""
- id = 'downloadlink'
+ __regid__ = 'downloadlink'
__select__ = implements(IDownloadable)
title = None # should not be listed in possible views
@@ -132,7 +132,7 @@
class ImageView(EntityView):
- id = 'image'
+ __regid__ = 'image'
__select__ = implements(IDownloadable) & score_entity(is_image)
title = _('image')
--- a/web/views/igeocodable.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/igeocodable.py Wed Sep 23 09:29:39 2009 +0200
@@ -14,13 +14,13 @@
from cubicweb.selectors import implements
class GeocodingJsonView(EntityView):
- id = 'geocoding-json'
+ __regid__ = 'geocoding-json'
+ __select__ = implements(IGeocodable)
+
binary = True
templatable = False
content_type = 'application/json'
- __select__ = implements(IGeocodable)
-
def call(self):
# remove entities that don't define latitude and longitude
self.rset = self.rset.filtered_rset(lambda e: e.latitude and e.longitude)
@@ -57,8 +57,7 @@
class GoogleMapBubbleView(EntityView):
- id = 'gmap-bubble'
-
+ __regid__ = 'gmap-bubble'
__select__ = implements(IGeocodable)
def cell_call(self, row, col):
@@ -68,9 +67,9 @@
class GoogleMapsView(EntityView):
- id = 'gmap-view'
+ __regid__ = 'gmap-view'
+ __select__ = implements(IGeocodable)
- __select__ = implements(IGeocodable)
need_navigation = False
def call(self, gmap_key, width=400, height=400, uselabel=True, urlparams=None):
@@ -91,7 +90,7 @@
class GoogeMapsLegend(EntityView):
- id = 'gmap-legend'
+ __regid__ = 'gmap-legend'
def call(self):
self.w(u'<ol>')
--- a/web/views/iprogress.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/iprogress.py Wed Sep 23 09:29:39 2009 +0200
@@ -34,7 +34,7 @@
header_for_COLNAME methods allow to customize header's label
"""
- id = 'progress_table_view'
+ __regid__ = 'progress_table_view'
title = _('task progression')
__select__ = implements(IMileStone)
@@ -165,7 +165,7 @@
"""this views redirects to ``progress_table_view`` but removes
the ``project`` column
"""
- id = 'ic_progress_table_view'
+ __regid__ = 'ic_progress_table_view'
def call(self, columns=None):
view = self.vreg['views'].select('progress_table_view', self.req,
@@ -180,7 +180,7 @@
class ProgressBarView(EntityView):
"""displays a progress bar"""
- id = 'progressbar'
+ __regid__ = 'progressbar'
title = _('progress bar')
__select__ = implements(IProgress)
--- a/web/views/isioc.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/isioc.py Wed Sep 23 09:29:39 2009 +0200
@@ -14,7 +14,7 @@
from cubicweb.interfaces import ISiocItem, ISiocContainer
class SIOCView(EntityView):
- id = 'sioc'
+ __regid__ = 'sioc'
__select__ = EntityView.__select__ & implements(ISiocItem, ISiocContainer)
title = _('sioc')
templatable = False
@@ -38,7 +38,7 @@
self.wview('sioc_element', self.rset, row=row, col=col)
class SIOCContainerView(EntityView):
- id = 'sioc_element'
+ __regid__ = 'sioc_element'
__select__ = EntityView.__select__ & implements(ISiocContainer)
templatable = False
content_type = 'text/xml'
@@ -59,7 +59,7 @@
class SIOCItemView(EntityView):
- id = 'sioc_element'
+ __regid__ = 'sioc_element'
__select__ = EntityView.__select__ & implements(ISiocItem)
templatable = False
content_type = 'text/xml'
--- a/web/views/magicsearch.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/magicsearch.py Wed Sep 23 09:29:39 2009 +0200
@@ -15,7 +15,7 @@
from rql import RQLSyntaxError, BadRQLQuery, parse
from rql.nodes import Relation
-from cubicweb import Unauthorized
+from cubicweb import Unauthorized, typed_eid
from cubicweb.view import Component
LOGGER = getLogger('cubicweb.magicsearch')
@@ -135,7 +135,7 @@
class BaseQueryProcessor(Component):
__abstract__ = True
- id = 'magicsearch_processor'
+ __regid__ = 'magicsearch_processor'
# set something if you want explicit component search facility for the
# component
name = None
@@ -239,7 +239,7 @@
"""
# if this is an integer, then directly go to eid
try:
- eid = int(word)
+ eid = typed_eid(word)
return 'Any X WHERE X eid %(x)s', {'x': eid}, 'x'
except ValueError:
etype = self._get_entity_type(word)
--- a/web/views/management.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/management.py Wed Sep 23 09:29:39 2009 +0200
@@ -67,7 +67,7 @@
class SecurityManagementView(EntityView, SecurityViewMixIn):
"""display security information for a given entity"""
- id = 'security'
+ __regid__ = 'security'
__select__ = EntityView.__select__ & authenticated_user()
title = _('security')
@@ -191,7 +191,7 @@
class ErrorView(AnyRsetView):
"""default view when no result has been found"""
__select__ = yes()
- id = 'error'
+ __regid__ = 'error'
def page_title(self):
"""returns a title according to the result set - used for the
@@ -274,7 +274,7 @@
class ProcessInformationView(StartupView):
- id = 'info'
+ __regid__ = 'info'
__select__ = none_rset() & match_user_groups('users', 'managers')
title = _('server information')
--- a/web/views/massmailing.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/massmailing.py Wed Sep 23 09:29:39 2009 +0200
@@ -22,7 +22,7 @@
class SendEmailAction(Action):
- id = 'sendemail'
+ __regid__ = 'sendemail'
# XXX should check email is set as well
__select__ = implements(IEmailable) & match_user_groups('managers', 'users')
@@ -38,7 +38,7 @@
class MassMailingForm(forms.FieldsForm):
- id = 'massmailing'
+ __regid__ = 'massmailing'
sender = StringField(widget=TextInput({'disabled': 'disabled'}), label=_('From:'))
recipient = StringField(widget=CheckBox(), label=_('Recipients:'))
@@ -82,7 +82,7 @@
class MassMailingFormRenderer(formrenderers.FormRenderer):
- id = 'massmailing'
+ __regid__ = 'massmailing'
button_bar_class = u'toolbar'
def _render_fields(self, fields, w, form):
@@ -118,7 +118,7 @@
pass
class MassMailingFormView(FormViewMixIn, EntityView):
- id = 'massmailing'
+ __regid__ = 'massmailing'
__select__ = implements(IEmailable) & match_user_groups('managers', 'users')
def call(self):
--- a/web/views/navigation.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/navigation.py Wed Sep 23 09:29:39 2009 +0200
@@ -177,7 +177,7 @@
View.paginate = paginate
class NextPrevNavigationComponent(EntityVComponent):
- id = 'prevnext'
+ __regid__ = 'prevnext'
# register msg not generated since no entity implements IPrevNext in cubicweb
# itself
title = _('contentnavigation_prevnext')
--- a/web/views/old_calendar.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/old_calendar.py Wed Sep 23 09:29:39 2009 +0200
@@ -162,7 +162,7 @@
class YearCalendarView(_CalendarView):
- id = 'calendaryear'
+ __regid__ = 'calendaryear'
title = _('calendar (year)')
def call(self, year=None, month=None):
@@ -181,7 +181,7 @@
"""this view renders three semesters as three rows of six columns,
one column per month
"""
- id = 'calendarsemester'
+ __regid__ = 'calendarsemester'
title = _('calendar (semester)')
def call(self, year=None, month=None):
@@ -229,7 +229,7 @@
class MonthCalendarView(_CalendarView):
"""this view renders a 3x1 calendars' table"""
- id = 'calendarmonth'
+ __regid__ = 'calendarmonth'
title = _('calendar (month)')
def call(self, year=None, month=None):
@@ -246,7 +246,7 @@
class WeekCalendarView(_CalendarView):
"""this view renders a calendar for week events"""
- id = 'calendarweek'
+ __regid__ = 'calendarweek'
title = _('calendar (week)')
def call(self, year=None, week=None):
@@ -303,7 +303,7 @@
class AMPMYearCalendarView(YearCalendarView):
- id = 'ampmcalendaryear'
+ __regid__ = 'ampmcalendaryear'
title = _('am/pm calendar (year)')
def build_calendar(self, schedule, first_day):
@@ -357,7 +357,7 @@
class AMPMSemesterCalendarView(SemesterCalendarView):
"""this view renders a 3x1 calendars' table"""
- id = 'ampmcalendarsemester'
+ __regid__ = 'ampmcalendarsemester'
title = _('am/pm calendar (semester)')
def build_calendars(self, schedule, begin, end):
@@ -394,7 +394,7 @@
class AMPMMonthCalendarView(MonthCalendarView):
"""this view renders a 3x1 calendars' table"""
- id = 'ampmcalendarmonth'
+ __regid__ = 'ampmcalendarmonth'
title = _('am/pm calendar (month)')
def build_calendar(self, schedule, first_day):
@@ -450,7 +450,7 @@
class AMPMWeekCalendarView(WeekCalendarView):
"""this view renders a 3x1 calendars' table"""
- id = 'ampmcalendarweek'
+ __regid__ = 'ampmcalendarweek'
title = _('am/pm calendar (week)')
def build_calendar(self, schedule, weeks):
--- a/web/views/owl.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/owl.py Wed Sep 23 09:29:39 2009 +0200
@@ -58,7 +58,7 @@
class OWLView(StartupView):
"""This view export in owl format schema database. It is the TBOX"""
- id = 'owl'
+ __regid__ = 'owl'
title = _('owl')
templatable = False
content_type = 'application/xml' # 'text/xml'
@@ -145,7 +145,7 @@
class OWLABOXView(EntityView):
'''This view represents a part of the ABOX for a given entity.'''
- id = 'owlabox'
+ __regid__ = 'owlabox'
title = _('owlabox')
templatable = False
content_type = 'application/xml' # 'text/xml'
@@ -162,7 +162,7 @@
class OWLABOXItemView(EntityView):
'''This view represents a part of the ABOX for a given entity.'''
- id = 'owlaboxitem'
+ __regid__ = 'owlaboxitem'
templatable = False
content_type = 'application/xml' # 'text/xml'
@@ -201,7 +201,7 @@
class DownloadOWLSchemaAction(Action):
- id = 'download_as_owl'
+ __regid__ = 'download_as_owl'
__select__ = none_rset() & match_view('schema')
category = 'mainactions'
--- a/web/views/primary.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/primary.py Wed Sep 23 09:29:39 2009 +0200
@@ -20,7 +20,7 @@
class PrimaryView(EntityView):
"""the full view of an non final entity"""
- id = 'primary'
+ __regid__ = 'primary'
title = _('primary')
show_attr_label = True
show_rel_label = True
@@ -204,7 +204,7 @@
class RelatedView(EntityView):
- id = 'autolimited'
+ __regid__ = 'autolimited'
def call(self, title=None, **kwargs):
# if not too many entities, show them all in a list
maxrelated = self.req.property_value('navigation.related-limit')
--- a/web/views/pyviews.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/pyviews.py Wed Sep 23 09:29:39 2009 +0200
@@ -11,7 +11,7 @@
from cubicweb.selectors import match_kwargs
class PyValTableView(View):
- id = 'pyvaltable'
+ __regid__ = 'pyvaltable'
__select__ = match_kwargs('pyvalue')
def call(self, pyvalue, headers=None):
@@ -32,7 +32,7 @@
class PyValListView(View):
- id = 'pyvallist'
+ __regid__ = 'pyvallist'
__select__ = match_kwargs('pyvalue')
def call(self, pyvalue):
--- a/web/views/schema.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/schema.py Wed Sep 23 09:29:39 2009 +0200
@@ -37,7 +37,7 @@
# global schema view ###########################################################
class SchemaView(tabs.TabsMixin, StartupView):
- id = 'schema'
+ __regid__ = 'schema'
title = _('instance schema')
tabs = [_('schema-text'), _('schema-image')]
default_tab = 'schema-text'
@@ -51,7 +51,7 @@
class SchemaTabImageView(StartupView):
- id = 'schema-image'
+ __regid__ = 'schema-image'
def call(self):
self.w(_(u'<div>This schema of the data model <em>excludes</em> the '
@@ -64,7 +64,7 @@
class SchemaTabTextView(StartupView):
- id = 'schema-text'
+ __regid__ = 'schema-text'
def call(self):
rset = self.req.execute('Any X ORDERBY N WHERE X is CWEType, X name N, '
@@ -73,7 +73,7 @@
class ManagerSchemaPermissionsView(StartupView, management.SecurityViewMixIn):
- id = 'schema-security'
+ __regid__ = 'schema-security'
__select__ = StartupView.__select__ & match_user_groups('managers')
def call(self, display_relations=True):
@@ -173,7 +173,7 @@
class SchemaUreportsView(StartupView):
- id = 'schema-block'
+ __regid__ = 'schema-block'
def call(self):
viewer = SchemaViewer(self.req)
@@ -224,7 +224,7 @@
class CWETypeSTextView(EntityView):
- id = 'cwetype-schema-text'
+ __regid__ = 'cwetype-schema-text'
__select__ = EntityView.__select__ & implements('CWEType')
def cell_call(self, row, col):
@@ -260,7 +260,7 @@
class CWETypeSImageView(EntityView):
- id = 'cwetype-schema-image'
+ __regid__ = 'cwetype-schema-image'
__select__ = EntityView.__select__ & implements('CWEType')
def cell_call(self, row, col):
@@ -272,7 +272,7 @@
class CWETypeSPermView(EntityView):
- id = 'cwetype-schema-permissions'
+ __regid__ = 'cwetype-schema-permissions'
__select__ = EntityView.__select__ & implements('CWEType')
def cell_call(self, row, col):
@@ -300,7 +300,7 @@
class CWETypeSWorkflowView(EntityView):
- id = 'cwetype-workflow'
+ __regid__ = 'cwetype-workflow'
__select__ = (EntityView.__select__ & implements('CWEType') &
has_related_entities('workflow_of', 'object'))
@@ -372,7 +372,7 @@
class SchemaImageView(TmpFileViewMixin, StartupView):
- id = 'schemagraph'
+ __regid__ = 'schemagraph'
content_type = 'image/png'
def _generate(self, tmpfile):
@@ -384,7 +384,7 @@
class CWETypeSchemaImageView(TmpFileViewMixin, EntityView):
- id = 'schemagraph'
+ __regid__ = 'schemagraph'
__select__ = implements('CWEType')
content_type = 'image/png'
@@ -411,12 +411,12 @@
# misc: facets, actions ########################################################
class CWFinalFacet(facet.AttributeFacet):
- id = 'cwfinal-facet'
+ __regid__ = 'cwfinal-facet'
__select__ = facet.AttributeFacet.__select__ & implements('CWEType', 'CWRType')
rtype = 'final'
class ViewSchemaAction(action.Action):
- id = 'schema'
+ __regid__ = 'schema'
__select__ = yes()
title = _("site schema")
--- a/web/views/sparql.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/sparql.py Wed Sep 23 09:29:39 2009 +0200
@@ -23,7 +23,7 @@
Sparql2rqlTranslator = None
class SparqlForm(forms.FieldsForm):
- id = 'sparql'
+ __regid__ = 'sparql'
sparql = formfields.StringField(help=_('type here a sparql query'))
resultvid = formfields.StringField(choices=((_('table'), 'table'),
(_('sparql xml'), 'sparqlxml')),
@@ -36,7 +36,7 @@
class SparqlFormView(form.FormViewMixIn, StartupView):
- id = 'sparql'
+ __regid__ = 'sparql'
def call(self):
form = self.vreg.select('forms', 'sparql', self.req)
self.w(form.form_render())
@@ -81,7 +81,7 @@
class SparqlResultXmlView(AnyRsetView):
"""The spec can be found here: http://www.w3.org/TR/rdf-sparql-XMLres/
"""
- id = 'sparqlxml'
+ __regid__ = 'sparqlxml'
content_type = 'application/sparql-results+xml'
templatable = False
--- a/web/views/startup.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/startup.py Wed Sep 23 09:29:39 2009 +0200
@@ -18,7 +18,7 @@
from cubicweb.web import ajax_replace_url, uicfg, httpcache
class ManageView(StartupView):
- id = 'manage'
+ __regid__ = 'manage'
title = _('manage')
http_cache_manager = httpcache.EtagHTTPCacheManager
@@ -140,31 +140,9 @@
class IndexView(ManageView):
- id = 'index'
+ __regid__ = 'index'
title = _('view_index')
def display_folders(self):
return 'Folder' in self.schema and self.req.execute('Any COUNT(X) WHERE X is Folder')[0][0]
-
-class RegistryView(StartupView):
- id = 'registry'
- title = _('registry')
- __select__ = StartupView.__select__ & match_user_groups('managers')
-
- def call(self, **kwargs):
- """The default view representing the instance's management"""
- self.w(u'<h1>%s</h1>' % _("Registry's content"))
- keys = sorted(self.vreg)
- self.w(u'<p>%s</p>\n' % ' - '.join('<a href="/_registry#%s">%s</a>' % (key, key) for key in keys))
- for key in keys:
- self.w(u'<h2><a name="%s">%s</a></h2>' % (key,key))
- items = self.vreg[key].items()
- if items:
- self.w(u'<table><tbody>')
- for key, value in sorted(items):
- self.w(u'<tr><td>%s</td><td>%s</td></tr>' % (key, xml_escape(repr(value))))
- self.w(u'</tbody></table>\n')
- else:
- self.w(u'<p>Empty</p>\n')
-
--- a/web/views/tableview.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/tableview.py Wed Sep 23 09:29:39 2009 +0200
@@ -22,7 +22,7 @@
from cubicweb.web.facet import prepare_facets_rqlst, filter_hiddens
class TableView(AnyRsetView):
- id = 'table'
+ __regid__ = 'table'
title = _('table')
finalview = 'final'
@@ -247,16 +247,15 @@
class EditableTableView(TableView):
- id = 'editable-table'
+ __regid__ = 'editable-table'
finalview = 'editable-final'
title = _('editable-table')
class CellView(EntityView):
+ __regid__ = 'cell'
__select__ = nonempty_rset()
- id = 'cell'
-
def cell_call(self, row, col, cellvid=None):
"""
:param row, col: indexes locating the cell value in view's result set
@@ -287,7 +286,7 @@
* the actual query (`actualrql` form parameter) whose results will be
displayed with default restrictions set
"""
- id = 'initialtable'
+ __regid__ = 'initialtable'
__select__ = nonempty_rset() & match_form_params('actualrql')
# should not be displayed in possible view since it expects some specific
# parameters
@@ -325,5 +324,5 @@
class EditableInitialTableTableView(InitialTableView):
- id = 'editable-initialtable'
+ __regid__ = 'editable-initialtable'
finalview = 'editable-final'
--- a/web/views/timeline.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/timeline.py Wed Sep 23 09:29:39 2009 +0200
@@ -24,7 +24,7 @@
NOTE: work in progress (image_url, bubbleUrl and so on
should be properties of entity classes or subviews)
"""
- id = 'timeline-json'
+ __regid__ = 'timeline-json'
binary = True
templatable = False
content_type = 'application/json'
@@ -102,7 +102,7 @@
class TimelineView(TimelineViewMixIn, EntityView):
"""builds a cubicweb timeline widget node"""
- id = 'timeline'
+ __regid__ = 'timeline'
title = _('timeline')
__select__ = implements(ICalendarable)
need_navigation = False
@@ -117,7 +117,7 @@
"""similar to `TimelineView` but loads data from a static
JSON file instead of one after a RQL query.
"""
- id = 'static-timeline'
+ __regid__ = 'static-timeline'
def call(self, loadurl, tlunit=None, wdgclass=None):
self.widget_class = wdgclass or self.widget_class
--- a/web/views/timetable.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/timetable.py Wed Sep 23 09:29:39 2009 +0200
@@ -24,7 +24,7 @@
MIN_COLS = 3 # minimum number of task columns for a single user
class TimeTableView(AnyRsetView):
- id = 'timetable'
+ __regid__ = 'timetable'
title = _('timetable')
__select__ = implements(ITimetableViews)
need_navigation = False
--- a/web/views/treeview.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/treeview.py Wed Sep 23 09:29:39 2009 +0200
@@ -20,7 +20,7 @@
return str('%s-treestate' % treeid)
class TreeView(EntityView):
- id = 'treeview'
+ __regid__ = 'treeview'
itemvid = 'treeitemview'
subvid = 'oneline'
css_classes = 'treeview widget'
@@ -74,7 +74,7 @@
class FileTreeView(TreeView):
"""specific version of the treeview to display file trees
"""
- id = 'filetree'
+ __regid__ = 'filetree'
css_classes = 'treeview widget filetree'
title = _('file tree view')
@@ -88,7 +88,7 @@
This view adds an enclosing <span> with some specific CSS classes
around the oneline view. This is needed by the jquery treeview plugin.
"""
- id = 'filetree-oneline'
+ __regid__ = 'filetree-oneline'
def cell_call(self, row, col):
entity = self.rset.get_entity(row, col)
@@ -101,7 +101,7 @@
class DefaultTreeViewItemView(EntityView):
"""default treeitem view for entities which don't implement ITree"""
- id = 'treeitemview'
+ __regid__ = 'treeitemview'
def cell_call(self, row, col, vid='oneline', parentvid='treeview', treeid=None):
assert treeid is not None
@@ -118,9 +118,9 @@
(each item should be expandable if it's not a tree leaf)
"""
- id = 'treeitemview'
+ __regid__ = 'treeitemview'
+ __select__ = EntityView.__select__ & implements(ITree)
default_branch_state_is_open = False
- __select__ = EntityView.__select__ & implements(ITree)
def open_state(self, eeid, treeid):
cookies = self.req.get_cookie()
--- a/web/views/urlpublishing.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/urlpublishing.py Wed Sep 23 09:29:39 2009 +0200
@@ -49,7 +49,7 @@
lower priority. The first evaluator returning a result or raising
something else than `PathDontMatch` will stop the handlers chain.
"""
- id = 'urlpublisher'
+ __regid__ = 'urlpublisher'
vreg = None # XXX necessary until property for deprecation warning is on appobject
def __init__(self, vreg, default_method='view'):
@@ -101,7 +101,7 @@
class URLPathEvaluator(component.Component):
__abstract__ = True
- id = 'urlpathevaluator'
+ __regid__ = 'urlpathevaluator'
vreg = None # XXX necessary until property for deprecation warning is on appobject
def __init__(self, urlpublisher):
--- a/web/views/urlrewrite.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/urlrewrite.py Wed Sep 23 09:29:39 2009 +0200
@@ -67,7 +67,7 @@
If the input uri is a regexp, group substitution is allowed
"""
- id = 'simple'
+ __regid__ = 'simple'
rules = [
('/_', dict(vid='manage')),
@@ -179,7 +179,7 @@
"""Here, the rules dict maps regexps or plain strings to
callbacks that will be called with (input, uri, req, schema)
"""
- id = 'schemabased'
+ __regid__ = 'schemabased'
rules = [
# rgxp : callback
(rgx('/search/(.+)'), build_rset(rql=r'Any X WHERE X has_text %(text)s',
--- a/web/views/wdoc.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/wdoc.py Wed Sep 23 09:29:39 2009 +0200
@@ -87,7 +87,7 @@
class InlineHelpView(StartupView):
__select__ = match_form_params('fid')
- id = 'wdoc'
+ __regid__ = 'wdoc'
title = _('site documentation')
def call(self):
@@ -163,7 +163,7 @@
class InlineHelpImageView(StartupView):
- id = 'wdocimages'
+ __regid__ = 'wdocimages'
__select__ = match_form_params('fid')
binary = True
templatable = False
@@ -183,7 +183,7 @@
class ChangeLogView(StartupView):
- id = 'changelog'
+ __regid__ = 'changelog'
title = _('What\'s new?')
maxentries = 25
--- a/web/views/workflow.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/workflow.py Wed Sep 23 09:29:39 2009 +0200
@@ -42,7 +42,7 @@
# IWorkflowable views #########################################################
class ChangeStateForm(forms.CompositeEntityForm):
- id = 'changestate'
+ __regid__ = 'changestate'
form_renderer_id = 'base' # don't want EntityFormRenderer
form_buttons = [fwdgs.SubmitButton(stdmsgs.YES),
@@ -50,7 +50,7 @@
class ChangeStateFormView(form.FormViewMixIn, view.EntityView):
- id = 'statuschange'
+ __regid__ = 'statuschange'
title = _('status change')
__select__ = (one_line_rset() & implements(IWorkflowable)
& match_form_params('treid'))
@@ -88,7 +88,7 @@
class WFHistoryView(EntityView):
- id = 'wfhistory'
+ __regid__ = 'wfhistory'
__select__ = relation_possible('wf_info_for', role='object')
title = _('Workflow history')
@@ -121,7 +121,7 @@
class WFHistoryVComponent(component.EntityVComponent):
"""display the workflow history for entities supporting it"""
- id = 'wfhistory'
+ __regid__ = 'wfhistory'
__select__ = WFHistoryView.__select__ & component.EntityVComponent.__select__
context = 'navcontentbottom'
title = _('Workflow history')
@@ -134,7 +134,7 @@
class WorkflowActions(action.Action):
"""fill 'workflow' sub-menu of the actions box"""
- id = 'workflow'
+ __regid__ = 'workflow'
__select__ = (action.Action.__select__ & one_line_rset() &
relation_possible('in_state'))
@@ -166,7 +166,7 @@
# workflow entity types views ##################################################
class CellView(view.EntityView):
- id = 'cell'
+ __regid__ = 'cell'
__select__ = implements('TrInfo')
def cell_call(self, row, col, cellvid=None):
@@ -175,7 +175,7 @@
class StateInContextView(view.EntityView):
"""convenience trick, State's incontext view should not be clickable"""
- id = 'incontext'
+ __regid__ = 'incontext'
__select__ = implements('State')
def cell_call(self, row, col):
@@ -250,9 +250,9 @@
class WorkflowImageView(TmpFileViewMixin, view.EntityView):
- id = 'wfgraph'
+ __regid__ = 'wfgraph'
+ __select__ = implements('Workflow')
content_type = 'image/png'
- __select__ = implements('Workflow')
def _generate(self, tmpfile):
"""display schema information for an entity"""
--- a/web/views/xbel.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/xbel.py Wed Sep 23 09:29:39 2009 +0200
@@ -16,7 +16,7 @@
class XbelView(XMLView):
- id = 'xbel'
+ __regid__ = 'xbel'
title = _('xbel')
templatable = False
content_type = 'text/xml' #application/xbel+xml
@@ -38,7 +38,7 @@
class XbelItemView(EntityView):
- id = 'xbelitem'
+ __regid__ = 'xbelitem'
def cell_call(self, row, col):
entity = self.complete_entity(row, col)
--- a/web/views/xmlrss.py Wed Sep 23 08:42:52 2009 +0200
+++ b/web/views/xmlrss.py Wed Sep 23 09:29:39 2009 +0200
@@ -22,7 +22,7 @@
class XMLView(EntityView):
"""xml view for entities"""
- id = 'xml'
+ __regid__ = 'xml'
title = _('xml')
templatable = False
content_type = 'text/xml'
@@ -42,7 +42,7 @@
class XMLItemView(EntityView):
- id = 'xmlitem'
+ __regid__ = 'xmlitem'
def cell_call(self, row, col):
""" element as an item for an xml feed """
@@ -67,7 +67,7 @@
class XMLRsetView(AnyRsetView):
"""dumps raw rset as xml"""
- id = 'rsetxml'
+ __regid__ = 'rsetxml'
title = _('xml export')
templatable = False
content_type = 'text/xml'
@@ -105,7 +105,7 @@
# RSS stuff ###################################################################
class RSSFeedURL(Component):
- id = 'rss_feed_url'
+ __regid__ = 'rss_feed_url'
__select__ = non_final_entity()
def feed_url(self):
@@ -113,7 +113,7 @@
class RSSEntityFeedURL(Component):
- id = 'rss_feed_url'
+ __regid__ = 'rss_feed_url'
__select__ = non_final_entity() & one_line_rset()
def feed_url(self):
@@ -122,7 +122,7 @@
class RSSIconBox(box.BoxTemplate):
"""just display the RSS icon on uniform result set"""
- id = 'rss'
+ __regid__ = 'rss'
__select__ = (box.BoxTemplate.__select__
& appobject_selectable('components', 'rss_feed_url'))
@@ -142,7 +142,7 @@
class RSSView(XMLView):
- id = 'rss'
+ __regid__ = 'rss'
title = _('rss')
templatable = False
content_type = 'text/xml'
@@ -178,7 +178,7 @@
class RSSItemView(EntityView):
- id = 'rssitem'
+ __regid__ = 'rssitem'
date_format = '%%Y-%%m-%%dT%%H:%%M%+03i:00' % (timezone / 3600)
add_div_section = False