Mercurial > hg > MetaDataProvider
annotate MetaDataFolder.py @ 6:00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
author | casties |
---|---|
date | Wed, 27 Jul 2011 21:08:01 +0200 |
parents | c1dbf78cc036 |
children | 4cd862bf37a3 |
rev | line source |
---|---|
4 | 1 from OFS.Folder import Folder |
2 from Products.PageTemplates.PageTemplateFile import PageTemplateFile | |
3 from Globals import package_home | |
4 from AccessControl import ClassSecurityInfo | |
5 import os.path | |
6 import logging | |
7 | |
8 from MetaDataMapping import MetaDataMapping | |
9 from MetaData import MetaData | |
10 | |
11 def normalizeBibField(bt, underscore=True): | |
12 """returns normalised bib type for looking up mappings""" | |
13 bt = bt.strip().replace(' ', '-').lower() | |
14 if underscore: | |
15 bt = bt.replace('_', '-') | |
16 | |
17 return bt | |
18 | |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
19 def OLDgetBibdataFromDom(dom): |
4 | 20 """returns dict with all elements from bib-tag""" |
21 bibinfo = {} | |
22 bib = dom.find(".//meta/bib") | |
23 if bib is not None: | |
24 # put type in @type | |
25 type = bib.get('type') | |
26 bibinfo['@type'] = normalizeBibField(type) | |
27 # put all subelements in dict | |
28 for e in bib: | |
29 bibinfo[normalizeBibField(e.tag)] = getText(e) | |
30 | |
31 return bibinfo | |
32 | |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
33 def toString(list): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
34 ret=u"" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
35 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
36 for l in list: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
37 ret+=unicode(l) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
38 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
39 return ret |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
40 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
41 def dcMetaDataToHash(mdSet): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
42 """Convenience Function for creates a hash from the DCMetadataset |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
43 @param mdSet: String containing DCMetadata informmation |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
44 currently only in the format getDCMetadata of this module""" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
45 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
46 NSS = { |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
47 'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
48 'dc': 'http://dublincore.org/documents/dcmi-namespace/', |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
49 'owl':"http://www.w3.org/2002/07/owl#", |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
50 'rdfs':"http://www.w3.org/2000/01/rdf-schema#" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
51 } |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
52 ret={} |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
53 import StringIO |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
54 import sys |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
55 buffer= StringIO.StringIO(mdSet) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
56 try: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
57 md = amara.parse(buffer,prefixes=NSS) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
58 except: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
59 logging.error("Error: %s (%s)"%(sys.exc_info()[0],sys.exc_info()[1])) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
60 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
61 ret["error"]=mdSet |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
62 return ret |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
63 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
64 ret["title"] = toString(md.xml_xpath("//dc:title/text()")) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
65 ret["creator"] =toString(md.xml_xpath("//dc:creator/text()")) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
66 ret["date"] = toString(md.xml_xpath("//dc:date/text()")) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
67 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
68 return ret |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
69 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
70 |
4 | 71 class MetaDataFolder(Folder): |
72 """provides methods for managing complete metadata structures""" | |
73 meta_type='MetaDataFolder' | |
74 security=ClassSecurityInfo() | |
75 manage_options = Folder.manage_options+( | |
5 | 76 {'label':'Main Config','action':'changeMetaDataFolderForm'}, |
4 | 77 ) |
78 | |
5 | 79 def __init__(self,id,title='',metaDataServerUrl=''): |
4 | 80 """initialize a new instance""" |
81 self.id = id | |
82 self.title = title | |
5 | 83 self.metaDataServerUrl = metaDataServerUrl |
4 | 84 |
85 | |
86 def getMDFromPathOrUrl(self,path): | |
87 parsedurl = urlparse.urlparse(path) | |
88 if parsedurl[0] != "": | |
89 # has schema (e.g. http) | |
90 url=path | |
91 else: | |
92 # path only | |
93 if path.endswith("index.meta"): | |
94 url =self.metaDataServerUrl%path | |
95 else: | |
96 url=os.path.join(self.metaDataServerUrl%path,'index.meta') | |
97 | |
98 #logging.debug("get Metadata: %s"%url) | |
99 md = getHttpData(url) | |
100 return md | |
101 | |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
102 def getBibdataFromDom(self, dom): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
103 """returns contents of bib tag as dict""" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
104 return self.resource.meta.bib.getDataFromDom(dom) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
105 |
4 | 106 def getBibMapping(self, bibtype): |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
107 """returns MetaDataMapping for resource/meta/bib of bibtype""" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
108 return self.resource.meta.bib.getMapping(bibtype) |
4 | 109 |
110 def getBibFields(self, bibdata): | |
111 """returns dict with metadata description for bibdata""" | |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
112 return self.resource.meta.bib.getMapFields(bibdata) |
4 | 113 |
114 def getBibMappedData(self, bibdata, allFields=False): | |
115 """returns dict with metadata descriptions and data for bibdata""" | |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
116 return self.resource.meta.bib.getMappedData(bibdata, allFields=allFields) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
117 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
118 def getDCMappedData(self, bibdata): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
119 """returns dict with DC keys and data from bibdata""" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
120 return self.resource.meta.bib.getDCMappedData(bibdata) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
121 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
122 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
123 def getBibFormattedMetaData(self, path=None, dom=None, bibdata=None): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
124 """get the metadafrom server""" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
125 logging.debug("getBibFormattedMetaData(path=%s)"%path) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
126 return self.resource.meta.bib.getFormatted('metadata_template', path=path, dom=dom, data=bibdata) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
127 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
128 def getBibFormattedMetaDataExtended(self,path=None, dom=None, bibdata=None): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
129 """get the metadafrom server""" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
130 logging.debug("getBibFormattedMetaDataExtended(path=%s)"%path) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
131 return self.resource.meta.bib.getFormatted('metadata_extended_template', path=path, dom=dom, data=bibdata, allFields=True) |
4 | 132 |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
133 def getBibFormattedLabel(self,path=None, dom=None, bibdata=None): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
134 """get the metadafrom server""" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
135 logging.debug("getBibFormattedLabel(%s)"%path) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
136 return self.resource.meta.bib.getFormatted('label_template', path=path, dom=dom, data=bibdata) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
137 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
138 getFormattedMetaData = getBibFormattedMetaData |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
139 getFormattedMetaDataShort = getBibFormattedMetaData |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
140 getFormattedMetaDataExtended = getBibFormattedMetaDataExtended |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
141 getFormattedLabel = getBibFormattedLabel |
4 | 142 |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
143 def getDCFormatted(self,path): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
144 """get the metadata as dc set""" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
145 logging.debug("getDCFormatted(path=%s)"%path) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
146 namespace={ 'mpiwg': "http://www.mpiwg-berlin.mpg.de/ns/mpiwg"} |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
147 namespaceUsed=False |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
148 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
149 md = self.getMDFromPathOrUrl(path) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
150 logging.debug("MD in XML"+md) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
151 im = amara.parse(md, prefixes=namespace) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
152 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
153 typePaths=im.xml_xpath('//bib/@type') |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
154 archimedes=False |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
155 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
156 if len(typePaths)<1: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
157 typePaths=im.xml_xpath('//meta/archimedes') # sinderfall fuer veraltete index.meta files vom typ archimedes |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
158 if len(typePaths)>0: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
159 type = "archimedes" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
160 archimedes=True |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
161 else: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
162 typePaths=im.xml_xpath('//mpiwg:bib/@type') |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
163 if len(typePaths)<1: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
164 return "" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
165 else: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
166 namespaceUsed=True |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
167 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
168 type=unicode(typePaths[0]) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
169 else: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
170 type=unicode(typePaths[0]) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
171 logging.info("got type:"+type) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
172 try: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
173 mapping=getattr(self.main.meta.bib,type.lower(),None) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
174 except: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
175 logging.error("getMetaDataFromServer no mapping for type: %s"%type) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
176 return "" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
177 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
178 try: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
179 dcMapping=getattr(self.main.meta.bib,"dc",None) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
180 except: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
181 logging.error("getMetaDataFromServer no dc in meta/bib") |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
182 return "" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
183 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
184 mds=mapping.generateMappingHash() # Hole das Mapping generisches Feld --> Feld im entsprechenden Typ |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
185 dcMds=dcMapping.generateMappingHash() |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
186 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
187 mdHash=[] |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
188 logging.debug("Value: %s"%repr(mds)) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
189 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
190 for key,valueTriple in mds.items(): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
191 value=valueTriple[0] |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
192 logging.debug("Value: %s"%repr(value)) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
193 logging.debug("Key: %s"%repr(key)) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
194 if value!="": |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
195 if not archimedes: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
196 if namespaceUsed: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
197 try: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
198 v = im.xml_xpath('//mpiwg:bib/mpiwg:%s/text()'%value) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
199 except: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
200 logging.error('cannot do: //mpiwg:bib/mpiwg:%s/text()'%value) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
201 else: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
202 v = im.xml_xpath('//bib/%s/text()'%value) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
203 else: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
204 v = im.xml_xpath('//archimedes/%s/text()'%value) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
205 if len(v) > 0: |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
206 dc=dcMds[key][0] |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
207 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
208 if (dc !="") and (value !=""): |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
209 logging.debug("%s--> : %s"%(repr(value),dc)) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
210 mdHash.append([dc,unicode(v[0])]) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
211 |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
212 ret="""<bib xmlns:dc="http://dublincore.org/documents/dcmi-namespace/"> """ |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
213 ret+="<dc:type>%s</dc:type>"%type |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
214 for md in mdHash: |
4 | 215 |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
216 ret+="""<dc:%s>%s</dc:%s>"""%(md[0],xml.sax.saxutils.escape(md[1]),md[0]) |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
217 ret+="</bib>" |
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
218 return ret |
4 | 219 |
220 | |
221 changeMetaDataFolderForm = PageTemplateFile('zpt/changeMetaDataFolder',globals()) | |
222 | |
223 security.declarePublic('changeMetaDataFolder') | |
224 def changeMetaDataFolder(self,title,metaDataServerUrl,RESPONSE=None): | |
225 """Change MetaDataFolder""" | |
226 self.title = title | |
227 self.metaDataServerUrl=metaDataServerUrl | |
228 if RESPONSE is not None: | |
229 RESPONSE.redirect('manage_main') | |
230 | |
231 | |
6
00147a1ab4ac
division between MetaDataFolder and Metadata looks good now (to me :-)
casties
parents:
5
diff
changeset
|
232 manage_addMetaDataFolderForm = PageTemplateFile('zpt/addMetadataFolderForm',globals()) |
4 | 233 |
234 def manage_addMetaDataFolder(self,id,title,RESPONSE=None): | |
235 """a MetaDataFolder objekt""" | |
236 newObj=MetaDataFolder(id,title) | |
237 self.Destination()._setObject(id,newObj) | |
238 if RESPONSE is not None: | |
239 RESPONSE.redirect('manage_main') | |
240 |