Ignore:
Timestamp:
May 7, 2010 3:55:50 PM (14 years ago)
Author:
mylan
Message:

Implemented references processing same to ReferenceField?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.referencedatagridfield/trunk/quintagroup/referencedatagridfield/_field.py

    r2266 r2274  
    3131        'helper_css': ('datagridwidget.css',), 
    3232        'helper_js': ('referencebrowser.js', 'datagridwidget.js',), 
     33        'force_close_on_insert': True, 
    3334        }) 
    3435 
     
    4142        'columns': ('title', 'link_uid'), 
    4243        'widget': ReferenceDataGridWidget, 
     44        'multiValued' : True, 
    4345        }) 
    4446 
     
    7274            value = value, 
    7375 
     76        uids = [] 
    7477        result = [] 
    7578        for row in value: 
     
    8083                data["title"] = title 
    8184 
    82             url = str(row.get('link_uid', "")).strip() 
    83             if url == '': 
     85            link_uid = str(row.get('link_uid', "")).strip() 
     86            if link_uid == '': 
    8487                continue 
    85             elif self.isRemoteURL(url): 
    86                 data["link_uid"] = urlparse.urlunparse(urlparse.urlparse(url)) 
     88            elif self.isRemoteURL(link_uid): 
     89                data["link_uid"] = urlparse.urlunparse(urlparse.urlparse(link_uid)) 
    8790            else: 
    88                 brains = catalog(UID=url) 
     91                brains = catalog(UID=link_uid) 
    8992                if len(brains) == 0: 
    9093                    continue 
    91                 else: 
    92                     data["link_uid"] = url 
    93                     if title == "": 
    94                         data["title"] = getattr(brains[0], "Title","") 
     94                # Found objects with pointed UID 
     95                uids.append(link_uid) 
     96                brain = brains[0] 
     97                data["link_uid"] = link_uid 
     98                # Get title 
     99                if title == "": 
     100                    data["title"] = getattr(brain, "Title", "") 
    95101            result.append(data) 
    96102 
    97103        DataGridField.set(self, instance, result, **kwargs) 
    98  
     104        ReferenceField.set(self, instance, uids, **kwargs) 
     105         
    99106    security.declarePrivate('get') 
    100107    def get(self, instance, **kwargs): 
     
    123130        return result 
    124131 
     132    def getRaw(self, instance, **kwargs): 
     133        """Return raw data DataGridField data.""" 
     134        return DataGridField.getRaw(self, instance, **kwargs) 
     135 
     136 
    125137registerWidget( 
    126138    ReferenceDataGridWidget, 
Note: See TracChangeset for help on using the changeset viewer.