X-Git-Url: https://scm.cri.minesparis.psl.eu/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/__init__.py?ds=sidebyside diff --git a/__init__.py b/__init__.py deleted file mode 100755 index 52eaef5..0000000 --- a/__init__.py +++ /dev/null @@ -1,139 +0,0 @@ -# -*- coding: utf-8 -*- -####################################################################################### -# Plinn - http://plinn.org # -# Copyright (C) 2005-2007 Benoît PIN # -# # -# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -####################################################################################### -""" Plinn implementation of CMFCore. - - - -""" - -import exceptions - -from Products.CMFCore import utils as core_cmf_utils -from Products.CMFDefault import utils as default_cmf_utils -from Products.CMFCore.permissions import AddPortalContent -from Products.CMFCore.FSFile import FSFile -from Products.CMFCore.DirectoryView import registerFileExtension -import File, Folder, HugePlinnFolder, Topic -import MembershipTool -import MemberDataTool -import GroupsTool -import GroupDataTool -import RegistrationTool -import CalendarTool -import AttachmentTool -try : - import catalog - __solr_ok = True -except ImportError : - __solr_ok = False - -from PloneMisc import IndexIterator, Batch -import patch - -from AccessControl import allow_module, allow_class - - -contentClasses = (File.File, Folder.PlinnFolder, HugePlinnFolder.HugePlinnFolder, Topic.Topic ) - -contentConstructors = (File.addFile, Folder.manage_addPlinnFolder, HugePlinnFolder.manage_addHugePlinnFolder, Topic.addTopic) - -tools = ( MembershipTool.MembershipTool - , MemberDataTool.MemberDataTool - , GroupsTool.GroupsTool - , GroupDataTool.GroupDataTool - , RegistrationTool.RegistrationTool - , CalendarTool.CalendarTool - , AttachmentTool.AttachmentTool - ) -if __solr_ok : - tools += (catalog.CatalogTool,) - -# register files extensions -registerFileExtension('ttf', FSFile) -registerFileExtension('eot', FSFile) -registerFileExtension('cur', FSFile) - -def initialize(registrar) : - - allow_module('quopri') - allow_module('Products.Plinn.PloneMisc') - allow_class(IndexIterator) - allow_class(Batch) - - core_cmf_utils.ContentInit( - 'Plinn', - content_types = contentClasses, - permission = AddPortalContent, - extra_constructors = contentConstructors, - ).initialize(registrar) - - core_cmf_utils.ToolInit('Plinn Tool', - tools = tools, - icon = 'tool.gif' - ).initialize(registrar) - - - - -# Monkey... -# all tags are good ! -class YesDict(dict): - def has_key(self, k) : return True -default_cmf_utils.NASTY_TAGS = {} -default_cmf_utils.VALID_TAGS = YesDict() - -# the plinn portal_calendar is a also a "SPECIAL PROVIDER" -# TODO: vérifier l'impact -# import Products.CMFCore.exportimport.actions -# Products.CMFCore.exportimport.actions._SPECIAL_PROVIDERS += ('portal_calendar',) - - -# monkey-patch de getIcon qui est foirasse dans CMF2.2 : -# les icônes ne s'affichent pas correctement dans la ZMI -# lorqu'on y accède par un virtual host apache. -from urllib import quote -from Products.CMFCore.utils import getToolByName - -def getIcon(self, relative_to_portal=0): - """ - Using this method allows the content class - creator to grab icons on the fly instead of using a fixed - attribute on the class. - """ - ti = self.getTypeInfo() - if ti is not None: - icon = quote(ti.getIcon()) - if icon: - if relative_to_portal: - return icon - else: - # Relative to REQUEST['BASEPATH1'] - portal_url = getToolByName( self, 'portal_url' ) - res = portal_url(relative=1) + '/' + icon - while res[:1] == '/': - res = res[1:] - return res - return 'misc_/OFSP/dtmldoc.gif' - -icon = getIcon # For the ZMI - -from Products.CMFCore.DynamicType import DynamicType -DynamicType.getIcon = getIcon -DynamicType.icon = getIcon