annotate MPIWGProjects_removed.py @ 201:81a8177ca354

shows where a entry comes from in editing mode
author dwinter
date Wed, 26 Jun 2013 16:49:31 +0200
parents 975a8d88e315
children a328c112e372
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
50
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
1 #
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
2 # removed methods
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
3 #
81
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
4
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
5
50
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
6 class MPIWGProjects_notused:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
7
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
8 def decode(self, str):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
9 """return unicode object"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
10 return unicodify(str)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
11
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
12 def isCheckField(self, fieldname):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
13 """return chechfield"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
14 return (fieldname in checkFields)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
15
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
16 def sortedByPlace(self, metatype):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
17 """find metatype and sort by place"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
18 def sort(x, y):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
19 return cmp(getattr(x[1], 'place', 0), getattr(y[1], 'place', 0))
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
20
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
21 logging.debug("MPIWGProjects begin: sorted by place: " + metatype)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
22 founds = self.ZopeFind(self, obj_metatypes=[metatype]);
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
23
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
24 founds.sort(sort)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
25 logging.debug("MPIWGProjects end: sorted by place: " + metatype)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
26 return founds
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
27
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
28
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
29 def harvest_page(self, context=None, mode="normal"):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
30 """seite fuer harvesting fuer die Projektsuche"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
31
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
32 if not context:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
33 context = self
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
34
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
35 if self.isActiveProject() and self.isCurrentVersion():
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
36 templates = self.en.getHarvestCache()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
37
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
38 ext = getattr(self, "harvest_main", None)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
39 if ext:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
40 rendered = getattr(self, ext.getId())()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
41 templates[self.absolute_url()] = rendered
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
42 transaction.commit()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
43 return rendered
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
44
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
45
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
46 pt = PageTemplateFile(os.path.join(package_home(globals()), 'zpt', 'harvest_main')).__of__(context)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
47
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
48 rendered = pt()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
49 templates[self.absolute_url()] = rendered
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
50 transaction.commit()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
51 return rendered
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
52
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
53
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
54
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
55 def index_html_old(self, request=True, context=None):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
56 """show homepage"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
57
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
58 bound_names = {}
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
59
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
60 if not context:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
61 context = self
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
62 if request:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
63 if self.REQUEST.has_key('date') and self.REQUEST.SESSION.get('MPI_redirected', None) == None:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
64 self.REQUEST.SESSION['MPI_redirected'] = 1
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
65 self.REQUEST.RESPONSE.redirect(self.checkDate(self.REQUEST['date']) + "?date=" + self.REQUEST['date'])
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
66 else:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
67 self.REQUEST.SESSION['MPI_redirected'] = None
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
68
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
69 # ext=self.ZopeFind(self.aq_parent,obj_ids=["project_main"])
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
70
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
71
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
72 request2 = getattr(self, 'REQUEST', None)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
73
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
74 if request2 is not None:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
75 response = request2.response
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
76 if not response.headers.has_key('content-type'):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
77 response.setHeader('content-type', 'text/html')
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
78
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
79 security = getSecurityManager()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
80 bound_names['user'] = security.getUser()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
81
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
82 # Retrieve the value from the cache.
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
83 keyset = None
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
84 if self.ZCacheable_isCachingEnabled():
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
85
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
86 # Prepare a cache key.
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
87 keyset = {'here': self, 'params':request2['QUERY_STRING']}
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
88
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
89 result = self.ZCacheable_get(keywords=keyset)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
90
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
91 if result is not None:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
92 # Got a cached value.
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
93 return result
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
94
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
95 pt = getTemplate(self, "project_main")
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
96 # Execute the template in a new security context.
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
97 security.addContext(self)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
98
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
99 try:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
100 # logging.debug("index_html pt=%s"%repr(pt))
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
101 result = pt.pt_render(extra_context=bound_names)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
102 # logging.debug("index_html result=%s"%repr(result))
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
103 if keyset is not None:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
104 # Store the result in the cache.
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
105 self.ZCacheable_set(result, keywords=keyset)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
106
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
107 return result
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
108 finally:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
109 security.removeContext(self)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
110
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
111
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
112
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
113 def index_html_old2(self, request=True, context=None):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
114 """show homepage"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
115 if not context:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
116 context = self
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
117 if request:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
118 if self.REQUEST.has_key('date') and self.REQUEST.SESSION.get('MPI_redirected', None) == None:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
119 self.REQUEST.SESSION['MPI_redirected'] = 1
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
120 self.REQUEST.RESPONSE.redirect(self.checkDate(self.REQUEST['date']) + "?date=" + self.REQUEST['date'])
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
121 else:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
122 self.REQUEST.SESSION['MPI_redirected'] = None
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
123
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
124 # ext=self.ZopeFind(self.aq_parent,obj_ids=["project_main"])
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
125
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
126 ext = getattr(self, "project_main", None)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
127 if ext:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
128 return getattr(self, ext.getId())()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
129
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
130 pt = PageTemplateFile(os.path.join(package_home(globals()), 'zpt', 'project_main')).__of__(context)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
131
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
132 return pt()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
133
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
134
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
135 def no_project(self):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
136 """warnung: project noch nicht existent"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
137 pt = PageTemplateFile(os.path.join(package_home(globals()), 'zpt', 'no_project')).__of__(self)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
138 return pt()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
139
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
140
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
141 def showImagesOfPage(self, imageUrl=None):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
142 """show Images of project"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
143 self.getContent('WEB_project_description', filter='yes') # get the content and store image infos into session
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
144 pt = PageTemplateFile(os.path.join(package_home(globals()), 'zpt', 'projectImageView.zpt')).__of__(self)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
145 return pt()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
146
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
147
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
148 def show_html(self):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
149 """simple index"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
150 # return "HI"
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
151 pt = PageTemplateFile(os.path.join(package_home(globals()), 'zpt', 'MPIWGProject_index.zpt')).__of__(self)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
152 return pt()
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
153
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
154 def getLabel_old(self):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
155 """returns label (or title) of this project"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
156 l = self.getContent('xdata_07')
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
157 if l:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
158 return l
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
159 l = self.getContent('WEB_title')
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
160 if l:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
161 return l
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
162 return self.title
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
163
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
164 def getPersonKeyList(self):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
165 """gibt die key Liste der beteiligten Personen zurueck (utf8 codiert)"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
166 # logging.error("getPersonKeyList:%s"%getattr(self,'responsibleScientistsList',[]))
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
167 try:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
168 return [utf8ify(x[1]) for x in getattr(self, 'responsibleScientistsList', [])]
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
169 except:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
170 return[]
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
171
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
172
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
173 def myCapitalize(self, txt):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
174 """kapitalisiere auch Namen mit -"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
175 splitted = [x.capitalize() for x in txt.split("-")]
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
176 return "-".join(splitted)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
177
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
178 def getNamesOrdered(self, list):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
179 """Sortiert die Liste nach der Reihenfolge in xdata_01"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
180
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
181 nameList = self.getContent('xdata_01')
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
182 if nameList.find(";") > -1: # rate Trenner ist ;
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
183 names = nameList.split(";")
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
184 else:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
185 names = nameList.split(",")
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
186
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
187 self._v_names = []
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
188 for name in names:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
189 self._v_names.append(name.rstrip().lstrip())
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
190
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
191
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
192 def sort(x, y):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
193 try:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
194 return cmp(self._v_names.index(x[0]), self._v_names.index(y[0]))
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
195 except:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
196 return 0
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
197
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
198 list.sort(sort)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
199
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
200 return list
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
201
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
202 def getWebProject_description(self):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
203 """get description"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
204 debug = self.REQUEST.cookies.get("MP_debug_code", None)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
205
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
206 if debug and debug == "western":
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
207 return """
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
208 <html>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
209 <head>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
210 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
211 </head>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
212 <body>%s</body>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
213 </html>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
214 """ % self.WEB_project_description[0]
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
215
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
216 return """
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
217 <html>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
218 <head>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
219 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
220 </head>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
221 <body>%s</body>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
222 </html>
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
223 """ % self.getContent('WEB_project_description')
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
224
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
225
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
226
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
227 def isChecked(self, wert, list):
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
228 """check if wert is in ; seperated list"""
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
229
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
230 # felder sind manchmnal als liste mit einem element definiert
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
231 if type(list) is StringType or UnicodeType:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
232 splitted = list.split(";")
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
233 else:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
234 splitted = list[0].split(";")
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
235
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
236 splitted = [y.rstrip().lstrip() for y in splitted]
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
237
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
238 for x in splitted:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
239 x = re.sub(r"[^A-z ]", "", x)
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
240 if (not x == u'') and x in wert:
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
241 return 1
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
242 return 0
e30a4bd074db more cleaning up projects.
casties
parents:
diff changeset
243
52
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
244
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
245 def getRootProject(self):
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
246 """returns the root (=top level) project of the current project"""
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
247 ct = self.getContexts(parents=self.getContent('xdata_05'))
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
248 if len(ct) > 0:
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
249 return ct[-1][0]
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
250 else:
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
251 return self
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
252
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
253
60
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
254 def getContent(self, field, filter=None):
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
255 """Inhalt des Feldes"""
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
256 # logging.debug("getContent field=%s filter=%s"%(field,filter))
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
257
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
258 if field == "short_title":
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
259 text = self.getContent("xdata_07")
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
260 if text == "":
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
261 text = self.getContent("WEB_title")
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
262 return text
52
1ed79b33200c more work on projects and cleanup.
casties
parents: 50
diff changeset
263
60
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
264 text = u''
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
265
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
266 f = getattr(self, field)
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
267 if isinstance(f, list):
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
268 # compat with old lists
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
269 for x in f:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
270 try:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
271 text += x
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
272 except:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
273 text = x
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
274 else:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
275 text = f
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
276
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
277 try:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
278 if text[len(text) - 1] == ";":
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
279 text = text[0:len(text) - 1]
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
280
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
281 except:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
282 pass
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
283
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
284 if text == '': # # wozu die folgenden Zeilen??
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
285 text2 = text
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
286 else:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
287 text2 = re.sub(r';([^\s])', '; \g<1>', text)
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
288
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
289 if field == "WEB_project_description": # #Jedenfalls darf letzteres nicht gemacht werden, falls normaler text
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
290 text2 = text
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
291
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
292 # teste ob ergebnis leer und header dann nehme title
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
293
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
294 if (text2 == '') and (field == 'WEB_project_header'):
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
295 return self.getContent('WEB_title')
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
296
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
297 if filter:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
298 splitted = text2.split("""<p class="picture">""")
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
299 if len(splitted) > 1:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
300 tmp = splitted[1].split("</p>")
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
301 # return repr(splitted[1])
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
302 try:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
303 self.imageURL = tmp[0].split("\"")[1].encode('utf-8')
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
304 except:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
305 try:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
306 self.imageURL = tmp[0].split("src=")[1].split(" ")[0].encode('utf-8')
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
307 except:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
308 self.imageURL = ""
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
309
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
310 split2 = "</p>".join(tmp[1:])
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
311
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
312 text3 = splitted[0] + split2
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
313
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
314 splitted = text3.split("""<p class="picturetitle">""")
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
315 if len(splitted) > 1:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
316 tmp = splitted[1].split("</p>")
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
317 self.imagecap = tmp[0].encode('utf-8')
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
318
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
319 split4 = "".join(tmp[1:])
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
320
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
321 text5 = splitted[0] + split4
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
322 else:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
323 # keine caption
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
324 text5 = text3
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
325 else:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
326 # kein bild
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
327 text5 = text2
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
328 else:
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
329 text5 = text2
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
330
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
331 # teste ob WEB_project_description und keine fuehrenden p tags
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
332 if (len(text5) > 4) and (not text5[0:3] == '<p>') and (field == 'WEB_project_description'):
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
333 text5 = "<p>" + text5 + "</p>"
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
334
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
335
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
336 # filter image
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
337
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
338 text5 = text5.lstrip().rstrip() # loescher leerzeichen und einzelndes br
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
339 if (text5 == "<br>") or (text5 == "<br/>"):
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
340 text5 = ""
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
341
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
342 # logging.debug("getcontent: field=%s filter=%s -> %s"%(field,filter,repr(text5)))
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
343 return unicodify(text5)
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
344 # return utf8ify(text5) # return as utf-8 byte string
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
345
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
346
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
347
61
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
348 def getImageUrls(self, mode="not_cached"):
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
349 """get the image urls"""
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
350
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
351 if (getattr(self, 'link', '') == ''):
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
352 return [] # es gibt keinen link
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
353
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
354 server = xmlrpclib.ServerProxy(self.link)
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
355
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
356
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
357 if(mode == "cached"):
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
358 if (hasattr(self, "_v_imageUrls")):
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
359 logging.debug("getImageURL cached")
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
360 return self._v_imageUrls
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
361
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
362 try:
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
363 urls = server.getImageUrls()
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
364 ret = []
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
365 for url in urls:
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
366 url = os.path.join(self.link, url)
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
367 ret.append(url)
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
368
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
369 except:
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
370 self._v_imageUrls = []
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
371 return []
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
372 self._v_imageUrls = ret[0:]
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
373 return ret
60
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
374
61
04fb655633ef more cleaning up projects.
casties
parents: 60
diff changeset
375
81
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
376 # TODO: this is broken. is this used?
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
377 def getAllProjectsAndTagsAsCSV(self,archived=1,RESPONSE=None):
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
378 """alle projekte auch die nicht getaggten"""
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
379 retList=[]
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
380 headers=['projectId','sortingNumber','projectName','scholars','startedAt','completedAt','lastChangeThesaurusAt','lastChangeProjectAt','projectCreatedAt','persons','places','objects']
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
381 headers.extend(list(self.thesaurus.tags.keys()))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
382 retList.append("\t".join(headers))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
383 if not hasattr(self,'thesaurus'):
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
384 return "NON thesaurus (there have to be a MPIWGthesaurus object, with object ID thesaurus)"
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
385
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
386 projectTags = self.thesaurus.getProjectsAndTags()
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
387 for project in self.getProjectFields('WEB_title_or_short'):
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
388 proj = project[0]
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
389 p_name = project[1]
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
390 retProj=[]
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
391 #if (not proj.isArchivedProject() and archived==1) or (proj.isArchivedProject() and archived==2):
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
392 retProj.append(self.utf8ify(proj.getId()))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
393 retProj.append(self.utf8ify(proj.getContent('xdata_05')))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
394 retProj.append(self.utf8ify(p_name))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
395 retProj.append(self.utf8ify(proj.getContent('xdata_01')))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
396 retProj.append(self.utf8ify(proj.getStartedAt()))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
397 retProj.append(self.utf8ify(proj.getCompletedAt()))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
398 changeDate=self.thesaurus.lastChangeInThesaurus.get(proj.getId(),'')
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
399 n = re.sub("[:\- ]","",str(changeDate))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
400 retProj.append(n)
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
401 retProj.append(self.utf8ify(getattr(proj,'creationTime','20050101000000')))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
402 retProj.append("")#TODO: project created at
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
403 retProj.append(";".join([person[1] for person in self.thesaurus.getPersonsFromProject(proj.getId())]))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
404 retProj.append(";".join([person[1] for person in self.thesaurus.getHistoricalPlacesFromProject(proj.getId())]))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
405 retProj.append(";".join([person[1] for person in self.thesaurus.getObjectsFromProject(proj.getId())]))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
406 retProj+=self.thesaurus.getTags(proj.getId(),projectTags)
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
407 retList.append("\t".join(retProj))
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
408
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
409 if RESPONSE:
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
410
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
411 RESPONSE.setHeader('Content-Disposition','attachment; filename="ProjectsAndTags.tsv"')
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
412 RESPONSE.setHeader('Content-Type', "application/octet-stream")
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
413
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
414 return "\n".join(retList);
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
415
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
416
975a8d88e315 new editable info blocks for projects.
casties
parents: 61
diff changeset
417