Ignore:
Timestamp:
Feb 24, 2010 9:11:32 PM (14 years ago)
Author:
liebster
Message:

#157: Replace Text fields into List for ISEOConfigletSchema, fix widget, adapter

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/browser/seo_configlet.py

    r1788 r1822  
     1import re 
    12from zope.interface import Interface 
    23from zope.interface import implements 
     
    45from zope.schema.vocabulary import SimpleTerm 
    56from zope.schema.vocabulary import SimpleVocabulary 
    6 from zope.schema import Bool, Text, Choice, Tuple 
     7from zope.schema import Bool, Text, Choice, Tuple, List 
    78from zope.app.form.browser import RadioWidget 
    89 
     
    5859        required=False) 
    5960 
    60     default_custom_metatags = Text( 
     61    default_custom_metatags = List( 
    6162        title=_("label_default_custom_metatags", default='Default custom metatags.'), 
    6263        description=_("help_default_custom_metatags", 
     
    6667        required=False) 
    6768 
    68     metatags_order = Text( 
     69    metatags_order = List( 
    6970        title=_("label_metatags_order", 
    7071                default='Meta tags order in the page.'), 
     
    7576        required=False) 
    7677 
    77     additional_keywords = Text( 
     78    additional_keywords = List( 
    7879        title=_("label_additional_keywords", 
    7980                default='Additional keywords that should be added to the ' 
     
    136137        return self.siteprops._updateProperty('exposeDCMetaTags', bool(value)) 
    137138 
    138     def getDefaultCustomMetatags(self): 
    139         return '\n'.join(self.context.getProperty('default_custom_metatags')) 
    140      
    141     def setDefaultCustomMetatags(self, value): 
    142         value = value and value.strip().split('\n') or [] 
    143         self.context._updateProperty('default_custom_metatags', value) 
    144  
    145     def getMetatagsOrder(self): 
    146         return '\n'.join(self.context.getProperty('metatags_order')) 
    147      
    148     def setMetatagsOrder(self, value): 
    149         value = value and value.strip().split('\n') or [] 
    150         self.context._updateProperty('metatags_order', value) 
    151  
    152     def getAdditionalKeywords(self): 
    153         return '\n'.join(self.context.getProperty('additional_keywords')) 
    154      
    155     def setAdditionalKeywords(self, value): 
    156         value = value and value.strip().split('\n') or [] 
    157         self.context._updateProperty('additional_keywords', value) 
    158  
    159139    def getTypesSEOEnabled(self): 
    160140        ct_with_seo = self.context.content_types_with_seoproperties 
     
    167147 
    168148    exposeDCMetaTags = property(getExposeDC, setExposeDC) 
    169     metatags_order = property(getMetatagsOrder, setMetatagsOrder) 
    170     default_custom_metatags = property(getDefaultCustomMetatags, setDefaultCustomMetatags) 
    171     additional_keywords = property(getAdditionalKeywords, setAdditionalKeywords) 
    172149    types_seo_enabled = property(getTypesSEOEnabled, setTypesSEOEnabled) 
    173  
     150    metatags_order = ProxyFieldProperty(ISEOConfigletSchema['metatags_order']) 
     151    default_custom_metatags = ProxyFieldProperty(ISEOConfigletSchema['default_custom_metatags']) 
     152    additional_keywords = ProxyFieldProperty(ISEOConfigletSchema['additional_keywords']) 
     153     
    174154    settings_use_keywords_sg = ProxyFieldProperty(ISEOConfigletSchema['settings_use_keywords_sg']) 
    175155    settings_use_keywords_lg = ProxyFieldProperty(ISEOConfigletSchema['settings_use_keywords_lg']) 
     
    178158class SmallTextAreaWidget(TextAreaWidget): 
    179159    height = 5 
     160    splitter = re.compile(u'\\r?\\n', re.S|re.U) 
     161 
     162    def _toFieldValue(self, value): 
     163        return filter(None, self.splitter.split(value)) 
     164 
     165    def _toFormValue(self, value): 
     166        return u'\r\n'.join(list(value)) 
    180167 
    181168 
     
    185172    form_fields['default_custom_metatags'].custom_widget = SmallTextAreaWidget 
    186173    form_fields['additional_keywords'].custom_widget = SmallTextAreaWidget 
     174    form_fields['metatags_order'].custom_widget = SmallTextAreaWidget 
    187175    form_fields['settings_use_keywords_sg'].custom_widget = SEORadioWidget 
    188176    form_fields['settings_use_keywords_lg'].custom_widget = SEORadioWidget 
Note: See TracChangeset for help on using the changeset viewer.