Пример #1
0
            self.make_resource('toc', box_cls,
                    title={language: box_cls.class_title.gettext()})

        # Set right workflow state
        toc = self.get_resource('toc')
        toc.set_workflow_state(self.get_workflow_state())

        # Order toc if contentbar is empty
        contentbar_table = self.get_resource(self.contentbar_name)
        if len(list(contentbar_table.get_ordered_names())) == 0:
            contentbar_table.add_new_record({'name': 'toc'})


    # Views
    edit = Section_Edit()
    manage_content = Browse_Navigator()
    order_items = CPOrderItems()
    browse_content = Folder_BrowseContent(access='is_allowed_to_edit')
    preview_content = Folder_PreviewContent(access='is_allowed_to_edit')
    control_panel = ITWS_ControlPanel()

    # Control panel
    commit_log = CPDBResource_CommitLog(access='is_allowed_to_edit')
    links = CPDBResource_Links()
    backlinks = CPDBResource_Backlinks()



register_document_type(Section, 'neutral')
register_tags_aware(Section)
Пример #2
0
        from itools.core import fixed_offset

        # Current server timezone
        paris = timezone('Europe/Paris')

        utc = fixed_offset(0)
        database = get_context().database
        for resource in self.traverse_resources():
            if isinstance(resource, TagsAware):
                pub_datetime = resource.get_property('pub_datetime')
                if pub_datetime is None:
                    continue
                if pub_datetime.tzinfo:
                    return
                # localize date
                local_datetime = paris.localize(pub_datetime)
                utc_datetime = local_datetime - local_datetime.utcoffset()
                utc_datetime = utc_datetime.replace(tzinfo=utc)
                # Call metadata.set_property directly to avoid
                # comparison error 'TypeError'
                # -> can't compare offset-naive and offset-aware datetimes
                database.change_resource(resource)
                resource.metadata.set_property('pub_datetime', utc_datetime)



############################################################
# Register
############################################################
register_document_type(NeutralWS, 'iKaaro')
Пример #3
0
    def get_skin(self, context):
        if context.get_query_value('is_admin_popup', type=Boolean) is True:
            return self.get_resource('/ui/admin-popup/')
        # Back-Office
        hostname = context.uri.authority
        if hostname[:6] == 'admin.' :
            return self.get_resource('/ui/backoffice/')
        # Front-Office
        class_skin = self.get_class_skin(context)
        skin = self.get_resource(class_skin, soft=True)
        if skin is None:
            skin = self.get_resource('/ui/default_skin/')
        return skin


    def is_allowed_to_view_for_authenticated(self, user, resource):
        if (resource.has_property('must_be_authentificated') and
            resource.get_property('must_be_authentificated')):
            return self.is_authenticated(user, resource)
        return self.is_allowed_to_view(user, resource)


register_resource_class(ShopWebSite)
register_document_type(ShopWebSite, WebSite.class_id)


# XXX Add a hack to change login page
from ikaaro.resource_ import DBResource
DBResource.login = Shop_Login()
Пример #4
0
# -*- coding: UTF-8 -*-
# Copyright (C) 2010 Juan David Ibáñez Palomar <*****@*****.**>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.

# Import from itools
from itools.core import get_abspath

# Import from ikaaro
from ikaaro.registry import register_document_type
from ikaaro.skins import register_skin
from blog import Post

# Register skin
path = get_abspath('ui')
register_skin('blog', path)

# Add blogs to websites
register_document_type(Post)
Пример #5
0

    def get_document_types(self):
        return [self.news_class]

    ##########################
    # Views
    ##########################

    view = NewsFolder_View()
    edit = AutomaticEditView()
    browse_content = NewsFolder_BrowseContent(access='is_allowed_to_edit',
                                              title=MSG(u'Browse'))
    preview_content = Folder_PreviewContent(access='is_allowed_to_edit')
    rss = NewsFolder_RSS()
    control_panel = ITWS_ControlPanel()

    # Control panel
    commit_log = CPDBResource_CommitLog(access='is_allowed_to_edit')
    links = CPDBResource_Links()
    backlinks = CPDBResource_Backlinks()



# Register
register_document_type(NewsItem, NewsFolder.class_id)
register_tags_aware(NewsItem)

# Register skin
register_skin('news', get_abspath('../ui/news'))
Пример #6
0
    def init_resource(self, **kw):
        Folder.init_resource(self, **kw)
        # FrontPage
        self.make_resource(self.default_page, WikiPage,
                title={'en': u"Front Page"})


    def get_document_types(self):
        return [WikiPage, File]


    #############################################
    # AccessControl API
    #############################################
    is_allowed_to_view = is_wiki_allowed('is_allowed_to_view')
    is_allowed_to_edit = is_wiki_allowed('is_allowed_to_edit')
    is_allowed_to_put = is_wiki_allowed('is_allowed_to_put')
    is_allowed_to_add = is_wiki_allowed('is_allowed_to_add')
    is_allowed_to_remove = is_wiki_allowed('is_allowed_to_remove')
    is_allowed_to_copy = is_wiki_allowed('is_allowed_to_copy')
    is_allowed_to_move = is_wiki_allowed('is_allowed_to_move')
    is_allowed_to_trans = is_wiki_allowed('is_allowed_to_trans')
    is_allowed_to_publish = is_wiki_allowed('is_allowed_to_publish')
    is_allowed_to_retire = is_wiki_allowed('is_allowed_to_retire')
    is_allowed_to_view_folder = is_wiki_allowed('is_allowed_to_view_folder')



# Register document type
register_document_type(WikiFolder)
Пример #7
0
            return self.get_property('class_skin_administrators') or class_skin
        return class_skin

    def get_skin(self, context):
        if context.get_query_value('is_admin_popup', type=Boolean) is True:
            return self.get_resource('/ui/admin-popup/')
        # Back-Office
        hostname = context.uri.authority
        if hostname[:6] == 'admin.':
            return self.get_resource('/ui/backoffice/')
        # Front-Office
        class_skin = self.get_class_skin(context)
        skin = self.get_resource(class_skin, soft=True)
        if skin is None:
            skin = self.get_resource('/ui/default_skin/')
        return skin

    def is_allowed_to_view_for_authenticated(self, user, resource):
        if (resource.has_property('must_be_authentificated')
                and resource.get_property('must_be_authentificated')):
            return self.is_authenticated(user, resource)
        return self.is_allowed_to_view(user, resource)


register_resource_class(ShopWebSite)
register_document_type(ShopWebSite, WebSite.class_id)

# XXX Add a hack to change login page
from ikaaro.resource_ import DBResource
DBResource.login = Shop_Login()
Пример #8
0
        return len(users)


    def after_register(self, username):
        grey_list = set(self.get_property('grey_list'))
        grey_list.discard(username)
        self.set_property('grey_list', tuple(grey_list))

        return super(Mailing, self).after_register(username)


    def after_unregister(self, username):
        grey_list = set(self.get_property('grey_list'))
        grey_list.add(username)
        self.set_property('grey_list', tuple(grey_list))

        return super(Mailing, self).after_unregister(username)


    def is_subscription_allowed(self, username):
        grey_list = self.get_property('grey_list')
        if username in grey_list:
            return False

        return super(Mailing, self).is_subscription_allowed(username)



# Register
register_document_type(Mailing)
Пример #9
0
            return root._get_resource(name)
        return WebSite._get_resource(self, name)

    ########################################################################
    ## UI
    ########################################################################
    view = View()
    # Industry view
    edit_business = CPEditBusinessSector()
    edit_business_type = CPEditBusinessType()
    new_instance = Chapter_NewInstance() 

class Chapters(Folder):
    class_id = 'chapters'
    class_version = '20111120'
    class_title = MSG(u'Chapters folder')
    class_description = MSG(u'Chapters container.')
    class_skin = 'ui/chapter'
    class_icon16 = 'icons/16x16/folder.png'
    class_icon48 = 'icons/48x48/folder.png'
    class_views = ['view', 'browse_content', 'preview_content', 'edit',
                   'last_changes']

    def get_document_types(self):
        return [Chapter]

    view = ChaptersView()
    
# Register
register_document_type(Chapter, Chapter.class_id)
Пример #10
0
from ikaaro.skins import register_skin

# Import from ikaaro.agenda
from agenda import ConfigAgenda
from agenda_views import DailyView, MonthlyView, WeeklyView
from event import Event, EventModel, Event_Edit, Event_NewInstance
from event import Event_Render
from calendars import Calendar, Calendars_Enumerate, Calendars_View
from emails import Event_Reminder_Email

__all__ = [
    'Calendar',
    'Calendars_Enumerate',
    'Calendars_View',
    'Event',
    'EventModel',
    'DailyView',
    'MonthlyView',
    'WeeklyView',
    # Emails
    'Event_Reminder_Email'
]

# Register
register_document_type(Event)
register_skin('agenda', get_abspath('ui'))
Configuration.register_module(ConfigAgenda)

# Silent pyflakes
Event_Render, Event_Edit, Event_NewInstance
Пример #11
0
    def update_links(self, source, target):
        BaseWebPage.update_links(self, source, target)
        TagsAware.update_links(self, source, target)


    def update_relative_links(self, source):
        BaseWebPage.update_relative_links(self, source)
        TagsAware.update_relative_links(self, source)


    ##########################
    # Views
    ##########################
    edit = WebPage_Edit()
    view = WebPage_View()
    control_panel = ITWS_ControlPanel()

    # Control panel
    commit_log = CPDBResource_CommitLog(access='is_allowed_to_edit')
    links = CPDBResource_Links()
    backlinks = CPDBResource_Backlinks()
    subscribe = CPSubscribe()
    externaledit = CPExternalEdit()



register_resource_class(WebPage, format='application/xhtml+xml')
register_document_type(WebPage)
register_tags_aware(WebPage)
Пример #12
0
# 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, see <http://www.gnu.org/licenses/>.

# Import from itools
from itools.core import get_abspath
from itools.core import get_version

# Import from ikaaro
from ikaaro.registry import register_document_type
from ikaaro.skins import register_skin

from issue import Tchack_Issue
#from resources import Tchack_Resources
from tracker import Tchack_Tracker
from utils import which

# The version
__version__ = get_version()

# Register skin
path = get_abspath('ui')
register_skin('tchacker', path)

# Register document type
register_document_type(Tchack_Tracker)
Пример #13
0
        return WebSite._get_resource(self, name)

    ########################################################################
    ## UI
    ########################################################################
    view = View()
    # Industry view
    new_instance = Project_NewInstance()


class Projects(Folder):
    class_id = "projects"
    class_version = "20101112"
    class_title = MSG(u"Projects folder")
    class_description = MSG(u"Projects container.")
    class_icon16 = "icons/16x16/folder.png"
    class_icon48 = "icons/48x48/folder.png"
    class_views = Folder.class_views

    def get_document_types(self):
        return [Project]

    ########################################################################
    ## UI
    ########################################################################
    view = ProjectsView()


# Register
register_document_type(Project, Project.class_id)
Пример #14
0
            ui.database = self.metadata.database
            return ui
        # we need to get to the root
        root = self.get_root()
        if name in ('users', 'users.metadata'):
            return root._get_resource(name)
        if name in ('chapters', 'chapters.metadata'):
            return root._get_resource(name)
        if name in ('projects', 'projects.metadata'):
            return root._get_resource(name)
        if name in ('countries', 'countries.metadata'):
            return root._get_resource(name)
        return WebSite._get_resource(self, name)


    def get_document_types(self):
        return []

    ########################################################################
    # Views
    ########################################################################
    view = View()
    captcha = Captcha()
    create = ChapterGenerator()
    more = More()
    maps = Map()
    #site_search = Search_View()

#Register
register_document_type(Phoenix, Phoenix.class_id)
Пример #15
0
# Import from itools
from itools.core import get_abspath
from itools.core import get_version

# Import from ikaaro
from ikaaro.registry import register_document_type
from ikaaro.skins import register_skin

# Import from tchacker
from tchacker.utils import which

from video import VideoEncodingToFLV

# The version
__version__ = get_version()

# Register skin
path = get_abspath('ui')
register_skin('flowplayer', path)

# Register document type
register_document_type(VideoEncodingToFLV)

###############################################################################
# Check required software
###############################################################################
for name, cli in [("flvtool2", "flvtool2"), ("ffmpeg", "ffmpeg"),
                  ("ffmpegthumbnailer", "ffmpegthumbnailer")]:
    if(which(cli)) is None:
        print 'You need to install "%s".' % name
Пример #16
0
# Copyright (C) 2010 Juan David Ibáñez Palomar <*****@*****.**>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.

# Import from itools
from itools.core import get_abspath

# Import from ikaaro
from ikaaro.registry import register_document_type
from ikaaro.skins import register_skin
from blog import Post


# Register skin
path = get_abspath('ui')
register_skin('blog', path)

# Add blogs to websites
register_document_type(Post)
Пример #17
0
# Import from ikaaro.agenda
from agenda import ConfigAgenda
from agenda_views import DailyView, MonthlyView, WeeklyView
from event import Event, EventModel, Event_Edit, Event_NewInstance
from event import Event_Render
from calendars import Calendar, Calendars_Enumerate, Calendars_View
from emails import Event_Reminder_Email


__all__ = [
    'Calendar',
    'Calendars_Enumerate',
    'Calendars_View',
    'Event',
    'EventModel',
    'DailyView',
    'MonthlyView',
    'WeeklyView',
    # Emails
    'Event_Reminder_Email']


# Register
register_document_type(Event)
register_skin('agenda', get_abspath('ui'))
Configuration.register_module(ConfigAgenda)

# Silent pyflakes
Event_Render, Event_Edit, Event_NewInstance