All pastes #363751 Raw Edit

Anonymous

public python v1 · immutable
#363751 ·published 2007-02-19 17:27 UTC
rendered paste body
#__init__.pyfrom Products.CMFCore.utils import ContentInitfrom Products.Archetypes.public import listTypesfrom Products.Archetypes.public import process_typesfrom Products.CMFCore.DirectoryView import registerDirectoryfrom Products.Album import configfrom Products.Album.permissions import ADD_DEFAULTfrom Products.Album.permissions import ADD_PERMISSIONSregisterDirectory(config.SKINS_DIR, config.GLOBALS)def initialize(context):    import content    content_types, constructors, ftis = process_types(        listTypes(config.PROJECTNAME), config.PROJECTNAME)    all_types = zip(content_types, constructors)    for atype, constructor in all_types:        kind = '%s: %s' % (config.PROJECTNAME, atype.archetype_name)        ContentInit(            kind,            content_types = (atype,),            permission = ADD_PERMISSIONS.get(atype.portal_type, ADD_DEFAULT),            extra_constructors = (constructor,),            fti = ftis,        ).initialize(context)#config.py#Nome do projetoPROJECTNAME = 'Album'#Path do projetoGLOBALS = globals()#Diretorio de skinSKINS_DIR = 'skins'#Cria permissões especiaisCUSTOM_PERMISSIONS = {   'album':['Manage'],}# permissions.pyfrom Products.CMFCore.permissions import setDefaultRolesfrom Products.CMFCore.permissions import AddPortalContent as ADD_DEFAULTfrom Products.Album.config import PROJECTNAMEfrom Products.Album.config import CUSTOM_PERMISSIONSADD_PERMISSIONS = {}# Generate permissionsfor portal_type, actions in CUSTOM_PERMISSIONS.items():    for action in actions:        name = ('%s_%s' % (action, portal_type)).replace(' ','_').upper()        permission = '%s: %s %s' % (PROJECTNAME, action, portal_type)        locals().setdefault(name, permission)        if action.lower() == 'add':            ADD_PERMISSIONS[portal_type] = permission            setDefaultRoles(permission, ['Manager'])# Extensions/Install.pyfrom StringIO import StringIOfrom Products.Archetypes import listTypesfrom Products.Archetypes.Extensions.utils import installTypes, install_subskinfrom Products.Album.config import PROJECTNAME, GLOBALSdef install(self):    out = StringIO()    classes = listTypes(PROJECTNAME)    installTypes(self, out, classes, PROJECTNAME)    install_subskin(self, out, GLOBALS)    print >> out, 'Successfully installed %s.' % PROJECTNAME    return out.getvalue()# skins """Is empty"""# content/album.pyfrom Products.Archetypes.public import Schemafrom Products.Archetypes.public import registerTypefrom Products.Archetypes.public import BaseContent, BaseSchemafrom Products.Archetypes.public import StringField, StringWidgetfrom Products.Album import configAlbumFoto = BaseSchema + Schema((    StringField(        name='Foto',        required=True,        )))    class Album(BaseContent):   meta_type = portal_type = archetype_name = 'Album'   _at_rename_after_creation = True   content_icon = 'required.gif'   schema = 'AlbumFoto'registerType(Album, config.PROJECTNAME)