Changeset 1468 in products


Ignore:
Timestamp:
Dec 23, 2009 3:50:52 PM (14 years ago)
Author:
liebster
Message:

Fixed bugs in the adding Property

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/views.py

    r1466 r1468  
     1from sets import Set 
    12from Acquisition import aq_inner 
    23from zope.component import queryAdapter 
     
    149150        context = aq_inner(self.context) 
    150151 
    151         keywords = [] 
     152        keywords = Set([]) 
    152153        if context.hasProperty(prop_name): 
    153             keywords = context.getProperty(prop_name) 
     154            keywords = Set(context.getProperty(prop_name)) 
    154155 
    155156        pprops = getToolByName(context, 'portal_properties') 
    156157        sheet = getattr(pprops, 'seo_properties', None) 
    157158        if sheet and sheet.hasProperty(add_keywords): 
    158             keywords += sheet.getProperty(add_keywords) 
     159            keywords = keywords | Set(sheet.getProperty(add_keywords)) 
    159160 
    160161        if keywords: 
     
    340341        context = aq_inner(self.context) 
    341342        state = '' 
    342         delete_list, overrides, values = [], [], [] 
     343        delete_list, seo_overrides_keys, seo_keys = [], [], [] 
    343344        seo_items = dict([(k[len(SEO_PREFIX):],v) for k,v in kw.items() if k.startswith(SEO_PREFIX)]) 
    344345        for key in seo_items.keys(): 
    345346            if key.endswith(SUFFIX): 
    346                 overrides.append(key[:-len(SUFFIX)]) 
     347                seo_overrides_keys.append(key[:-len(SUFFIX)]) 
    347348            else: 
    348                 values.append(key) 
    349         for val in values: 
    350             if val in overrides and seo_items.get(val+SUFFIX): 
    351                 state = self.setProperty(PROP_PREFIX+val, seo_items[val]) 
    352                 if state: 
    353                     return state 
    354             elif context.hasProperty(PROP_PREFIX+val): 
    355                 delete_list.append(PROP_PREFIX+val) 
     349                seo_keys.append(key) 
     350        for seo_key in seo_keys: 
     351            if seo_key == 'custommetatags': 
     352                self.manageSEOCustomMetaTagsProperties(**kw) 
     353            else: 
     354                if seo_key in seo_overrides_keys and seo_items.get(seo_key+SUFFIX): 
     355                    seo_value = seo_items[seo_key] 
     356                    t_value = 'string' 
     357                    if type(seo_value)==type([]) or type(seo_value)==type(()): t_value = 'lines' 
     358                    state = self.setProperty(PROP_PREFIX+seo_key, seo_value, type=t_value) 
     359                    if state: 
     360                        return state 
     361                elif context.hasProperty(PROP_PREFIX+seo_key): 
     362                    delete_list.append(PROP_PREFIX+seo_key) 
    356363        if delete_list: 
    357364            context.manage_delProperties(delete_list) 
    358         self.manageSEOCustomMetaTagsProperties(**kw) 
    359365        return state 
    360366 
Note: See TracChangeset for help on using the changeset viewer.