def test_checkinObjectLinkedInParentsRichTextField(self): """Checnking-in an object that is linked in it's parent's rich text field. See: https://dev.plone.org/ticket/13462 """ # register a folderish content type with a rich text field from plone.app.folder.folder import ATFolder, ATFolderSchema from Products.ATContentTypes.content.base import registerATCT from Products.Archetypes import atapi rich_text_folder_type = type('RichFolder', (ATFolder,), {}) rich_text_folder_type.schema = ATFolderSchema.copy() + atapi.Schema(( atapi.TextField('text', default_output_type = 'text/x-html-safe', widget = atapi.RichWidget(), ), ), ) registerATCT(rich_text_folder_type, 'plone.app.iterate') # create a folderish object with a rich text field self.portal.invokeFactory('Folder', 'rich_text_folder') rich_text_folder = self.portal.rich_text_folder # create the subobject rich_text_folder.invokeFactory('Document', 'subobject') subobject = rich_text_folder.subobject subobject_uid = subobject.UID() # link (by uid) the subobject in it's parent's rich text field link_html = '<a class="internal-link" href="resolveuid/%s">Link to subobject</a>' rich_text_folder.setText(link_html % subobject_uid) # try to checkout and checkin the subobject wc = ICheckinCheckoutPolicy(subobject).checkout(rich_text_folder) ICheckinCheckoutPolicy(wc).checkin("updated") # everything went right and the working copy is checked in self.assertEqual(subobject_uid, wc.UID())
'columns': ['Title', 'Description']}, ] def before_render(self): """Before template render hook """ super(DrugProhibitionsView, self).before_render() # Don't allow any context actions on Drug Prohibitions folder self.request.set("disable_border", 1) def folderitems(self): items = BikaListingView.folderitems(self) for x in range(len(items)): if not items[x].has_key('obj'): continue obj = items[x]['obj'] items[x]['Description'] = obj.Description() items[x]['replace']['Title'] = "<a href='%s'>%s</a>" % \ (items[x]['url'], items[x]['Title']) return items schema = ATFolderSchema.copy() class DrugProhibitions(ATFolder): implements(IDrugProhibitions) displayContentsTab = False schema = schema schemata.finalizeATCTSchema(schema, folderish = True, moveDiscussion = False) atapi.registerType(DrugProhibitions, PROJECTNAME)
# -*- coding: utf-8 -*- from plone.app.folder.folder import ATFolder, ATFolderSchema from Products.ATContentTypes.content.base import registerATCT from Products.Archetypes import atapi RichFolderSchema = ATFolderSchema.copy() + atapi.Schema(( atapi.TextField('text', default_output_type='text/x-html-safe', widget=atapi.RichWidget(), ), )) class RichFolder(ATFolder): """ sample content type for testing purposes """ schema = RichFolderSchema portal_type = 'RichFolder' registerATCT(RichFolder, 'plone.app.iterate') def addRichFolder(container, id, **kwargs): """ at-constructor copied from ClassGen.py """ obj = RichFolder(id) container._setObject(id, obj, suppress_events=True) obj = container._getOb(id) obj.manage_afterAdd(obj, container) obj.initializeArchetype(**kwargs) return obj.getId()
'Description', 'Gender']}, {'id':'all', 'title': _('All'), 'contentFilter':{}, 'columns': ['Title', 'Description', 'Gender']}, ] def folderitems(self): items=BikaListingView.folderitems(self) for x in range(len(items)): if not items[x].has_key('obj'): continue obj=items[x]['obj'] items[x]['Description']=obj.Description() items[x]['Gender']=GENDERS_APPLY.getValue(obj.getGender()) items[x]['replace']['Title']="<a href='%s'>%s</a>"%\ (items[x]['url'],items[x]['Title']) return items schema=ATFolderSchema.copy() class Symptoms(ATFolder): implements(ISymptoms) displayContentsTab=False schema=schema schemata.finalizeATCTSchema(schema,folderish=True,moveDiscussion=False) atapi.registerType(Symptoms,PROJECTNAME)
from Products.DataGridField.DataGridField import FixedRow from Products.DataGridField.FixedColumn import FixedColumn from Products.DataGridField.SelectColumn import SelectColumn from rg.prenotazioni import prenotazioniMessageFactory as _ from rg.prenotazioni.config import PROJECTNAME from rg.prenotazioni.interfaces import IPrenotazioniFolder from zope.interface import implements try: from plone.app.folder.folder import ATFolder as BaseFolder from plone.app.folder.folder import ATFolderSchema as BaseFolderSchema except ImportError: from Products.ATContentTypes.content.folder import ATBTreeFolder as BaseFolder from Products.ATContentTypes.content.folder import ATBTreeFolderSchema as BaseFolderSchema PrenotazioniFolderSchema = BaseFolderSchema.copy() + atapi.Schema(( # -*- Your Archetypes field definitions here ... -*- atapi.TextField( 'descriptionAgenda', required=False, searchable=True, storage=atapi.AnnotationStorage(migrate=True), validators=('isTidyHtmlWithCleanup', ), default_output_type='text/x-html-safe', widget=atapi.RichWidget( description=("Inserire il testo di presentazione " "dell'agenda corrente"), label=_(u'Descrizione Agenda', default=u''), rows=10, allow_file_upload=zconf.ATDocument.allow_document_upload),
# -*- coding: utf-8 -*- from plone.app.folder.folder import ATFolder, ATFolderSchema from Products.ATContentTypes.content.base import registerATCT from Products.Archetypes import atapi RichFolderSchema = ATFolderSchema.copy() + atapi.Schema((atapi.TextField( 'text', default_output_type='text/x-html-safe', widget=atapi.RichWidget(), ), )) class RichFolder(ATFolder): """ sample content type for testing purposes """ schema = RichFolderSchema portal_type = 'RichFolder' registerATCT(RichFolder, 'plone.app.iterate') def addRichFolder(container, id, **kwargs): """ at-constructor copied from ClassGen.py """ obj = RichFolder(id) container._setObject(id, obj, suppress_events=True) obj = container._getOb(id) obj.manage_afterAdd(obj, container) obj.initializeArchetype(**kwargs) return obj.getId()
# -*- coding: utf-8 -*- from zope.interface import implements from plone.app.folder.folder import ATFolder, ATFolderSchema from Products.Archetypes import atapi from Products.ATContentTypes.content import schemata from mpdg.govbr.observatorio.content.interfaces import IComentario from mpdg.govbr.observatorio.config import PROJECTNAME from mpdg.govbr.observatorio import MessageFactory as _ from DateTime.DateTime import DateTime ComentarioSchema = ATFolderSchema.copy() + atapi.Schema( (atapi.StringField( name='nome', required=True, widget=atapi.StringWidget(label=_(u"Nome"), description=_(u"")), ), atapi.StringField( name='email', required=True, widget=atapi.StringWidget(label=_(u"E-mail"), description=_(u"")), ), atapi.TextField( name='comentario', required=False, searchable=True, storage=atapi.AnnotationStorage(migrate=True), widget=atapi.TextAreaWidget( label=_(u"Comentário"), description=_(u""), rows=5, ),
# -*- coding: utf-8 -*- from mpdg.govbr.faleconosco import MessageFactory as _ from mpdg.govbr.faleconosco.config import PROJECTNAME from mpdg.govbr.faleconosco.interfaces import IFaleConosco from plone.app.folder.folder import ATFolder from plone.app.folder.folder import ATFolderSchema from Products.Archetypes import atapi from Products.ATContentTypes.content import schemata from zope.interface import implements FaleConoscoSchema = ATFolderSchema.copy() + atapi.Schema(( atapi.StringField( name='nome', required=True, widget=atapi.StringWidget(label=_(u'Nome'), description=_(u'')), ), atapi.StringField( name='assunto', required=True, widget=atapi.StringWidget(label=_(u'Assunto'), description=_(u'')), ), atapi.StringField( name='email', required=True, widget=atapi.StringWidget(label=_(u'E-mail'), description=_(u'')), ), atapi.StringField( name='responsavel', required=False, searchable=True, widget=atapi.StringWidget(label=_(u'Responsavel'), description=_(u'')),