annotate zopePubmanConnector.py @ 6:49abb91d6c6a

getPreprints gibt nun hash mit metadate zurueck
author dwinter
date Fri, 03 May 2013 14:26:13 +0200
parents 245294b18a1d
children 06befe15f66f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
373e6610e290 initial
dwinter
parents:
diff changeset
1 # -*- coding: utf-8 -*-
373e6610e290 initial
dwinter
parents:
diff changeset
2
373e6610e290 initial
dwinter
parents:
diff changeset
3 #Verbindet Zope mit pubman.
373e6610e290 initial
dwinter
parents:
diff changeset
4
373e6610e290 initial
dwinter
parents:
diff changeset
5
373e6610e290 initial
dwinter
parents:
diff changeset
6 from OFS.SimpleItem import SimpleItem
373e6610e290 initial
dwinter
parents:
diff changeset
7 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
373e6610e290 initial
dwinter
parents:
diff changeset
8 import os.path
373e6610e290 initial
dwinter
parents:
diff changeset
9
373e6610e290 initial
dwinter
parents:
diff changeset
10 from Globals import package_home
373e6610e290 initial
dwinter
parents:
diff changeset
11 import httplib2
373e6610e290 initial
dwinter
parents:
diff changeset
12 import urlparse
373e6610e290 initial
dwinter
parents:
diff changeset
13 import urllib
373e6610e290 initial
dwinter
parents:
diff changeset
14 import re
373e6610e290 initial
dwinter
parents:
diff changeset
15 import xml.etree.ElementTree as ET
373e6610e290 initial
dwinter
parents:
diff changeset
16 import json
1
c6478f155400 id eingebaut
dwinter
parents: 0
diff changeset
17 import logging
0
373e6610e290 initial
dwinter
parents:
diff changeset
18
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
19
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
20 cacheFolder ="/var/tmp/.cacheWWW"
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
21
0
373e6610e290 initial
dwinter
parents:
diff changeset
22 def zptFile(self, path, orphaned=False):
373e6610e290 initial
dwinter
parents:
diff changeset
23 """returns a page template file from the product"""
373e6610e290 initial
dwinter
parents:
diff changeset
24 if orphaned:
373e6610e290 initial
dwinter
parents:
diff changeset
25 # unusual case
373e6610e290 initial
dwinter
parents:
diff changeset
26 pt=PageTemplateFile(os.path.join(package_home(globals()), path))
373e6610e290 initial
dwinter
parents:
diff changeset
27 else:
373e6610e290 initial
dwinter
parents:
diff changeset
28
373e6610e290 initial
dwinter
parents:
diff changeset
29 pt=PageTemplateFile(os.path.join(package_home(globals()), path)).__of__(self)
373e6610e290 initial
dwinter
parents:
diff changeset
30 return pt
373e6610e290 initial
dwinter
parents:
diff changeset
31
373e6610e290 initial
dwinter
parents:
diff changeset
32 class ZopePubmanConnector(SimpleItem):
373e6610e290 initial
dwinter
parents:
diff changeset
33
373e6610e290 initial
dwinter
parents:
diff changeset
34
373e6610e290 initial
dwinter
parents:
diff changeset
35 connectorString="http://pubman.mpiwg-berlin.mpg.de/search/SearchAndExport?"
373e6610e290 initial
dwinter
parents:
diff changeset
36
373e6610e290 initial
dwinter
parents:
diff changeset
37
373e6610e290 initial
dwinter
parents:
diff changeset
38 meta_type="ZopePubmanConnector"
373e6610e290 initial
dwinter
parents:
diff changeset
39
373e6610e290 initial
dwinter
parents:
diff changeset
40 manage_options= ({'label':'Main Config','action': 'changeMain'},) + SimpleItem.manage_options
373e6610e290 initial
dwinter
parents:
diff changeset
41
373e6610e290 initial
dwinter
parents:
diff changeset
42 def __init__(self,id,title,pubmanURL):
373e6610e290 initial
dwinter
parents:
diff changeset
43 self.id=id
373e6610e290 initial
dwinter
parents:
diff changeset
44 self.title=title
373e6610e290 initial
dwinter
parents:
diff changeset
45 self.pubmanURL=pubmanURL #URL einer pubman instance bzw. einer collection, falls nicht die default collection benutzt werden soll
373e6610e290 initial
dwinter
parents:
diff changeset
46
373e6610e290 initial
dwinter
parents:
diff changeset
47
373e6610e290 initial
dwinter
parents:
diff changeset
48
373e6610e290 initial
dwinter
parents:
diff changeset
49 def changeMain(self,pubmanURL=None,title=None,REQUEST=None,RESPONSE=None):
373e6610e290 initial
dwinter
parents:
diff changeset
50 """change main settings"""
373e6610e290 initial
dwinter
parents:
diff changeset
51 if pubmanURL:
373e6610e290 initial
dwinter
parents:
diff changeset
52 self.pubmanURL=pubmanURL
373e6610e290 initial
dwinter
parents:
diff changeset
53 self.title=title
373e6610e290 initial
dwinter
parents:
diff changeset
54
373e6610e290 initial
dwinter
parents:
diff changeset
55 if RESPONSE is not None:
373e6610e290 initial
dwinter
parents:
diff changeset
56 RESPONSE.redirect('manage_main')
373e6610e290 initial
dwinter
parents:
diff changeset
57
373e6610e290 initial
dwinter
parents:
diff changeset
58
373e6610e290 initial
dwinter
parents:
diff changeset
59 else:
373e6610e290 initial
dwinter
parents:
diff changeset
60 pt=zptFile(self, 'zpt/ChangeZopePubmanConnector.zpt')
373e6610e290 initial
dwinter
parents:
diff changeset
61 return pt()
373e6610e290 initial
dwinter
parents:
diff changeset
62
373e6610e290 initial
dwinter
parents:
diff changeset
63
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
64 def getPublications(self,personID,limit=None,publicationType=None):
0
373e6610e290 initial
dwinter
parents:
diff changeset
65 """get all publications der personID"""
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
66 h = httplib2.Http(cacheFolder)
1
c6478f155400 id eingebaut
dwinter
parents: 0
diff changeset
67
c6478f155400 id eingebaut
dwinter
parents: 0
diff changeset
68
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
69
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
70 if publicationType is None:
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
71 cn = self.connectorString+"cqlQuery=escidoc.any-identifier=%22"+personID+"%22&"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
72 else:
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
73 cn = self.connectorString+"cqlQuery=escidoc.any-identifier=%22"+personID+"%22"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
74 cn +="%20and%20escidoc.publication.type=%22"+publicationType+"%22&"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
75
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
76 cn +="exportFormat=APA&outputFormat=snippet&language=all&sortKeys=escidoc.any-dates&sortOrder=descending"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
77 if limit:
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
78 cn+="&maximumRecords=%s"%limit
1
c6478f155400 id eingebaut
dwinter
parents: 0
diff changeset
79
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
80 logging.debug(cn)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
81 resp, content = h.request(cn)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
82
3
602b6e46b176 error handling bei falscher suche
dwinter
parents: 2
diff changeset
83
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
84
0
373e6610e290 initial
dwinter
parents:
diff changeset
85 ET.register_namespace("dcterms", "http://purl.org/dc/terms/")
373e6610e290 initial
dwinter
parents:
diff changeset
86
373e6610e290 initial
dwinter
parents:
diff changeset
87 root = ET.fromstring(content)
373e6610e290 initial
dwinter
parents:
diff changeset
88
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
89 #<escidocItem:item objid="escidoc:630782"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
90
0
373e6610e290 initial
dwinter
parents:
diff changeset
91 citationxpath=".//{http://purl.org/dc/terms/}bibliographicCitation"
373e6610e290 initial
dwinter
parents:
diff changeset
92
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
93 objxpath=".//{http://www.escidoc.de/schemas/item/0.8}item"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
94 citations=root.findall(objxpath)
0
373e6610e290 initial
dwinter
parents:
diff changeset
95
373e6610e290 initial
dwinter
parents:
diff changeset
96 ret=[]
373e6610e290 initial
dwinter
parents:
diff changeset
97 for citation in citations:
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
98 objId = citation.get('objid')
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
99
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
100 text = citation.find(citationxpath)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
101
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
102 ret.append((objId,text.text))
0
373e6610e290 initial
dwinter
parents:
diff changeset
103
373e6610e290 initial
dwinter
parents:
diff changeset
104
373e6610e290 initial
dwinter
parents:
diff changeset
105
373e6610e290 initial
dwinter
parents:
diff changeset
106 return ret
373e6610e290 initial
dwinter
parents:
diff changeset
107
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
108
5
245294b18a1d search modified
dwinter
parents: 4
diff changeset
109 def search(self,values={},exact=False,limit=None,contexts=None):
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
110
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
111 """search pubman
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
112 @values map mit field->value
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
113 @return map mit escidocId -> XML-formatted snippeds
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
114 """
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
115
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
116 fieldToEscidoc={"title":"escidoc.any-title",
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
117 "author":"escidoc.publication.any.publication-creator-names",
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
118 "any":"escidoc.any-metadata"}
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
119
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
120
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
121 cn = self.connectorString+"cqlQuery=%s&"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
122 cn +="exportFormat=APA&outputFormat=snippet&language=all&sortKeys=escidoc.any-dates&sortOrder=descending"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
123
5
245294b18a1d search modified
dwinter
parents: 4
diff changeset
124 if limit:
245294b18a1d search modified
dwinter
parents: 4
diff changeset
125 cn+="&maximumRecords=%s"%limit
245294b18a1d search modified
dwinter
parents: 4
diff changeset
126
245294b18a1d search modified
dwinter
parents: 4
diff changeset
127
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
128
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
129
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
130 querys = []
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
131 for field in values.keys():
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
132
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
133 searchField = fieldToEscidoc.get(field,None)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
134 if searchField is None:
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
135 logging.debug("search, don't know field: %s"%field)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
136 continue
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
137
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
138
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
139 value = values[field]
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
140
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
141 if value == '':
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
142 continue
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
143 logging.debug("%s=%s"%(field,value))
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
144 if not exact:
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
145 value=value+"*"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
146
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
147
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
148 querys.append("%s=%%22%s%%22"%(searchField,value))
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
149
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
150
5
245294b18a1d search modified
dwinter
parents: 4
diff changeset
151 query="+AND+".join(querys)
245294b18a1d search modified
dwinter
parents: 4
diff changeset
152
245294b18a1d search modified
dwinter
parents: 4
diff changeset
153
245294b18a1d search modified
dwinter
parents: 4
diff changeset
154 if contexts: # einscbraenken auf contexte
245294b18a1d search modified
dwinter
parents: 4
diff changeset
155
245294b18a1d search modified
dwinter
parents: 4
diff changeset
156 if isinstance(contexts, str):
245294b18a1d search modified
dwinter
parents: 4
diff changeset
157 contexts=[contexts]
245294b18a1d search modified
dwinter
parents: 4
diff changeset
158
245294b18a1d search modified
dwinter
parents: 4
diff changeset
159 ctxquerys=[]
245294b18a1d search modified
dwinter
parents: 4
diff changeset
160 for context in contexts:
245294b18a1d search modified
dwinter
parents: 4
diff changeset
161 ctxquerys.append("escidoc.context.objid=%%22%s%%22"%(context))
245294b18a1d search modified
dwinter
parents: 4
diff changeset
162
245294b18a1d search modified
dwinter
parents: 4
diff changeset
163 ctxquery="+OR+".join(ctxquerys)
245294b18a1d search modified
dwinter
parents: 4
diff changeset
164
245294b18a1d search modified
dwinter
parents: 4
diff changeset
165 if query!="":
245294b18a1d search modified
dwinter
parents: 4
diff changeset
166 query=query+"AND (%s)"%ctxquery
245294b18a1d search modified
dwinter
parents: 4
diff changeset
167 else:
245294b18a1d search modified
dwinter
parents: 4
diff changeset
168 query="(%s)"%ctxquery
245294b18a1d search modified
dwinter
parents: 4
diff changeset
169
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
170 h = httplib2.Http(cacheFolder)
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
171
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
172 logging.debug(cn%query)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
173 resp, content = h.request(cn%query)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
174
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
175 ET.register_namespace("dcterms", "http://purl.org/dc/terms/")
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
176
3
602b6e46b176 error handling bei falscher suche
dwinter
parents: 2
diff changeset
177 try:
602b6e46b176 error handling bei falscher suche
dwinter
parents: 2
diff changeset
178 root = ET.fromstring(content)
602b6e46b176 error handling bei falscher suche
dwinter
parents: 2
diff changeset
179 except:
602b6e46b176 error handling bei falscher suche
dwinter
parents: 2
diff changeset
180 logging.error("Couldn't parse content of:%s"%(cn%query))
602b6e46b176 error handling bei falscher suche
dwinter
parents: 2
diff changeset
181 return {}
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
182 #<escidocItem:item objid="escidoc:630782"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
183
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
184 citationxpath=".//{http://purl.org/dc/terms/}bibliographicCitation"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
185
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
186 objxpath=".//{http://www.escidoc.de/schemas/item/0.8}item"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
187 citations=root.findall(objxpath)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
188
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
189 ret={}
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
190 for citation in citations:
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
191 objId = citation.get('objid')
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
192
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
193 text = citation.find(citationxpath)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
194
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
195 ret[objId]=text.text
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
196
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
197
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
198
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
199 return ret
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
200
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
201
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
202
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
203 def getEntryFromPubman(self,escidocid):
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
204 """get one entry"""
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
205
3
602b6e46b176 error handling bei falscher suche
dwinter
parents: 2
diff changeset
206 escidocid=escidocid.lstrip().strip()
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
207 h = httplib2.Http(cacheFolder)
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
208 cn = self.connectorString+"cqlQuery=escidoc.objid=%s&"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
209 cn +="exportFormat=APA&outputFormat=snippet&language=all&sortKeys=escidoc.any-dates&sortOrder=descending"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
210
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
211 resp, content = h.request(cn%escidocid)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
212 ET.register_namespace("dcterms", "http://purl.org/dc/terms/")
3
602b6e46b176 error handling bei falscher suche
dwinter
parents: 2
diff changeset
213 logging.debug(cn%escidocid)
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
214
2
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
215 root = ET.fromstring(content)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
216
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
217
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
218 citationxpath=".//{http://purl.org/dc/terms/}bibliographicCitation"
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
219
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
220 citation=root.find(citationxpath)
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
221
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
222 if citation is not None:
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
223
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
224 return citation.text
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
225
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
226 return ""
9dbb9354abbe getPublications erweitert nach Typ
dwinter
parents: 1
diff changeset
227
0
373e6610e290 initial
dwinter
parents:
diff changeset
228 def pubmanConnectorURL(self):
373e6610e290 initial
dwinter
parents:
diff changeset
229 return self.connectorString
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
230
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
231
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
232
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
233 def getPreprintsFromContext(self,context,limit=None,publicationType=None):
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
234 """get all publications des context"""
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
235 h = httplib2.Http(cacheFolder)
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
236
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
237
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
238
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
239 if publicationType is None:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
240 cn = self.connectorString+"cqlQuery=escidoc.context.objid=%22"+context+"%22&"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
241 #cn = self.connectorString+"cqlQuery=escidoc.objid=%22"+"escidoc:643455"+"%22&"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
242 else:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
243 cn = self.connectorString+"cqlQuery=escidoc.context.objid=%22"+context+"%22"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
244 cn +="%20and%20escidoc.publication.type=%22"+publicationType+"%22&"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
245
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
246 cn +="exportFormat=APA&outputFormat=snippet&language=all&sortKeys=escidoc.any-dates&sortOrder=descending"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
247 if limit:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
248 cn+="&maximumRecords=%s"%limit
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
249
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
250 logging.debug(cn)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
251 resp, content = h.request(cn)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
252
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
253
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
254 ET.register_namespace("dcterms", "http://purl.org/dc/terms/")
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
255
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
256 root = ET.fromstring(content)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
257
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
258 #<escidocItem:item objid="escidoc:630782"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
259
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
260 citationxpath=".//{http://purl.org/dc/terms/}bibliographicCitation"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
261 abstractpath=".//{http://purl.org/dc/terms/}abstract"
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
262 issuedpath=".//{http://purl.org/dc/terms/}issued"
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
263
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
264 creatorpath=".//{http://escidoc.mpg.de/metadataprofile/schema/0.1/publication}creator/{http://escidoc.mpg.de/metadataprofile/schema/0.1/types}person"
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
265 familyNamepath=".//{http://escidoc.mpg.de/metadataprofile/schema/0.1/types}family-name"
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
266 givenNamepath=".//{http://escidoc.mpg.de/metadataprofile/schema/0.1/types}given-name"
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
267
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
268
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
269 titlepath=".//{http://purl.org/dc/elements/1.1/}title"
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
270
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
271 objxpath=".//{http://www.escidoc.de/schemas/item/0.8}item"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
272 srcpath=".//{http://escidoc.mpg.de/metadataprofile/schema/0.1/publication}source"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
273 volumepath=".//{http://escidoc.mpg.de/metadataprofile/schema/0.1/types}volume"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
274
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
275 #linkspath=""".//{http://www.escidoc.de/schemas/components/0.8}component/{http://www.escidoc.de/schemas/components/0.8}content[@storage="internal-managed"]"""
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
276 linkspath=""".//{http://www.escidoc.de/schemas/components/0.8}component/{http://www.escidoc.de/schemas/components/0.8}content[@storage="external-url"]"""
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
277 #linkspath=".//{http://www.escidoc.de/schemas/components/0.8}component/{http://www.escidoc.de/schemas/components/0.8}content"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
278 citations=root.findall(objxpath)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
279
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
280 ret=[]
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
281 for citation in citations:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
282 objId = citation.get('objid')
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
283
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
284 text = citation.find(citationxpath)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
285
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
286 #Get volume = preprintID
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
287 # <publication:source type="series">
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
288 # <dc:title>Max-Planck-Institut für Wissenschaftsgeschichte : Preprint</dc:title>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
289 # <escidoc:volume>437</escidoc:volume>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
290
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
291
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
292
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
293 src= citation.find(srcpath)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
294 vol = src.find(volumepath)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
295
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
296
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
297 #get link to fulltext
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
298 #<escidocComponents:component objid="escidoc:644183">
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
299 #<escidocComponents:properties>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
300 # <prop:creation-date>2013-04-29T09:00:01.100Z</prop:creation-date>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
301 # <prop:valid-status>valid</prop:valid-status>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
302 # <prop:visibility>public</prop:visibility>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
303 # <prop:content-category>pre-print</prop:content-category>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
304 # <prop:file-name>P437.PDF</prop:file-name>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
305 # <prop:mime-type>application/pdf</prop:mime-type>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
306 # <prop:checksum>d0ccdc62d6707d934e60e9839ffe30bf</prop:checksum>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
307 # <prop:checksum-algorithm>MD5</prop:checksum-algorithm>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
308 #</escidocComponents:properties>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
309 #<escidocComponents:content xlink:type="simple" xlink:title="P437.PDF" storage="internal-managed"
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
310 # xlink:href="http://pubman.mpiwg-berlin.mpg.de/pubman/item/escidoc:643686:3/component/escidoc:644183/P437.PDF"/>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
311 #
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
312
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
313 src= citation.find(linkspath)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
314 if src is not None:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
315
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
316 link=src.get("{http://www.w3.org/1999/xlink}href")
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
317 #logging.debug(src.attrib)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
318
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
319 else:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
320 link =""
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
321
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
322
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
323 #<dcterms:abstract xml:lang="deu">Dieser Preprint versammelt eine Auswahl von Beiträgen zum Symposium zu Ehren von Hans-Jörg Rheinbergers 65. Geburtstag. Es fand am 24.1.2011 im Max-Planck-Institute für Wissenschaftsgeschichte statt und brachte Freunde, Studenten und Kollegen von Hans-Jörg Rheinberger zusammen.</dcterms:abstract>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
324 #<dcterms:abstract xml:lang="eng">In this preprint, a selection of contributions to the symposium in honor of Hans-Jörg Rheinberger’s 65th birthday is published. It took place on January 24, 2011 at the Max-Planck-Institute for the History of Science and assembled friends, students and colleagues of Hans-Jörg Rheinberger.</dcterms:abstract>
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
325
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
326
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
327
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
328 abstracts = citation.findall(abstractpath)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
329
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
330 abstractTexts={}
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
331 for abstract in abstracts:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
332
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
333 lang = abstract.get("{http://www.w3.org/XML/1998/namespace}lang")
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
334 abstractTexts[lang]=abstract.text
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
335
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
336
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
337
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
338 authorsTags = citation.findall(creatorpath)
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
339
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
340 authors=[]
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
341 for author in authorsTags:
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
342
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
343 gn= author.find(givenNamepath).text
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
344 fn= author.find(familyNamepath).text
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
345
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
346 authors.append((fn,gn))
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
347
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
348
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
349 titleTag = citation.find(titlepath)
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
350
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
351
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
352
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
353 if titleTag is not None:
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
354 title = titleTag.text
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
355 else:
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
356 title=""
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
357
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
358
6
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
359 issuedTag = citation.find(issuedpath)
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
360
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
361
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
362
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
363 if issuedTag is not None:
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
364 issued = issuedTag.text
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
365 else:
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
366 issued=""
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
367
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
368
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
369
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
370 ret.append((objId,{"citation":text.text,"volume":vol.text,
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
371 "link":link,
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
372 "abstracts":abstractTexts,
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
373 "authors":authors,
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
374 "title":title,
49abb91d6c6a getPreprints gibt nun hash mit metadate zurueck
dwinter
parents: 5
diff changeset
375 "year":issued}))
4
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
376
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
377
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
378 def cmpret(x,y): #sort by preprint number
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
379 try:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
380 return -cmp(int(x[2]),int(y[2]))
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
381 except:
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
382 return 0
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
383 #return cmp(x[2],y[2])
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
384
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
385 ret.sort(cmpret)
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
386 return ret
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
387
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
388
f845502cf73a preprint methoden hinzugefuegt
dwinter
parents: 3
diff changeset
389
0
373e6610e290 initial
dwinter
parents:
diff changeset
390
373e6610e290 initial
dwinter
parents:
diff changeset
391 def manage_addZopePubmanConnectorForm(self):
373e6610e290 initial
dwinter
parents:
diff changeset
392 """Form for external Links"""
373e6610e290 initial
dwinter
parents:
diff changeset
393 pt=zptFile(self, 'zpt/AddZopePubmanConnector.zpt')
373e6610e290 initial
dwinter
parents:
diff changeset
394 return pt()
373e6610e290 initial
dwinter
parents:
diff changeset
395
373e6610e290 initial
dwinter
parents:
diff changeset
396
373e6610e290 initial
dwinter
parents:
diff changeset
397 def manage_addZopePubmanConnector(self,id,title,pubmanURL,RESPONSE=None):
373e6610e290 initial
dwinter
parents:
diff changeset
398 """Add an external Link"""
373e6610e290 initial
dwinter
parents:
diff changeset
399
373e6610e290 initial
dwinter
parents:
diff changeset
400 newObj=ZopePubmanConnector(id,title,pubmanURL)
373e6610e290 initial
dwinter
parents:
diff changeset
401
373e6610e290 initial
dwinter
parents:
diff changeset
402 self._setObject(id,newObj)
373e6610e290 initial
dwinter
parents:
diff changeset
403
373e6610e290 initial
dwinter
parents:
diff changeset
404
373e6610e290 initial
dwinter
parents:
diff changeset
405 if RESPONSE is not None:
373e6610e290 initial
dwinter
parents:
diff changeset
406 RESPONSE.redirect('manage_main')
373e6610e290 initial
dwinter
parents:
diff changeset
407