Exemplo n.º 1
0
    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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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),
     )
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 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
Exemplo n.º 9
0
 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
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
 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)
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
    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)
Exemplo n.º 14
0
    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
Exemplo n.º 15
0
    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)
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
 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
Exemplo n.º 18
0
 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
Exemplo n.º 19
0
    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)
Exemplo n.º 20
0
 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)
Exemplo n.º 21
0
    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)
Exemplo n.º 22
0
 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))
Exemplo n.º 23
0
 def get_query_schema(self):
     return merge_dicts(Folder_BrowseContent.get_query_schema(self),
                        sort_by=String(default='format'))
Exemplo n.º 24
0
 def get_query_schema(self):
     return merge_dicts(Folder_BrowseContent.get_query_schema(self),
                        sort_by=String(default='format'))
Exemplo n.º 25
0
 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)
Exemplo n.º 26
0
 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)
Exemplo n.º 27
0
# 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')
Exemplo n.º 28
0
 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)
Exemplo n.º 29
0
 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
Exemplo n.º 30
0
 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)