def updateMetadata(obj , form , context): # vocabs = getToolByName(context , 'portal_vocabularies') commonMetadatas = imMetadatas().commonMetadatas # if request.form['addorreplace'] == 'Replace metadatas' # we cleanup all the fields before to set new values if form['addorreplace'] == 'Replace metadatas': for k in commonMetadatas: # field = nbField(obj,k) stringFields = ['recording_date_time','photographer'] emptyString = '' emptyList = [] if k == 'description': obj.setDescription(emptyString) elif k in stringFields: obj.getField(k).set(obj, emptyString) else: obj.getField(k).set(obj, emptyList) for k in form.keys(): if k in commonMetadatas: if k == 'description': obj.setDescription(form[k]) # import pdb;pdb.set_trace() elif k in ['recording_date_time','photographer']: # we always replace non vocabulary values obj.getField(k).set(obj, form[k]) else: # field = nbField(obj,k) if form['addorreplace'] == 'Add metadatas': # form[k] = values to spread # obj[k] = metadatas values already set to obj lform = list(obj[k]) for data in eval(form[k]): if not data in lform: # import pdb;pdb.set_trace() lform.append(data) obj.getField(k).set(obj, lform) else: obj.getField(k).set(obj, eval(form[k])) obj.reindexObject() return
def updateMetadata(obj , form , context): vocabs = getToolByName(context , 'portal_vocabularies') commonMetadatas = imMetadatas().commonMetadatas # import pdb;pdb.set_trace() # print '------------------------' # print 'in updateMetadata...' # print obj.absolute_url() # if request.form['addorreplace'] == 'Replace metadatas' # we cleanup all the fields before to set new values if form['addorreplace'] == 'Replace metadatas': for k in commonMetadatas: field = nbField(obj,k) stringFields = ['recording_date_time','photographer'] emptyString = '' emptyList = [] # import pdb;pdb.set_trace() if k == 'description': obj.setDescription(emptyString) elif k in stringFields: if obj.portal_type == 'Image': #ImageImageRepositoryExtender(obj).fields[field].set(obj,emptyString) obj.getField(k).set(obj, emptyString) else: FolderImageRepositoryExtender(obj).fields[field].set(obj,emptyString) else: if obj.portal_type == 'Image': ImageImageRepositoryExtender(obj).fields[field].set(obj,emptyList) else: FolderImageRepositoryExtender(obj).fields[field].set(obj,emptyList) # for k in form.keys(): if k in commonMetadatas: if k == 'description': obj.setDescription(form[k]) # import pdb;pdb.set_trace() elif k in ['recording_date_time','photographer']: # we always replace non vocabulary values field = nbField(obj,k) if obj.portal_type == 'Image': ImageImageRepositoryExtender(obj).fields[field].set(obj,form[k]) else: FolderImageRepositoryExtender(obj).fields[field].set(obj,form[k]) # import pdb;pdb.set_trace() else: field = nbField(obj,k) if form['addorreplace'] == 'Add metadatas': # form[k] = values to spread # obj[k] = metadatas values already set to obj lform = list(obj[k]) for data in eval(form[k]): if not data in lform: # import pdb;pdb.set_trace() lform.append(data) if obj.portal_type == 'Image': ImageImageRepositoryExtender(obj).fields[field].set(obj,lform) else: FolderImageRepositoryExtender(obj).fields[field].set(obj,lform) else: if obj.portal_type == 'Image': ImageImageRepositoryExtender(obj).fields[field].set(obj,eval(form[k])) else: FolderImageRepositoryExtender(obj).fields[field].set(obj,eval(form[k])) # print '...' + k + ':' + form[k] + ':::' + str(obj[k]) # print '------------------------' obj.reindexObject() return