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)
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')
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()
# -*- 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)
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'))
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)
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()
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)
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)
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
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)
# 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)
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)
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)
# 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
# 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)
# 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