annotate MPIWGRoot_deleted_methods.py @ 161:2b5adc7f5445

english and german footer
author casties
date Thu, 06 Jun 2013 19:11:45 +0200
parents 63184d71c014
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
65
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
2 def sortWeight(x,y):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
3 x1=int(getattr(x[1],'weight','0'))
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
4 y1=int(getattr(y[1],'weight','0'))
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
5 return cmp(x1,y1)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
6
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
7
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
8
50
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
9 class MPIWGRoot_deleted:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
10
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
11
33
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
12 def removeStopWords(self,xo):
1
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
13 """remove stop words from xo"""
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
14 if not hasattr(self,'_v_stopWords'):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
15 self._v_stopWords=self.stopwords_en.data.split("\n")
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
16
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
17 x=str(xo)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
18
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
19 strx=x.split(" ")
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
20
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
21 for tmp in strx:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
22
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
23 if tmp.lower() in self._v_stopWords:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
24 del strx[strx.index(tmp)]
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
25
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
26 return " ".join(strx)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
27
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
28
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
29 def getGetNeighbourhood(self,obj, wordStr, length=100,tagging=True):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
30 """finde umgebung um die worte in wordStr, zurueckgegeben wird eine Array mit den Umgebungen von Fundstellen der Worte
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
31 alle Tags werden entfernt, die Fundstellen werden mit <span class="found">XX</span> getaggt, die Umgebungen werden
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
32 case insensitive gesucht
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
33 @param wordStr: string mit Worten getrennt durch Leerzeichen, Phrasen sind mit " gekennzeichnet
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
34 "eine phrase", "*" bezeichnet wildcards und wird ignoriert"
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
35 @param length: optional, default wert 100, 2*length ist die groesse der Umgebung
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
36 @param tagging: optional default wert true, kein span tag wird erzweugt falls tag=false
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
37 """
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
38
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
39 ret=[] # nimmt das Array auf, dass spaeter zurueckgegeben wird
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
40 ranges=[] #Array mit tupeln x,y wobei x die Position des Anfang und y des Endes der i-ten Umgebung angiebt
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
41
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
42 wordStr=wordStr.lstrip().rstrip()
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
43
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
44 def isInRanges(nr,length):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
45 """test ob eine gegeben Position nr schon irgendwo in einer Umgebung ist, gibt den Index des ersten Wertes aus ranges zurueck,
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
46 -1, wenn kein Treffer
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
47
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
48 @param nr: Position die geprueft werden soll
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
49 @param length: Laenge des Wortes das geprueft werden soll
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
50 """
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
51 for x in ranges:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
52 if (x[0]<=nr) and (nr < (x[1]-length)):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
53 return ranges.index(x)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
54 return -1
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
55
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
56 # deal with phrases, in Phrasen werden die Leerzeichen durch "_" ersetzt.
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
57 def rep_empty(str):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
58 x= re.sub(" ","_",str.group(0))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
59 return re.sub("\"","",x)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
60
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
61 wordStr=re.sub("\".*?\"", rep_empty,wordStr)#ersetze leerzeichen in " " durch "_" und loesche "
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
62
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
63 #deal with wildcards, for our purposes it is enough to delete the wildcard
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
64 wordStr=wordStr.replace("*","")
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
65
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
66 words=wordStr.split(" ")
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
67 #if not words is ListType:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
68 # words=[words]
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
69
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
70
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
71 txtCache = self.en.getHarvestCache();
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
72 txt= txtCache.get(obj.absolute_url(),None)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
73
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
74 if txt==None:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
75
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
76 logging.debug("NO CACHE for: "+obj.absolute_url())
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
77 txt=obj.harvest_page(mode="slim")
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
78
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
79
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
80 if not txt:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
81 return ret
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
82
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
83 soup = BeautifulSoup(txt)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
84
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
85 comments = soup.findAll(text=lambda text:isinstance(text, Comment))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
86 [comment.extract() for comment in comments]
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
87
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
88 txt = ''.join(soup.findAll(text=True))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
89
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
90
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
91 #txt=re.sub("<.*?>", "", txt) # loesche alle Tags
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
92 for word in words:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
93 word=re.sub("_"," ",word) # ersetze zurueck "_" durch " "
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
94 pos=0
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
95
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
96 n=txt.lower().count(word.lower()) # wie oft tritt das Wort auf
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
97
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
98 for i in range(n):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
99 pos=txt.lower().find(word.lower(),pos)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
100
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
101 if pos > 0:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
102 x=max(0,pos-length)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
103 y=min(len(txt),pos+length)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
104
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
105
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
106 #is word already in one of the results
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
107 nr=isInRanges(pos,len(word))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
108 if nr >=0:# word ist in einer schon gefunden Umgebung, dann vergroessere diese
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
109 x=min(ranges[nr][0],x)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
110 y=max(ranges[nr][1],y)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
111
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
112 str=txt[x:y]
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
113 if x!=0: #add dots if in the middle of text
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
114 str="..."+str
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
115
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
116 if y!=len(txt): #add dots if in the middle of text
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
117 str=str+"..."
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
118
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
119
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
120
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
121 if nr >=0: # word ist in einer schon gefunden Umgebung
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
122 ranges[nr]=(x,y) # neue Position der Umgebung
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
123
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
124 ret[nr]=str # neue Umgebung
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
125 else: # andernfalls neue Umgebung hinzufuegen
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
126 ranges.append((x,y))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
127
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
128 ret.append(str)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
129
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
130 pos=pos+len(word)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
131 else:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
132 break;
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
133
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
134 # now highlight everything
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
135 if tagging:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
136 for x in range(len(ret)):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
137 for word in words:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
138 repl=re.compile(word,re.IGNORECASE)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
139 ret[x]=repl.sub(""" <span class="found">%s</span>"""%word.upper(),ret[x])
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
140
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
141 return ret
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
142 def copyAllImagesToMargin(self):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
143 """tranformiere alle Bilder in die Margins"""
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
144 projects=self.getTree()
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
145 ret=""
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
146 for project in projects:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
147 proj=project[3]
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
148 try:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
149 persons=proj.copyImageToMargin();
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
150 except:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
151 logging.error("Cannnot do: %s"%repr(project))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
152
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
153 def transformProjectsToId(self):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
154 """trnasformiere zu ID, Hilfsfunktion die die alten Templates analysiert und mit der neuen Liste
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
155 verantwortlicher Personen versieht"""
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
156 projects=self.getTree()
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
157 ret=""
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
158 for project in projects:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
159
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
160 proj=project[3]
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
161 persons=proj.identifyNames(proj.getContent('xdata_01'))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
162 if not hasattr(proj,'responsibleScientistsList'):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
163 proj.responsibleScientistsList=[]
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
164
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
165 for person in persons.items():
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
166
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
167 if len(person[1]) >1: #nicht eindeutig
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
168 ret+="nicht eindeutig --- %s: %s\n"%(proj.getId(),person[0])
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
169
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
170 elif len(person[1]) ==0: #kein eintrage
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
171 ret+="kein eintrag--- %s: %s\n"%(proj.getId(),person[0])
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
172 proj.responsibleScientistsList.append((person[0],""))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
173 else:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
174 proj.responsibleScientistsList.append((person[0],person[1][0].getObject().getKey()))
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
175
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
176 return ret
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
177
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
178
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
179 def harvestProjects(self):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
180 """harvest"""
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
181 folder="/tmp"
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
182 try:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
183 os.mkdir("/tmp/harvest_MPIWG")
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
184 except:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
185 pass
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
186 founds=self.ZopeFind(self.aq_parent.projects,obj_metatypes=['MPIWGProject'],search_sub=1)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
187 for found in founds:
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
188 txt=found[1].harvest_page()
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
189
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
190 if txt and (txt != ""):
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
191 name=found[0].replace("/","_")
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
192 fh=file("/tmp/harvest_MPIWG/"+name,"w")
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
193 fh.write(txt)
1f2760ed3efe indices geloescht
dwinter
parents:
diff changeset
194 fh.close()
33
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
195
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
196
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
197
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
198 def generateNameIndex(self):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
199 """erzeuge einen index verwendeter personen"""
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
200 import psycopg
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
201 o = psycopg.connect('dbname=authorities user=dwinter password=3333',serialize=0)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
202 results={}
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
203 print self.fulltext.historicalNames.items()
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
204 for nameItem in self.fulltext.historicalNames.items(): #gehe durch alle namen des lexikons
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
205
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
206 c = o.cursor()
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
207 name=nameItem[0]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
208 print "check",name
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
209 c.execute("select lastname,firstname from persons where lower(lastname) = '%s'"%quote(name))
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
210 tmpres=c.fetchall()
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
211 firstnames=[result[1] for result in tmpres] # find all firstnames
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
212 if tmpres:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
213 lastname=tmpres[0][0]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
214
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
215 for found in self.fulltext({'names':name}):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
216 if found.getObject().isActual():
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
217 for nh in found.getObject().getGetNeighbourhood(name, length=50,tagging=False): #hole umgebung
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
218 #schaue nun ob der vorname hinter oder vor dem name ist
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
219 position=nh.find(lastname)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
220 # vorher
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
221 #print "NH",nh
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
222 bevorS=nh[0:position].split()
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
223 #print "BV",bevorS
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
224 if len(bevorS)>1:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
225 try:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
226 bevor=[bevorS[-1],bevorS[-2]]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
227 except:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
228 bevor=[bevorS[0]]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
229 else:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
230 bevor=[]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
231 #nachher
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
232 behindS= re.split("[,|;| ]",nh[position:])
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
233 #print "BH",behindS
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
234 if len(behindS)>2:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
235 try:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
236 behind=behindS[1:3]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
237 except:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
238 behind=[bevorS[1]]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
239 else:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
240 behind=[]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
241 for firstname in firstnames:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
242 if firstname in bevor+behind: #Namen wie mit Adelspraedikaten werden so erstmal nich gefunden
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
243 id="%s,%s"%(lastname,firstname)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
244 if not results.has_key(id):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
245 results[id]=[]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
246 objId=found.getObject().getId()
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
247 if not (objId in results[id]):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
248 print "d %s for %s"%(id,objId)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
249 results[id].append(objId)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
250 self.nameIndex=results
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
251 return results
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
252
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
253 def editNameIndexHTML(self):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
254 """edit the name index"""
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
255 if not hasattr(self,'nameIndexEdited'): # falls editierter index noch nicht existiert, kopiere automatisch erstellten
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
256 self.nameIndexEdited=copy.copy(self.nameIndex)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
257 print "huh"
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
258 #self.nameIndexEdited=copy.copy(self.nameIndex)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
259 #print self.nameIndexEdited
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
260 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editHistoricalNames.zpt')).__of__(self)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
261 return pt()
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
262
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
263 def getNamesInProject(self,projectId):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
264 """get all names ofnameIndexEdited which are references in projec with projectId"""
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
265
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
266 ret=[]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
267 for name in self.nameIndexEdited.keys():
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
268 if projectId in self.nameIndexEdited[name]:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
269 ret.append(name)
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
270
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
271 return ret
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
272
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
273 def editNameIndex(self,RESPONSE=None,name=None,occurrances=None,submit=None):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
274 """edit the index"""
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
275 nI=self.nameIndexEdited # mI introduced to make sure that changes to nameIndexEdited are know to ZODB
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
276 if submit=="delete":
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
277
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
278
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
279 dh=getattr(self,'deletedHistoricalNames',{})
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
280
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
281 if type(dh) is ListType:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
282 dh={}
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
283 if not dh.has_key(name):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
284 dh[name]=occurrances.split("\n")
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
285 else:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
286 dh[name]+=occurrances.split("\n")
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
287
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
288 self.deletedHistoricalNames=dh
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
289
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
290 del self.nameIndexEdited[name]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
291
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
292
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
293 elif (submit=="change"):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
294
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
295 nI[name]=occurrances.split("\n")[0:]
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
296
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
297 elif (submit=="add"):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
298 if not nI.has_key(name):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
299 nI[name]=occurrances.split("\n")
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
300 else:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
301 nI[name]+=occurrances.split("\n")
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
302
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
303 self.nameIndexEdited=nI
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
304
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
305
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
306 if RESPONSE is not None:
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
307 RESPONSE.redirect('editNameIndexHTML')
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
308
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
309
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
310
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
311 def restoreIndex(self):
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
312 """restore"""
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
313 self.nameIndexEdited=self.nameIndex
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
314 return "done"
50
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
315
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
316 def getProjectsOfMembers(self,date=None):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
317 """give tuple member /projects"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
318 ret=[]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
319 members=self.getAllMembers()
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
320 logging.debug("X %s"%repr(members))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
321 #return str(members)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
322 for x in members:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
323 #logging.debug("X %s"%repr(x))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
324 projects=self.getProjectsOfMember(key=x[1],date=date)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
325 if len(projects)>0:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
326 ret.append((x[0],projects))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
327
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
328 return ret
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
329
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
330 def getProjectsOfMember(self,key=None,date=None,onlyArchived=1,onlyActive=1):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
331 """get projects of a member
33
01b5265264b6 more work on projects.
casties
parents: 1
diff changeset
332
50
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
333 @param key: (optional) Key zur Idenfikation des Benutzer
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
334 @param date: (optional) Version die zum Zeitpunkt date gueltig war
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
335 @param onlyArchived:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
336 onlyArchived=0: alle Projekte
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
337 onlyArchived= 1 : nur aktuelle Projekte
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
338 onlyArchived = 2: nur archivierte Projekte
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
339 """
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
340 # TODO: Die ganze Loesung
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
341 def sortP(x,y):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
342 """sort by sorting number"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
343 return cmp(x.WEB_title,y.WEB_title)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
344
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
345 ret=[]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
346 if key:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
347 logging.debug("MPIWGROOT (getProjectsOfMember):"+key)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
348 proj=self.ProjectCatalog({'getPersonKeyList':utf8ify(key)})
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
349 else:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
350 return ret # key muss definiert sein
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
351
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
352 #logging.debug("MPIWGROOT (getProjectsOfMember):"+repr(proj))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
353 if proj:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
354 proj2=[]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
355 for x in proj:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
356 #logging.error("proj:%s"%repr(x.getPath()))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
357 if (not getattr(x.getObject(),'invisible',None)) and (getattr(x.getObject(),'archiveTime','')==''):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
358 proj2.append(x)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
359
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
360 else:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
361 proj2=[]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
362
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
363
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
364
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
365 proj2.sort(sortP)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
366
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
367 projectListe=[]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
368 #logging.error("getprojectsofmember proj2: %s"%repr(proj2))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
369 for proj in proj2:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
370 obj=proj.getObject()
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
371 add=False
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
372 if onlyArchived==1: #nur aktuell projecte
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
373 if not obj.isArchivedProject():
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
374 add=True
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
375 elif onlyArchived==2: #nur archivierte
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
376 if obj.isArchivedProject():
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
377 add=True
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
378 else: #alle
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
379 add=True
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
380
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
381 if onlyActive==1: #nur active projecte
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
382 if obj.isActiveProject():
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
383 add=add & True
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
384 else:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
385 add=add & False
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
386
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
387 elif onlyArchived==2: #nur nicht aktvive
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
388 if not obj.isActiveProject():
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
389 add=add & True
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
390 else: #alle
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
391 add=add & True
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
392
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
393 if add:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
394 projectListe.append(obj)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
395
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
396 #logging.error("getprojectsofmember projectliste: %s"%repr(projectListe))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
397 return projectListe
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
398
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
399
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
400 def givePersonList(self,name):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
401 """check if person is in personfolder and return list of person objects"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
402
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
403 splitted=name.split(",")
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
404 if len(splitted)==1:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
405 splitted=name.lstrip().rstrip().split(" ")
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
406 splittedNew=[split.lstrip() for split in splitted]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
407
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
408 if splittedNew[0]=='':
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
409 del splittedNew[0]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
410 search=string.join(splittedNew,' AND ')
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
411
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
412 if not search=='':
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
413 proj=self.MembersCatalog({'title':search})
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
414
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
415 if proj:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
416 return [[x.lastName,x.firstName] for x in proj]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
417 else:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
418 return []
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
419
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
420 ## splitted=name.split(",") # version nachname, vorname...
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
421 ## if len(splitted)>1:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
422 ## lastName=splitted[0]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
423 ## firstName=splitted[1]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
424 ## else:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
425 ## splitted=name.split(" ") #version vorname irgenwas nachnamae
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
426
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
427 ## lastName=splitted[len(splitted)-1]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
428 ## firstName=string.join(splitted[0:len(splitted)-1])
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
429
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
430 ## objs=[]
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
431
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
432 #print self.members
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
433 ## for x in self.members.__dict__:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
434 ## obj=getattr(self.members,x)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
435 ## if hasattr(obj,'lastName') and hasattr(obj,'firstName'):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
436
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
437 ## if (re.match(".*"+obj.lastName+".*",lastName) or re.match(".*"+lastName+".*",obj.lastName)) and (re.match(".*"+obj.firstName+".*",firstName) or re.match(".*"+firstName+".*",obj.firstName)):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
438
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
439 ## objs.append((obj,lastName+", "+firstName))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
440
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
441
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
442 ## return objs
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
443
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
444
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
445 def personCheck(self,names):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
446 """all persons for list"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
447 #print "names",names
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
448 splitted=names.split(";")
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
449 ret={}
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
450 for name in splitted:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
451
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
452 if not (name==""):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
453 try:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
454 ret[name]=self.givePersonList(name)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
455 except:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
456 """NOTHIHN"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
457 #print "RET",ret
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
458 return ret
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
459
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
460 def giveCheckList(self,person,fieldname):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
461 """return checklist"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
462 #print "GCL",fieldname
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
463 if fieldname=='xdata_01':
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
464 x=self.personCheck(person.getContent(fieldname))
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
465 #print "GCLBACKX",x
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
466 return x
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
467
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
468
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
469 # TODO: do we need this here?
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
470 def isCheckField(self,fieldname):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
471 """return chechfield"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
472 return (fieldname in checkFields)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
473
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
474
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
475
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
476 def sortResults(self,results):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
477 """search the catalog and give results back sorted by meta_type"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
478 ret = {}
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
479 logging.debug(results())
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
480 for result in results():
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
481 metaType = result.meta_type
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
482 resultList= ret.get(metaType,[])
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
483 resultList.append(result)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
484 ret[metaType]=resultList
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
485
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
486 logging.debug(ret)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
487 return ret
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
488
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
489 # TODO: remove
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
490 def isActiveMember(self,key):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
491 """tested ob Mitarbeiter key ist aktiv"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
492 key=utf8ify(key)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
493 ret=getAt(self.ZSQLInlineSearch(_table='personal_www',
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
494 _op_key='eq',key=key,
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
495 _op_publish_the_data='eq',
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
496 publish_the_data='yes'), 0)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
497
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
498 logging.info("MPIWGROOT ACTIVE_MEMBER %s"%ret)
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
499 if ret:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
500 return True
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
501 else:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
502 return False
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
503
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
504 # TODO: remove
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
505 def isActual(self,project):
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
506 """checke if project is actual"""
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
507 actualTime=time.localtime()
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
508
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
509 if hasattr(project,'getObject'): #obj ist aus einer catalogTrefferList
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
510 obj=project.getObject()
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
511 else:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
512 obj=project
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
513
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
514 if getattr(obj,'archiveTime',actualTime)< actualTime:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
515 return False
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
516 else:
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
517 return True
e30a4bd074db more cleaning up projects.
casties
parents: 33
diff changeset
518
51
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
519
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
520 def getTree(self,dep=None,date=None,onlyActive=0,onlyArchived=0):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
521 """generate Tree from project list
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
522 als Liste, jeder Eintrag ist ein Tupel (Tiefe, ProjektNummer, Titel, ProjektObject)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
523 onlyActive = 0 : alle Projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
524 onlyActive = 1 : nur active Projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
525 onlyActive = 2: nur inactive Projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
526
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
527 onlyArchived=0: alle Projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
528 onlyArchived= 1 : nur aktuelle Projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
529 onlyArchived = 2: nur archivierte Projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
530
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
531 department fuer das Tree geholt werden soll
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
532 """
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
533 logging.debug("MPIWGRoot.getTree()")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
534
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
535 returnListTmp=[]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
536 returnList=[]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
537
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
538 for project in self.getProjectFields('xdata_05',sort="int",date=date): # get Projects sorted by xdata_05
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
539
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
540 for idNr in project[1].split(";"): # more than one number
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
541 if not idNr=="":
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
542 splittedId=idNr.split(".")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
543 depth=len(splittedId)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
544 nr=idNr
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
545 #title=project[0].WEB_title
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
546 title=[project[0].getContent('WEB_title')]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
547 #print title
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
548
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
549 if idNr[0]=="x": # kompatibilitaet mit alter Konvention, x vor der Nummer macht project inactive
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
550 project[0].setActiveFlag(False)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
551
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
552 if (not dep) or (splittedId[0]==dep): #falls dep gesetzt ist nur dieses hinzufuegen.
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
553
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
554 if (onlyActive==0):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
555 returnListTmp.append((depth,nr,title,project[0]))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
556 elif (onlyActive==1) and project[0].isActiveProject(): #nur active projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
557 returnListTmp.append((depth,nr,title,project[0]))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
558 elif (onlyActive==2) and (not project[0].isActiveProject()): #nur active projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
559 returnListTmp.append((depth,nr,title,project[0]))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
560
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
561
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
562 #filter jetzt die Liste nach Archived oder nicht
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
563 for entry in returnListTmp:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
564 if (onlyArchived==0):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
565 returnList.append(entry)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
566 elif (onlyArchived==1) and (not entry[3].isArchivedProject()): #nur active projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
567 returnList.append(entry)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
568 elif (onlyArchived==2) and (entry[3].isArchivedProject()): #nur active projekte
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
569 returnList.append(entry)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
570
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
571
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
572 return returnList
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
573
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
574 def changePosition(self,treeId,select,RESPONSE=None):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
575 """Change Postion Entry"""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
576 numbers=[]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
577
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
578 # Suche hoechste bisherige nummer
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
579 projects=self.getProjectFields('xdata_05') # get Projects sorted by xdata_05
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
580 #print "pj",projects
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
581 for project in projects: #suche alle subtrees der treeId
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
582 #print treeId
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
583
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
584 founds=re.match(treeId+"\.(.*)",project[1].split(";")[0])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
585 if founds:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
586 #print "x",founds.group(0),len(founds.group(0).split("."))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
587 if len(founds.group(0).split("."))==len(treeId.split("."))+1: # nur ein punkt mehr, d.h. untere ebene
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
588 try:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
589 numbers.append(int(founds.group(0).split(".")[len(founds.group(0).split("."))-1]))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
590 except:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
591 numbers.append(int(0))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
592
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
593 try:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
594 highest=max(numbers)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
595 except:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
596 highest=0
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
597 projects=self.showNewProjects()
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
598 for i in self.makeList(select):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
599 highest+=10
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
600 projects[int(i)][0].xdata_05=treeId+"."+str(highest)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
601
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
602 if RESPONSE is not None:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
603 RESPONSE.redirect('showTree')
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
604
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
605 def changeTree(self,RESPONSE=None):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
606 """change the complete tree"""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
607 form=self.REQUEST.form
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
608 hashList={}
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
609 onlyArchived=int(form.get("onlyArchived",0))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
610 onlyActive=int(form.get("onlyActive",0))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
611 dep=form.get("dep",None)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
612
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
613 fields=self.getTree(dep=dep,onlyArchived=onlyArchived,onlyActive=onlyActive)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
614
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
615 logging.info("GOT TREE!----------------------------------------------------")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
616 for field in form.keys():
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
617
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
618 splitted=field.split('_')
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
619 if (len(splitted)>1) and (splitted[1]=="runningNumber"): #feld hat die Form Nummer_name und runnignNumber
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
620
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
621
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
622 nr=int(splitted[0]) # nummer des Datensatzes
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
623 currentEntry = fields[nr]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
624
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
625 if form.has_key(str(nr)+'_active'): # active flag is set
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
626 fields[nr][3].setActiveFlag(True)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
627 else:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
628 fields[nr][3].setActiveFlag(False)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
629
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
630 #nummer hat sich geaendert
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
631
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
632 entryChanged = False;
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
633
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
634 if isinstance(fields[nr][3].xdata_05,list): #for some reasons somtimes the content of the field is a list with one entry.
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
635 fields[nr][3].xdata_05=fields[nr][3].xdata_05[0]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
636
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
637 if not (fields[nr][3].xdata_05==form[str(nr)+'_number']):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
638 logging.info("Changed!Number+++++++++++++++++++++++++++++++++")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
639 logging.info(repr(fields[nr][3].xdata_05)+" ---> "+ repr(form[str(nr)+'_number']))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
640 fields[nr][3].xdata_05=form[str(nr)+'_number']
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
641 entryChanged = True
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
642
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
643 #completed har sich geaendert
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
644
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
645 td = fields[nr][3].transformDate # hole die funktion zum transformieren des datums
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
646
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
647 if not (td(fields[nr][3].getCompletedAt())==td(form[str(nr)+'_completed'])):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
648 fields[nr][3].setCompletedAt(form[str(nr)+'_completed'])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
649 logging.info(repr(td(fields[nr][3].getCompletedAt()))+" ---> "+ repr(td(form[str(nr)+'_completed'])))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
650 logging.info("Changed!Completed+++++++++++++++++++++++++++++++++")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
651 entryChanged = True
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
652
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
653 if not (td(fields[nr][3].getStartedAt())==td(form[str(nr)+'_started'])):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
654 fields[nr][3].setStartedAt(form[str(nr)+'_started'])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
655
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
656 logging.info(repr(td(fields[nr][3].getStartedAt()))+" ---> "+ repr(td(form[str(nr)+'_started'])))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
657 logging.info("Changed!Started+++++++++++++++++++++++++++++++++")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
658 entryChanged = True
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
659
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
660
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
661 if entryChanged:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
662 logging.info("Changed!+++++++++++++++++++++++++++++++++")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
663 fields[nr][3].copyObjectToArchive()
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
664
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
665
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
666 if RESPONSE is not None:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
667 RESPONSE.redirect('showTree')
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
668
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
669
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
670
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
671 def getProjectWithId(self,id):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
672 fields=self.getProjectFields('xdata_05')
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
673 for field in fields:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
674 if field[1]==id:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
675 return field[0]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
676
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
677 return None
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
678
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
679
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
680
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
681 def reindexCatalogs(self,RESPONSE=None):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
682 """reindex members and project catalog"""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
683
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
684
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
685 try:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
686
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
687 self.ProjectCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
688 logger("MPIWG Root (reindexCatalog: projects)",logging.INFO,"DONE")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
689 except:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
690 logger("MPIWG Root (reindexCatalog: projects)",logging.WARNING," %s %s"%sys.exc_info()[:2])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
691
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
692 try:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
693
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
694 self.MembersCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
695 logger("MPIWG Root (reindexCatalog: members)",logging.INFO,"DONE")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
696 except:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
697 logger("MPIWG Root (reindexCatalog: members)",logging.WARNING," %s %s"%sys.exc_info()[:2])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
698
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
699
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
700 #
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
701 # try:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
702 #
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
703 # self.fulltextProjectsMembers.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
704 # logger("MPIWG Root (reindexCatalog: fulltextProjectsMembers)",logging.INFO,"DONE")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
705 # except:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
706 # logger("MPIWG Root (reindexCatalog: fulltextProjectsMembers)",logging.WARNING," %s %s"%sys.exc_info()[:2])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
707 #
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
708 #
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
709 #
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
710 #
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
711
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
712
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
713 if RESPONSE:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
714 RESPONSE.redirect('manage_main')
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
715
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
716
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
717
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
718 def getProjectsByFieldContent(self,fieldName,fieldContentsEntry, date=None):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
719 """gib alle Projekte aus mit Value von field mit fieldName enthaelt ein Element der Liste fieldContents"""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
720 def sort(x,y):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
721 return cmp(x.WEB_title[0],y.WEB_title[0])
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
722
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
723 if type(fieldContentsEntry) is StringType:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
724 fieldContentsTmp=[fieldContentsEntry]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
725 else:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
726 fieldContentsTmp=fieldContentsEntry
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
727
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
728 fieldContents=[]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
729 for x in fieldContentsTmp:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
730 fieldContents.append(" AND ".join(x.split()))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
731 projects=self.ProjectCatalog({fieldName:string.join(fieldContents,' AND')})
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
732 #print projects
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
733 #ret=[x for x in projects]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
734 ret=[]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
735 for x in projects:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
736 obj=x.getObject()
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
737 obj=obj.getActualVersion(date)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
738 if obj and (not getattr(obj,'invisible',None)):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
739 #if not (x in ret):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
740 ret.append(x)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
741
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
742 ret.sort(sort)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
743 return ret
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
744
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
745
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
746 def getProjectFields(self,fieldName,date=None,folder=None,sort=None):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
747 """getListofFieldNames"""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
748 ret=[]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
749
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
750 objects=self.ZopeFind(self.projects,obj_metatypes=['MPIWGProject'],search_sub=0)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
751
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
752
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
753 for object in objects:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
754 obj=object[1]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
755 obj=obj.getActualVersion(date)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
756 if obj and (not getattr(obj,'invisible',None)):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
757 if fieldName=="WEB_title_or_short":
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
758
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
759 if len(obj.getContent('xdata_07'))<3: # hack weil z.Z. manchmal noch ein Trennzeichen ; oder , im Feld statt leer
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
760 fieldNameTmp="WEB_title"
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
761 else:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
762 fieldNameTmp="xdata_07"
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
763 else:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
764 fieldNameTmp=fieldName
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
765
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
766 ret.append((obj,obj.getContent(fieldNameTmp)))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
767
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
768
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
769 if sort=="int":
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
770 ret.sort(sortI)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
771 elif sort=="stopWords":
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
772
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
773 ret.sort(sortStopWords(self))
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
774
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
775 else:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
776 ret.sort(sortF)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
777
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
778 return ret
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
779
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
780 def showNewProjects(self):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
781 projects=[]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
782 for objs in self.getProjectFields('WEB_title_or_short'): # Get all Projets
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
783 if objs[0].xdata_05 and (objs[0].xdata_05[0] == ""):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
784
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
785 projects.append(objs)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
786
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
787 return projects
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
788
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
789 def generateUrlProject(self,url,project=None):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
790 """erzeuge aus absoluter url, relative des Projektes"""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
791 if project:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
792 splitted=url.split("/")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
793 length=len(splitted)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
794 short=splitted[length-2:length]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
795
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
796 base=self.REQUEST['URL3']+"/"+"/".join(short)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
797
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
798 else:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
799 findPart=url.find("/projects/")
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
800 base=self.REQUEST['URL1']+"/"+url[findPart:]
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
801
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
802
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
803 return base
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
804
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
805
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
806 def versionHeaderEN(self):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
807 """version header text"""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
808
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
809 date= self.REQUEST.get('date',None)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
810 if date:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
811 txt="""<h2>This pages shows the project which existed at %s</h2>"""%str(date)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
812 return txt
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
813 return ""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
814
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
815 def versionHeaderDE(self):
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
816 """version header text"""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
817 date= self.REQUEST.get('date',None)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
818 if date:
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
819 txt="""<h2>Auf dieser Seite finden Sie die Projekte mit Stand vom %s</h2>"""%str(date)
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
820 return ""
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
821
d456fe185649 more work on projects. more cleanup.
casties
parents: 50
diff changeset
822
52
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
823 def getContexts(self,childs=None,parents=None,depth=None,date=None,onlyActive=True):
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
824 """childs alle childs, alle parents"""
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
825 ret=[]
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
826
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
827 if parents:
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
828 pnums=parents.split(".")
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
829 while len(pnums) > 1:
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
830 pnums.pop()
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
831 parentId=string.join(pnums,".")
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
832
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
833 for project in self.getProjectFields('xdata_05',sort='int',date=date):
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
834 if project[1]==parentId:
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
835 ret.append(project)
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
836
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
837 if (depth is not None) and (len(ret) >= depth):
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
838 break
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
839
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
840 if childs:
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
841 for project in self.getProjectFields('xdata_05',sort='int',date=date):
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
842 searchStr=childs+"(\..*)"
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
843
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
844 if (onlyActive and project[0].isActiveProject()) or (not onlyActive):
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
845 if re.match(searchStr,project[1]):
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
846
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
847 if depth:
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
848
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
849 if int(depth)>=len(project[1].split("."))-len(childs.split(".")):
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
850
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
851 ret.append(project)
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
852 else:
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
853 ret.append(project)
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
854
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
855 #logging.debug("getContexts: childs=%s parents=%s depth=%s => %s"%(childs,parents,depth,repr(ret)))
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
856
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
857 return ret
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
858
60
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
859 def getAttribute(self, field):
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
860 """get attrbiute"""
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
861 return getattr(self, field)
dc41deabc8f8 more work on projects. more cleanup.
casties
parents: 52
diff changeset
862
52
1ed79b33200c more work on projects and cleanup.
casties
parents: 51
diff changeset
863
65
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
864
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
865
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
866 def redirectIndex_html(self,request):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
867 #return request['URL1']+'/index_html'
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
868
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
869 return urllib.urlopen(request['URL1']+'/index_html').read()
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
870
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
871
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
872 def formatBibliography(self,here,found):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
873 """format"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
874 return formatBibliography(here,found)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
875
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
876 def getValue(self,fieldStr):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
877 """Inhalt des Feldes"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
878
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
879 if type(fieldStr)==StringType:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
880 field=fieldStr
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
881 else:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
882 field=fieldStr[0]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
883 try:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
884 if field[len(field)-1]==";":
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
885 field=field[0:len(field)-1]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
886 except:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
887
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
888 """nothing"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
889 field=re.sub(r';([^\s])','; \g<1>',field)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
890 return field.encode('utf-8')
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
891
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
892
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
893
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
894 def sortedNames(self,list):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
895 """sort names"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
896
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
897 def sortLastName(x_c,y_c):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
898 try:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
899 x=urllib.unquote(x_c).encode('utf-8','ignore')
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
900 except:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
901 x=urllib.unquote(x_c)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
902
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
903 try:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
904 y=urllib.unquote(y_c).encode('utf-8','ignore')
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
905 except:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
906 x=urllib.unquote(y_c)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
907
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
908
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
909
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
910 try:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
911 last_x=x.split()[len(x.split())-1]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
912 last_y=y.split()[len(y.split())-1]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
913
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
914 except:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
915
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
916 last_x=""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
917 last_y=""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
918
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
919
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
920
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
921 if last_x<last_y:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
922 return 1
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
923 elif last_x>last_y:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
924 return -1
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
925 else:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
926 return 0
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
927
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
928 list.sort(sortLastName)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
929 list.reverse()
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
930
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
931 return list
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
932
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
933 def createOrUpdateId_raw(self):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
934 """create sequence to create ids for bibliography"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
935 debug=None
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
936 #suche groesste existierende id
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
937 founds=self.ZSQLQuery("select id from bibliography")
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
938
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
939 if founds:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
940 ids=[int(x.id[1:]) for x in founds]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
941 maximum=max(ids)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
942
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
943 id_raw=self.ZSQLQuery("select nextval('id_raw')",debug=debug)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
944
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
945 if id_raw:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
946 self.ZSQLQuery("drop sequence id_raw",debug=debug)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
947
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
948 self.ZSQLQuery("create sequence id_raw start %i"%(maximum+1),debug=debug)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
949
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
950
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
951 def queryLink(self,link):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
952 """append querystring to the link"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
953 return "%s?%s"%(link,self.REQUEST.get('QUERY_STRING',''))
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
954
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
955 def getKategory(self,url):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
956 """kategorie"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
957 splitted=url.split("/")
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
958 return splitted[4]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
959
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
960 def isType(self,object,meta_type):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
961 """teste ob ein object vom meta_type ist."""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
962 return (object.meta_type==meta_type)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
963
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
964
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
965 # TODO: remove
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
966 def replaceNotEmpty(self,format,field):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
967 """replace not empty"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
968 if field and (not field.lstrip()==''):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
969 return format%field
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
970 #return self.decode(format%field)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
971 else:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
972 return ""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
973
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
974
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
975 def urlQuote(self,str):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
976 """quote"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
977 return urllib.quote(str)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
978
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
979 def urlUnQuote(self,str):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
980 """quote"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
981 return urllib.unquote(str)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
982
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
983 def updateInstitutsbiliography(self):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
984 """update the Institutsbibliogrpahy"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
985 self.upDateSQL('personalwww.xml')
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
986 return "<html><body>DONE</body></html>"
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
987
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
988
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
989
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
990
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
991
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
992
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
993 def getAllMembers(self):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
994 #ret=[]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
995
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
996 def sorter(x,y):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
997 return cmp(x[0].lower(),y[0].lower())
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
998
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
999 results=self.MembersCatalog({'isPublished':True})
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1000
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1001 ret=[(unicodify(", ".join([proj.lastName, proj.firstName])), proj.getKey) for proj in results]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1002
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1003 ret.sort(sorter)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1004 return ret
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1005
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1006
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1007 def printAllMembers(self):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1008 """print"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1009 members=self.getAllMembers()
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1010 ret=""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1011 for x in members:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1012 ret+="<p>%s</p>"%x
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1013 return ret
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1014
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1015
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1016 def makeList(self,entry):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1017 """makes a list out of one entry or repeat a list"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1018 if type(entry) is StringType:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1019 return [entry]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1020 else:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1021 return entry
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1022
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1023 def getTreeRSS(self,dep=None,date=None,onlyActive=1,onlyArchived=0):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1024 """generateTree"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1025 rss="""<?xml version="1.0" encoding="utf-8"?>
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1026 <rss version="2.0">
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1027 <channel>"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1028
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1029 for obj in self.getTree(dep, date, onlyActive, onlyArchived):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1030 linkStr="""<link>http://www.mpiwg-berlin.mpg.de/en/research/projects/%s</link>"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1031 rss+="""<item>"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1032 rss+=linkStr%obj[3].getId()
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1033 rss+="""</item>"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1034 if hasattr(obj[3],'publicationList'):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1035 rss+="""<item>"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1036 rss+=linkStr%(obj[3].getId()+"/publicationList");
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1037 rss+="""</item>"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1038 rss+="""</channel>
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1039 </rss>"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1040
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1041 return rss
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1042
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1043
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1044 def getRelativeUrlFromPerson(self,list):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1045 """get urls to person list"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1046 ret=[]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1047 persons=list.split(";")
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1048 for person in persons:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1049
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1050 if len(person)>1: #nicht nur Trennzeichen
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1051 splitted=person.split(",")
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1052 if len(splitted)==1:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1053 splitted=person.split(" ")
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1054 splittedNew=[re.sub(r'\s(.*)','$1',split) for split in splitted]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1055 if splittedNew[0]=='':
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1056 del splittedNew[0]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1057 search=string.join(splittedNew,' AND ')
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1058
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1059 if not search=='':
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1060
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1061 try:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1062 proj=self.MembersCatalog({'title':search})
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1063 except:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1064 proj=None
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1065
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1066 if proj:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1067 #ret.append("<a href=%s >%s</a>"%(proj[0].absolute_url,person.encode('utf-8')))
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1068 ret.append("<a href=%s >%s</a>"%('members/'+proj[0].id+'/index.html',person))
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1069 else:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1070 #ret.append("%s"%person.encode('utf-8'))
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1071 ret.append("%s"%person)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1072 return string.join(ret,";")
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1073
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1074 def getMemberIdFromKey(self,key):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1075 """gibt die ensprechende id im members Ordner zum key"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1076
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1077 if key=="":
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1078 return ""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1079 try:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1080 key=utf8ify(key)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1081 catalogged=self.MembersCatalog({'getKey':key})
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1082 if len(catalogged)==0:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1083 return ""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1084 else:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1085 return catalogged[0].getObject().getId()
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1086
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1087 except:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1088 return ""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1089
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1090 def subNavStatic(self,obj):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1091 """subnav" von self"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1092 subs=self.ZopeFind(obj,obj_metatypes=['MPIWGTemplate','MPIWGLink'])
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1093 subret=[]
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1094
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1095 for x in subs:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1096 if not(x[1].title==""):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1097 subret.append(x)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1098 subret.sort(sortWeight)
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1099 return subret
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1100
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1101
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1102 def isActive(self,name):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1103 """teste ob subnavigation aktiv"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1104 for part in self.REQUEST['URL'].split("/"):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1105 if part==name:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1106 return True
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1107 return False
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1108
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1109
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1110 def getSectionStyle(self, name, style=""):
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1111 """returns a string with the given style + '-sel' if the current section == name"""
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1112 if self.getSection() == name:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1113 return style + '-sel'
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1114 else:
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1115 return style
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1116
63184d71c014 lots of cleaning up.
casties
parents: 60
diff changeset
1117