Changeset 617


Ignore:
Timestamp:
08/09/06 17:43:57 (13 years ago)
Author:
vahur
Message:

re #627 spent 1h
created dictionary field. migration needs to be done

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/FieldsWidgets.py

    r613 r617  
    627627    description=('WYSIWYM multipart Field'), 
    628628) 
     629 
     630class DictField(LinesField): 
     631    """ dictionary field """ 
     632    _properties = LinesField._properties.copy() 
     633    _properties.update({ 
     634        'widget' : StringField, 
     635    }) 
     636 
     637    security = ClassSecurityInfo() 
     638    def setValue(self, instance, key, value): 
     639        i = aq_base(instance) 
     640        if not shasattr(i, '_ivalues'): 
     641            i._ivalues = PersistentMapping() 
     642            i._p_changed = 1 
     643        i._ivalues[key] = value 
     644        i._ivalues._p_changed = 1 
     645        i._p_changed = 1 
     646 
     647    def getValue(self, instance, key): 
     648        i = aq_base(instance) 
     649        if not shasattr(i, '_ivalues'): 
     650            i._ivalues = PersistentMapping() 
     651            i._p_changed = 1 
     652            return "" 
     653        if not i._ivalues.has_key(key): 
     654            return "" 
     655        return i._ivalues[key] 
     656 
  • trunk/PresentationMaterial.py

    r601 r617  
    2222 
    2323from config import PROJECTNAME, MODIFY_CONTENT, VIEW 
    24 from FieldsWidgets import WYSIWYMWidget, WYSIWYMField, ImageSelectorWidget, TagsField, TagsWidget 
     24from FieldsWidgets import WYSIWYMWidget, WYSIWYMField, ImageSelectorWidget, TagsField, TagsWidget, DictField 
    2525from SharedMetadata import coverImage, audioFile, lemill_metadata_mods, no_description, language_schema, license_schema, author_schema, tags, target_group_schema, group_sharing, deletionReason, parentVersion, translation_schema 
    2626from Material import Material 
     
    5555))  
    5656 
    57 schema = BaseSchema + tags + bodyText + audioFile + refsToImages + coverImage + lemill_metadata_mods + no_description + language_schema + license_schema + author_schema + target_group_schema + group_sharing + deletionReason + parentVersion  
     57slide_captions = Schema(( 
     58    DictField('slide_captions', 
     59        accessor = 'getSlideCaptions', 
     60        mutator = 'setSlideCaptions', 
     61        widget = StringWidget( 
     62            visible = {'view':'invisibe', 'edit': 'invisible'}, 
     63        ), 
     64    ), 
     65)) 
     66 
     67schema = BaseSchema + tags + bodyText + audioFile + refsToImages + coverImage + lemill_metadata_mods + no_description + language_schema + license_schema + author_schema + target_group_schema + group_sharing + deletionReason + parentVersion + slide_captions 
    5868 
    5969schema.moveField('rights', pos='bottom') 
     
    127137                uid = new_piece.UID() 
    128138                new_piece.edit(description=pcaption, image=pfile, file=pfile, language='') 
     139                sc = self.getField('slide_captions') 
     140                sc.setValue(self, uid, pcaption) 
    129141            if uid and str(uid) != '0': 
    130142                obj = ref_tool.lookupObject(uid) 
    131                 obj.edit(description=pcaption) 
     143                #obj.edit(description=pcaption) 
     144                sc = self.getField('slide_captions') 
     145                sc.setValue(self, uid, pcaption) 
    132146                self.addRefToSlides(uid) 
    133      
     147 
     148    def getSlideCaptionFor(self, piece): 
     149        """ get slide caption for piece """ 
     150        if piece == 0: 
     151            return "" 
     152        sc = self.getField('slide_captions') 
     153        return sc.getValue(self, piece.UID()) 
     154 
    134155registerType(PresentationMaterial, PROJECTNAME) 
  • trunk/skins/lemill/widget_imageselector.pt

    r524 r617  
    2121                    tal:attributes="src string:${slide/getId}/image_large" /> 
    2222                </div> 
    23                 <div tal:content="slide/getDescription"></div> 
     23                <div tal:content="python:context.getSlideCaptionFor(slide)"></div> 
    2424                <div class="visualClear" style="height:40px">&nbsp;</div> 
    2525            </tal:slides> 
     
    4646                            slide_id slide/getId | python:0; 
    4747                            slide_uid slide/UID | python:0; 
    48                             slide_desc slide/getDescription | string:"> 
     48                            slide_desc python:context.getSlideCaptionFor(slide)"> 
    4949                <div id="slideCounterDiv"> 
    5050                    <span i18n:translate="label_slide">Slide</span> 
Note: See TracChangeset for help on using the changeset viewer.