def test_ActionCut(self): model = CopySupportNode('copysupport') request = self.layer.new_request() ActionContext(model, request, 'listing') self.assertTrue(ICopySupport.providedBy(model)) self.assertTrue(model.supports_cut) action = ActionCut() self.assertEqual(action(model, request), u'') with self.layer.authenticated('editor'): self.assertEqual(action(model, request), u'') with self.layer.authenticated('manager'): rendered = action(model, request) self.checkOutput( """ ...<a id="toolbaraction-cut" href="#" ajax:target="http://example.com/copysupport" ><span class="ion-scissors"></span > Cut</a>... """, rendered) model.supports_cut = False self.assertEqual(action(model, request), u'')
def sorted_rows(self, start, end, sort, order): children = self.sorted_children(sort, order) rows = list() cut_urls = extract_copysupport_cookie(self.request, 'cut') for child in children[start:end]: row_data = self.row_data(child) target = make_url(self.request, node=child) if ICopySupport.providedBy(child): row_data.selectable = True row_data.target = target row_data.css = 'copysupportitem' if target in cut_urls: row_data.css += ' copysupport_cut' if IWorkflowState.providedBy(child): row_data.css += ' state-%s' % child.state if hasattr(child, 'node_info_name') and child.node_info_name: row_data.css += ' node-type-%s' % child.node_info_name rows.append(row_data) return rows
def display(self): return ICopySupport.providedBy(self.model) \ and self.model.supports_paste \ and self.permitted('paste') \ and self.action_scope == 'listing'