def action_remove(self, resource, context, form): # Tweak resource container = resource.get_order_root() # Tweak ids orig_ids = form['ids'] form['ids'] = [ id for id in form['ids'] if id not in container.__fixed_handlers__ ] fixed_handlers_message = None fixed_names = set(orig_ids).difference(set(form['ids'])) if fixed_names: # Use try to remove 'fixed handlers' fixed_resources = [] for name in fixed_names: item = container.get_resource(name) fixed_resources.append(item.get_title()) resources = ', '.join(sorted(list(fixed_resources))) msg = ERROR(u'These following resources cannot be removed: ' u'{resources}.') fixed_handlers_message = msg(resources=resources) # Call parent ret = Folder_BrowseContent.action_remove(self, container, context, form) if fixed_handlers_message: context.message.append(fixed_handlers_message) # Restore form form['ids'] = orig_ids return ret
def get_item_value(self, resource, context, item, column): item_brain, item_resource = item if column == 'title': return item_resource.get_title(), item_brain.name elif column == 'description': return item_resource.class_description return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_query_schema(self): """ We allow to define 2 variable (sort_by and batch_size)""" return merge_dicts( Folder_BrowseContent.get_query_schema(self), batch_size=Integer(default=self.batch_size), sort_by=String(default=self.sort_by), reverse=Boolean(default=self.reverse), )
def get_item_value(self, resource, context, item, column): brain, item_resource = item if column == 'name': link = '%s/%s' % (resource.get_property('shop_uri'), brain.name) return XMLParser("<a href='%s' target='_blank'>%s</a>" % (link, brain.name)) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): item_brain, item_resource = item if column == 'title': return item_resource.get_title(), item_brain.name elif column == 'description': return item_resource.class_description return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): brain, item_resource = item if column == 'pub_datetime': if brain.is_tagsaware is False: return None return context.format_datetime(brain.pub_datetime) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): brain, item_resource = item if column == 'name': link = '%s/%s' % (resource.get_property('shop_uri'), brain.name) return XMLParser( "<a href='%s' target='_blank'>%s</a>" % (link, brain.name)) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_namespace(self, resource, context): namespace = Folder_BrowseContent.get_namespace(self, resource, context) namespace["id"] = "section-%s" % resource.name namespace["css"] = self.view_name namespace["title"] = resource.get_property("title") namespace["show_title"] = self.show_title namespace["show_first_batch"] = self.show_first_batch namespace["show_second_batch"] = self.show_second_batch if self.show_first_batch and self.show_second_batch: # Transform batch generator into a list of events namespace["batch"] = list(namespace["batch"]) namespace["content"] = namespace["table"] return namespace
def get_namespace(self, resource, context): namespace = Folder_BrowseContent.get_namespace(self, resource, context) namespace['id'] = 'section-%s' % resource.name namespace['css'] = self.view_name namespace['title'] = resource.get_property('title') namespace['show_title'] = self.show_title namespace['show_first_batch'] = self.show_first_batch namespace['show_second_batch'] = self.show_second_batch if self.show_first_batch and self.show_second_batch: # Transform batch generator into a list of events namespace['batch'] = list(namespace['batch']) namespace['content'] = namespace['table'] return namespace
def get_item_value(self, resource, context, item, column): item_brain, item_resource = item if column == "checkbox": if self.get_nb_use(context, item_resource) > 0: return None return item_brain.name, False if column == "enumerate_preview": datatype = EnumerateTable_to_Enumerate(enumerate_name=item_brain.name) return SelectWidget("html_list", has_empty_option=False).to_html(datatype, None) elif column == "title": return (item_resource.get_title(), item_brain.name) elif column == "nb": return self.get_nb_use(context, item_resource) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): item_brain, item_resource = item if column == 'logo': logo = '<img src="%s"/>' % item_resource.get_logo(context) return XMLParser(logo) elif column == 'enabled': value = item_resource.get_property(column) return MSG(u'Yes') if value else MSG(u'No') elif column == 'title': return item_resource.get_title(), item_brain.name elif column == 'description': return item_resource.get_property(column) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): item_brain, item_resource = item if column == 'logo': logo = '<img src="%s"/>' % item_resource.get_logo(context) return XMLParser(logo) elif column == 'enabled': value = item_resource.get_property(column) return MSG(u'Yes') if value else MSG(u'No') elif column == 'title': return item_resource.get_title(), item_brain.name elif column == 'description': return item_resource.get_property(column) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): from ikaaro.file import Image item_brain, item_resource = item if column == 'class_icon16': return item_resource.get_class_icon() elif column == 'class_icon48': return item_resource.get_class_icon(size='48') elif column == 'pub_datetime': if item_brain.is_tagsaware: return item_resource.get_pub_datetime_formatted() return None elif column == 'title': return item_resource.get_title() elif column == 'long_title': if item_brain.is_tagsaware: return item_resource.get_long_title() return item_resource.get_title() elif column == 'link': return context.get_link(item_resource) elif column == 'abspath': site_root = item_resource.get_site_root() return '/%s' % site_root.get_pathto(item_resource) elif column == 'type': return item_resource.class_title.gettext() elif column == 'preview': if item_brain.is_tagsaware: return item_brain.preview_content return item_resource.get_property('description') elif column == 'is_image': return isinstance(item_resource, Image) elif column == 'image': if item_brain.is_tagsaware: thumbnail = item_resource.get_preview_thumbnail() if thumbnail: return context.get_link(thumbnail) elif isinstance(item_resource, Image): return context.get_link(item_resource) return None elif column == 'tags': if item_brain.is_tagsaware: return item_resource.get_tags_namespace(context) return [] elif column == 'css': if item_brain.abspath == resource.abspath: return 'active' return None return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_query_schema(self): """We allow to define 2 variable (sort_by and batch_size)""" d = merge_dicts(Folder_BrowseContent.get_query_schema(self), batch_size=Integer(default=self.batch_size), sort_by=String(default=self.sort_by), reverse=Boolean(default=self.reverse)) query_suffix = self._get_query_suffix() if query_suffix is None: return d prefixed_d = {} for key, value in d.iteritems(): prefixed_d['%s_%s' % (key, query_suffix)] = value return prefixed_d
def get_item_value(self, resource, context, item, column): brain, item_resource = item if column == 'items_nb': # Build the search query query = resource.get_tags_query_terms() query.append(PhraseQuery('tags', brain.name)) query = AndQuery(*query) # Search results = context.root.search(query) return len(results), './%s' % brain.name elif column == 'name': return brain.name return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): item_brain, item_resource = item if column == 'checkbox': if self.get_nb_use(context, item_resource) > 0: return None return item_brain.name, False if column == 'enumerate_preview': datatype = EnumerateTable_to_Enumerate( enumerate_name=item_brain.name) return SelectWidget('html_list', has_empty_option=False).to_html( datatype, None) elif column == 'title': return (item_resource.get_title(), item_brain.name) elif column == 'nb': return self.get_nb_use(context, item_resource) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_namespace(self, resource, context): self.view_resource = resource namespace = Folder_BrowseContent.get_namespace(self, resource, context) id = None if self.specific_id_wrapper: id = 'section-%s' % resource.name namespace['id'] = id namespace['css'] = self.get_css(resource, context) namespace['title'] = resource.get_property('title') namespace['display_title'] = self.display_title namespace['show_first_batch'] = self.show_first_batch namespace['show_second_batch'] = self.show_second_batch if self.show_first_batch and self.show_second_batch: # Transform batch generator into a list of events namespace['batch'] = list(namespace['batch']) namespace['content'] = namespace['table'] return namespace
def get_content_namespace(self, resource, context, items): # Get namespace namespace = Folder_BrowseContent.get_table_namespace(self, resource, context, items) # The breadcrumb breadcrumb = [] node = resource while node != context.root: if node.has_property('breadcrumb_title'): title = node.get_property('breadcrumb_title') else: title = node.get_title() link = context.get_link(node) breadcrumb.insert(0, {'name': node.name, 'title': title, 'url': link}) node = node.parent namespace['breadcrumb'] = breadcrumb return namespace
def get_item_value(self, resource, context, item, column): if column == 'links': brain, item_resource = item root = context.root path = str(item_resource.get_canonical_path()) results = root.search(links=path) if len(results) == 0: return 0 links = [] for index, doc in enumerate(results.get_documents()): links_resource = root.get_resource(doc.abspath) parent_resource = links_resource.parent # links_resource should be an ordered table links.append({'name': (index + 1), 'title': parent_resource.get_title(), 'path': context.get_link(links_resource)}) events = self.links_template return stl(events=events, namespace={'items': links}) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): from ikaaro.file import Image item_brain, item_resource = item if column == 'class_icon16': return item_resource.get_class_icon() elif column == 'class_icon48': return item_resource.get_class_icon(size='48') elif column == 'description': return item_resource.get_property('description') elif column == 'title': return item_resource.get_title() elif column == 'link': return context.get_link(item_resource) elif column == 'abspath': site_root = item_resource.get_site_root() return '/%s' % site_root.get_pathto(item_resource) elif column == 'type': return item_resource.class_title.gettext() elif column == 'image': if isinstance(item_resource, Image): return context.get_link(item_resource) return None return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_item_value(self, resource, context, item, column): from ikaaro.file import Image item_brain, item_resource = item if column == "class_icon16": return item_resource.get_class_icon() elif column == "class_icon48": return item_resource.get_class_icon(size="48") elif column == "description": return item_resource.get_property("description") elif column == "title": return item_resource.get_title() elif column == "link": return context.get_link(item_resource) elif column == "abspath": site_root = item_resource.get_site_root() return "/%s" % site_root.get_pathto(item_resource) elif column == "type": return item_resource.class_title.gettext() elif column == "image": if isinstance(item_resource, Image): return context.get_link(item_resource) return None return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_query_schema(self): """ We allow to define 2 variable (sort_by and batch_size)""" return merge_dicts(Folder_BrowseContent.get_query_schema(self), batch_size=Integer(default=self.batch_size), sort_by=String(default=self.sort_by), reverse=Boolean(default=self.reverse))
def get_query_schema(self): return merge_dicts(Folder_BrowseContent.get_query_schema(self), sort_by=String(default='format'))
def get_query_schema(self): return merge_dicts(Folder_BrowseContent.get_query_schema(self), sort_by=String(default='format'))
def get_item_value(self, resource, context, item, column): item_brain, item_resource = item if column == 'title': return (item_resource.get_title(), item_brain.name) return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_items(self, resource, context, *args): args = OrQuery(*[ PhraseQuery('format', EnumerateTable.class_id), PhraseQuery('format', EnumerateTableColor.class_id) ]) return Folder_BrowseContent.get_items(self, resource, context, args)
# Copyright (C) 2010 Hervé Cauwelier <*****@*****.**> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Import from ikaaro from ikaaro.folder import Folder from ikaaro.folder_views import Folder_BrowseContent, Folder_PreviewContent from ikaaro.resource_ import DBResource from ikaaro.resource_views import DBResource_Links, DBResource_Backlinks from ikaaro.revisions_views import DBResource_CommitLog # Security DBResource.links = DBResource_Links(access='is_admin') DBResource.backlinks = DBResource_Backlinks(access='is_admin') DBResource.commit_log = DBResource_CommitLog(access='is_admin') Folder.browse_content = Folder_BrowseContent(access='is_admin') Folder.preview_content = Folder_PreviewContent(access='is_admin')
def get_item_value(self, resource, context, item, column): brain, item_resource = item if column == 'pub_datetime': return brain.pub_datetime return Folder_BrowseContent.get_item_value(self, resource, context, item, column)
def get_table_columns(self, resource, context): columns = Folder_BrowseContent.get_table_columns(self, resource, context) columns = list(columns) # create a new list columns.append(('links', MSG(u'Referenced by'), False)) return columns
def get_items(self, resource, context, *args): args = OrQuery( *[PhraseQuery("format", EnumerateTable.class_id), PhraseQuery("format", EnumerateTableColor.class_id)] ) return Folder_BrowseContent.get_items(self, resource, context, args)