from Products.ATContentTypes.lib.constraintypes import ConstrainTypesMixinSchema

from plone.app.blob.field import BlobField, ImageField #plone 4 image field

import transaction
from Products.CMFCore.WorkflowCore import WorkflowException

#from plone import api

# -*- Message Factory Imported Here -*-

from Ysektionen.Booker.interfaces import IBooker
from Ysektionen.Booker.config import PROJECTNAME

"""BookerSchema = folder.ATFolderSchema.copy() + atapi.Schema(("""
BookerSchema = folder.ATFolderSchema.copy() + schemata.ATContentTypeSchema.copy() + ConstrainTypesMixinSchema.copy() + atapi.Schema((

    atapi.StringField(name='title',
                required=True),
    atapi.StringField(name='description',
                required=False),
    ImageField('animage',
                 widget=atapi.ImageWidget(label='An image',
                 description='En bild')),
    atapi.TextField(
                name='body',
                searchable=True,
                default_output_type = 'text/x-html-safe',
                widget=atapi.RichWidget(
                        label = ''
                        )),
Beispiel #2
0
from Products.ATContentTypes.content.schemata import ATContentTypeSchema
from Products.ATContentTypes.content.schemata import NextPreviousAwareSchema
from Products.ATContentTypes.content.schemata import finalizeATCTSchema
from Products.ATContentTypes.lib.constraintypes import \
    ConstrainTypesMixinSchema
from Products.ATContentTypes.content.base import ATCTFolderMixin
from Products.ATContentTypes.content.base import registerATCT

from plone.app.folder import packageName
from plone.app.folder.base import BaseBTreeFolder
from plone.app.folder.bbb import IArchivable, IPhotoAlbumAble
from plone.app.folder.bbb import folder_implements


ATFolderSchema = ATContentTypeSchema.copy() + \
    ConstrainTypesMixinSchema.copy() + NextPreviousAwareSchema.copy()
finalizeATCTSchema(ATFolderSchema, folderish=True, moveDiscussion=False)


class IATUnifiedFolder(IATFolder):
    """ marker interface for the new, unified folders """


class ATFolder(ATCTFolderMixin, BaseBTreeFolder):
    """ a folder suitable for holding a very large number of items """
    implements(IATUnifiedFolder, IATBTreeFolder, IArchivable, IPhotoAlbumAble)

    __implements__ = folder_implements

    schema = ATFolderSchema
    security = ClassSecurityInfo()
Beispiel #3
0
from ..config import PROJECTNAME
from base import BaseSchema
from numbers import NumbersMixin

from Products.ATVocabularyManager.namedvocabulary import NamedVocabulary
from Products.DataGridField import DataGridField, DataGridWidget, FixedRow
from Products.DataGridField.Column import Column

# define slave parameters for master
slave_fields = ({'name': 'province',
                 'action': 'vocabulary',
                 'vocab_method': 'getProvinceVocabulary',
                 'control_param': 'master',
                 },)

InstitutionSchema = folder.ATFolderSchema.copy() + ConstrainTypesMixinSchema.copy() + BaseSchema.copy() + atapi.Schema((

    atapi.TextField('text',
        required=False,
        searchable=True,
        primary=True,
        storage = atapi.AnnotationStorage(),
        validators = ('isTidyHtmlWithCleanup',),
        default_output_type='text/x-html-safe',
        widget = atapi.RichWidget(
            description='',
            label=_(u'label_body_text', default=u'Body Text'),
            rows=25,
            allow_file_upload=zconf.ATDocument.allow_document_upload),
    ),
Beispiel #4
0
from Products.CMFCore import CMFCorePermissions
from DateTime import DateTime
from Products.SimpleBlog.config import DISPLAY_MODE, ENABLE_ADSENSE
import Products.SimpleBlog.Permissions
from Products.CMFCore.utils import getToolByName

from Products.SimpleBlog import MetaWeblogAPI
from Products.SimpleBlog import BloggerAPI
from Products.SimpleBlog import MovableTypeAPI
from Products.Archetypes.utils import  unique

from Products.ATContentTypes.content.base import  ATCTBTreeFolder, ATCTFolder
from Products.ATContentTypes.lib.constraintypes import  ConstrainTypesMixinSchema

schema = ConstrainTypesMixinSchema.copy() + ATCTFolder.schema.copy() +  Schema((
    StringField('description',
                isMetadata=1,
                accessor='Description',
                searchable=1,
                widget=TextAreaWidget(label='Description',
                                      label_msgid="label_blog_description",
                                      description_msgid="help_blog_description",
                                      i18n_domain="SimpleBlog",
                                      description='Give a description for this SimpleBlog.')),
    # this field is deprecated, here for compatibility
    StringField('displayMode',
                vocabulary=DISPLAY_MODE,
                widget=SelectionWidget(label='Display Mode', 
                                       label_msgid="label_display_mode",
                                       description_msgid="help_display_mode",
Beispiel #5
0
from Products.ATContentTypes.content import folder
from Products.ATContentTypes.content.schemata import finalizeATCTSchema
from Products.ATContentTypes.content.schemata import NextPreviousAwareSchema
from Products.ATContentTypes.lib.constraintypes import ConstrainTypesMixinSchema
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.utils import safe_unicode
from zope.interface import implements, directlyProvides
from zope.schema.interfaces import IVocabularyFactory
from zope.schema.vocabulary import SimpleVocabulary

# Maximum number of protocols that we'll allow to all have the same title.
MAX_PROTOCOL_INDEX = 100

# To support CA-586, we'll make "description" a computed field whose value comes from
# the abstract, objectives, aims, or results outcome.
ProtocolSchema = knowledgeobject.KnowledgeObjectSchema.copy() + ConstrainTypesMixinSchema.copy() + NextPreviousAwareSchema.copy()
del ProtocolSchema['description']
ProtocolSchema += atapi.Schema((
    atapi.ComputedField(
        'description',
        accessor='Description',
        allowable_content_types=('text/plain',),
        default=u'',
        default_content_type='text/plain',
        expression='context._computeDescription()',
        searchable=True,
        widget=atapi.ComputedWidget(
            visible={'edit': 'invisible', 'view': 'invisible'},
        ),
    ),
    atapi.TextField(
            description=_(
                u'call_award_notice_corrigendum_description',
                default=u'Select the file with the award notice corrigendum'),
            allow_search=0,
            restrict_browsing_to_startup_directory=1,
            force_close_on_insert=1,
            ),
        relationship='award_notice_corrigendum_attachment',
        ),
),
)


CallForContractors_schema = BaseSchema.copy() + \
    schema.copy() +\
    ConstrainTypesMixinSchema.copy() +\
    NextPreviousAwareSchema.copy()

finalizeATCTSchema(CallForContractors_schema)

unwantedFields = ('rights', 'contributors', 'allowDiscussion', 'location',
    'creators', 'creation_date', 'modification_date', 'nextPreviousEnabled',
    'excludeFromNav', 'tableContents', 'presentation', 'language')

for name in unwantedFields:
    CallForContractors_schema[name].widget.visible['edit'] = 'invisible'
    CallForContractors_schema[name].widget.visible['view'] = 'invisible'
    CallForContractors_schema.changeSchemataForField(name, 'default')


class CallForContractors(ATFolder, ATDocument):
                 allow_search = True,
                 allow_browse = True,
                 show_indexes = False,
                 force_close_on_insert = True,
                 i18n_domain="plone",
                 label="Related Items",
                 label_msgid="label_related_items",
                 description="",
                 description_msgid="",
                 visible = {'edit' : 'visible', 'view' : 'invisible' }
                 )
           ),

))

page_schema = ATFolder.schema.copy() + ConstrainTypesMixinSchema.copy() \
    + schema.copy()

finalize_simplelayout_schema(page_schema, folderish=True)


class Page(ATFolder):
    """
    """
    implements(IPage, ISimpleLayoutCapable)
    security = ClassSecurityInfo()

    schema = page_schema

    def getPageTypes(self):
        catalog = getToolByName(self, "portal_catalog")
# try plone.app.folder first
try:
    from plone.app.folder import folder
except ImportError:
    from Products.ATContentTypes.content import folder

from Products.ATContentTypes.content import document
from Products.ATContentTypes.content import schemata
from Products.ATContentTypes.lib.constraintypes \
import ConstrainTypesMixinSchema
from Products.Archetypes.Storage import AttributeStorage
from collective.folderishpage.interfaces import IATFolderishDocument
from collective.folderishpage.config import PROJECTNAME

ATFolderishDocumentSchema = document.ATDocumentSchema.copy()
ATFolderishDocumentSchema += ConstrainTypesMixinSchema.copy()
ATFolderishDocumentSchema += schemata.NextPreviousAwareSchema.copy()
ATFolderishDocumentSchema += atapi.Schema((

))

#folderish=False is intended, because we would like to have relatedItems
# Set text storage to AttributeStorage so we have history diff info
ATFolderishDocumentSchema['text'].storage = AttributeStorage()
schemata.finalizeATCTSchema(ATFolderishDocumentSchema,
                            folderish=False,
                            moveDiscussion=False)


class ATFolderishDocument(folder.ATFolder, document.ATDocument):
    """A page in the site. Can contain rich text."""
__docformat__ = 'plaintext'

from AccessControl import ClassSecurityInfo
from Products.Archetypes.atapi import *
from zope.interface import implements
import interfaces
from collective.classifieds.config import *
from Products.Archetypes import atapi
from Products.ATContentTypes.content import folder
from Products.ATContentTypes.content import document
from Products.ATContentTypes.content import schemata
from Products.ATContentTypes.lib.constraintypes \
import ConstrainTypesMixinSchema

OrderedClassifieds_schema = document.ATDocumentSchema.copy()
OrderedClassifieds_schema += ConstrainTypesMixinSchema.copy()
OrderedClassifieds_schema += schemata.NextPreviousAwareSchema.copy()
OrderedClassifieds_schema += atapi.Schema((

))

schemata.finalizeATCTSchema(OrderedClassifieds_schema,
                            folderish=True,
                            moveDiscussion=False)


class OrderedClassifieds(folder.ATFolder):
    """
        Container which can contain Categories and Classifieds (Ordered)
    """
    security = ClassSecurityInfo()
Beispiel #10
0
from Products.ATContentTypes.content.base import ATCTFolderMixin
from Products.ATContentTypes.content.base import registerATCT
from Products.ATContentTypes.content.schemata import ATContentTypeSchema
from Products.ATContentTypes.content.schemata import NextPreviousAwareSchema
from Products.ATContentTypes.content.schemata import finalizeATCTSchema
from Products.ATContentTypes.interfaces import IATBTreeFolder
from Products.ATContentTypes.interfaces import IATFolder
from Products.ATContentTypes.lib.constraintypes import ConstrainTypesMixinSchema
from Products.CMFCore.permissions import View
from plone.app.folder import packageName
from plone.app.folder.base import BaseBTreeFolder
from zope.interface import implementer


ATFolderSchema = ATContentTypeSchema.copy() + \
    ConstrainTypesMixinSchema.copy() + NextPreviousAwareSchema.copy()
finalizeATCTSchema(ATFolderSchema, folderish=True, moveDiscussion=False)


class IATUnifiedFolder(IATFolder):
    """ marker interface for the new, unified folders """


@implementer(IATUnifiedFolder, IATBTreeFolder)
class ATFolder(ATCTFolderMixin, BaseBTreeFolder):
    """ a folder suitable for holding a very large number of items """

    schema = ATFolderSchema
    security = ClassSecurityInfo()

    portal_type = 'Folder'
Beispiel #11
0
from Products.ATContentTypes.content import schemata
from Products.ATContentTypes.lib.constraintypes import ConstrainTypesMixinSchema
from Products.CMFCore.permissions import View

# -*- Message Factory Imported Here -*-
from .. import orgMessageFactory as _

from ..interfaces import IBase
from ..interfaces import IDepartment
from ..config import PROJECTNAME
from ..config import DEPARTMENTS_PORTLET_COLUMN
from ..portlets import departmentportlet
from base import BaseSchema
from numbers import NumbersMixin

DepartmentSchema = folder.ATFolderSchema.copy() + ConstrainTypesMixinSchema.copy() + BaseSchema.copy() + atapi.Schema((

    atapi.TextField('text',
              required=False,
              searchable=True,
              primary=True,
              storage = atapi.AnnotationStorage(),
              validators = ('isTidyHtmlWithCleanup',),
              default_output_type = 'text/x-html-safe',
              widget = atapi.RichWidget(
                        description='',
                        label=_(u'label_body_text', default=u'Body Text'),
                        rows=25,
                        allow_file_upload=zconf.ATDocument.allow_document_upload),
    ),