web/box.py
changeset 2819 b864288fd316
parent 2799 b703639614e7
child 3230 1d25e928c299
equal deleted inserted replaced
2818:326375561412 2819:b864288fd316
    11 from logilab.mtconverter import xml_escape
    11 from logilab.mtconverter import xml_escape
    12 
    12 
    13 from cubicweb import Unauthorized, role as get_role, target as get_target
    13 from cubicweb import Unauthorized, role as get_role, target as get_target
    14 from cubicweb.schema import display_name
    14 from cubicweb.schema import display_name
    15 from cubicweb.selectors import (one_line_rset,  primary_view,
    15 from cubicweb.selectors import (one_line_rset,  primary_view,
    16                                 match_context_prop, partial_has_related_entities,
    16                                 match_context_prop, partial_has_related_entities)
    17                                 accepts_compat, has_relation_compat,
       
    18                                 condition_compat, require_group_compat)
       
    19 from cubicweb.view import View, ReloadableMixIn
    17 from cubicweb.view import View, ReloadableMixIn
    20 
    18 
    21 from cubicweb.web.htmlwidgets import (BoxLink, BoxWidget, SideBoxWidget,
    19 from cubicweb.web.htmlwidgets import (BoxLink, BoxWidget, SideBoxWidget,
    22                                       RawBoxItem, BoxSeparator)
    20                                       RawBoxItem, BoxSeparator)
    23 from cubicweb.web.action import UnregisteredAction
    21 from cubicweb.web.action import UnregisteredAction
    37 
    35 
    38         box.render(self.w)
    36         box.render(self.w)
    39     """
    37     """
    40     __registry__ = 'boxes'
    38     __registry__ = 'boxes'
    41     __select__ = match_context_prop()
    39     __select__ = match_context_prop()
    42     registered = classmethod(require_group_compat(View.registered))
       
    43 
    40 
    44     categories_in_order = ()
    41     categories_in_order = ()
    45     cw_property_defs = {
    42     cw_property_defs = {
    46         _('visible'): dict(type='Boolean', default=True,
    43         _('visible'): dict(type='Boolean', default=True,
    47                            help=_('display the box or not')),
    44                            help=_('display the box or not')),
   136 
   133 
   137 
   134 
   138 class EntityBoxTemplate(BoxTemplate):
   135 class EntityBoxTemplate(BoxTemplate):
   139     """base class for boxes related to a single entity"""
   136     """base class for boxes related to a single entity"""
   140     __select__ = BoxTemplate.__select__ & one_line_rset() & primary_view()
   137     __select__ = BoxTemplate.__select__ & one_line_rset() & primary_view()
   141     registered = accepts_compat(has_relation_compat(condition_compat(BoxTemplate.registered)))
       
   142     context = 'incontext'
   138     context = 'incontext'
   143 
   139 
   144     def call(self, row=0, col=0, **kwargs):
   140     def call(self, row=0, col=0, **kwargs):
   145         """classes inheriting from EntityBoxTemplate should define cell_call"""
   141         """classes inheriting from EntityBoxTemplate should define cell_call"""
   146         self.cell_call(row, col, **kwargs)
   142         self.cell_call(row, col, **kwargs)