0001-formdata-keep-link-from-evolution-objects-to-related.patch
wcs/formdata.py | ||
---|---|---|
135 | 135 |
comment = None |
136 | 136 |
parts = None |
137 | 137 | |
138 |
def __init__(self, formdata=None): |
|
139 |
self._formdata = formdata # formdata cache |
|
140 | ||
141 |
@property |
|
142 |
def formdata(self): |
|
143 |
return self._formdata |
|
144 | ||
138 | 145 |
def get_author_name(self): |
139 | 146 |
if self.who == '_submitter': |
140 | 147 |
return _('Original Submitter') |
... | ... | |
182 | 189 |
data['parts'] = parts |
183 | 190 |
return data |
184 | 191 | |
192 |
# don't pickle _formata cache |
|
193 |
def __getstate__(self): |
|
194 |
odict = self.__dict__.copy() |
|
195 |
if odict.has_key('_formdata'): |
|
196 |
del odict['_formdata'] |
|
197 |
return odict |
|
198 | ||
185 | 199 | |
186 | 200 |
class FormData(StorableObject): |
187 | 201 |
_names = 'XX' |
... | ... | |
231 | 245 |
changed = True |
232 | 246 |
if self.evolution: |
233 | 247 |
for evo in self.evolution: |
248 |
evo._formdata = self # link from evolution to formdata |
|
234 | 249 |
if evo.status and not evo.status.startswith('wf-'): |
235 | 250 |
evo.status = 'wf-%s' % evo.status |
236 | 251 |
changed = True |
... | ... | |
314 | 329 |
# we add the initial status to the history, this makes it more readable |
315 | 330 |
# afterwards (also this gets the (previous_status) code to work in all |
316 | 331 |
# cases) |
317 |
evo = Evolution() |
|
332 |
evo = Evolution(self)
|
|
318 | 333 |
evo.who = '_submitter' |
319 | 334 |
evo.time = self.receipt_time |
320 | 335 |
evo.status = self.status |
... | ... | |
469 | 484 |
previous_status = self.pop_previous_marked_status() |
470 | 485 |
assert previous_status, 'failed to compute previous status' |
471 | 486 |
status_id = previous_status.id |
472 |
evo = Evolution() |
|
487 |
evo = Evolution(self)
|
|
473 | 488 |
evo.time = time.localtime() |
474 | 489 |
evo.status = 'wf-%s' % status_id |
475 | 490 |
if not self.evolution: |
wcs/sql.py | ||
---|---|---|
1130 | 1130 |
row = cur.fetchone() |
1131 | 1131 |
if row is None: |
1132 | 1132 |
break |
1133 |
self._evolution.append(self._row2evo(row)) |
|
1133 |
self._evolution.append(self._row2evo(row, formdata=self))
|
|
1134 | 1134 |
conn.commit() |
1135 | 1135 |
cur.close() |
1136 | 1136 |
return self._evolution |
1137 | 1137 | |
1138 | 1138 |
@classmethod |
1139 |
def _row2evo(cls, row): |
|
1140 |
o = wcs.formdata.Evolution() |
|
1139 |
def _row2evo(cls, row, formdata):
|
|
1140 |
o = wcs.formdata.Evolution(formdata)
|
|
1141 | 1141 |
o._sql_id, o.who, o.status, o.time, o.comment = [str_encode(x) for x in tuple(row[:5])] |
1142 | 1142 |
if o.time: |
1143 | 1143 |
o.time = o.time.timetuple() |
... | ... | |
1179 | 1179 |
formdata = object_dict.get(formdata_id) |
1180 | 1180 |
if not formdata: |
1181 | 1181 |
continue |
1182 |
formdata._evolution.append(formdata._row2evo(row)) |
|
1182 |
formdata._evolution.append(formdata._row2evo(row, formdata))
|
|
1183 | 1183 | |
1184 | 1184 |
conn.commit() |
1185 | 1185 |
cur.close() |
1186 |
- |