update meetings on CRI and CRICOM changes (#1225)

This commit is contained in:
Frédéric Péters 2012-01-18 14:26:02 +01:00
parent f4c476e716
commit 14f325d6ca
1 changed files with 38 additions and 0 deletions

View File

@ -938,6 +938,44 @@ class SyncFromPcfDbView(BrowserView):
notify(ObjectModifiedEvent(object))
self.publish(object)
if doctype in ('CRI', 'CRICOM'):
# we eventually have a meeting to update
meeting_cursor = self.db_connection.cursor()
if doctype == 'CRICOM':
nocric = object.no.split('-')[0]
try:
nocric, com_code, nocricom = re.match(r'(\d+)-(.*)(\d+)', object.no).groups()
except AttributeError:
# make sure we do not get anything afterwards
nocric, com_code, nocricom = '999', 'XXX', '999'
meeting_query = meeting_cursor.mogrify(
'''SELECT t_reunion.id FROM t_reunion
LEFT JOIN t_com ON (t_reunion.comid = t_com.id)
WHERE t_reunion.sess = %s
AND t_reunion.type = 'CO'
AND nocric = %s
AND nocricom = %s
AND t_com.code = %s''',
(sess, nocric, nocricom, com_code))
else:
meeting_query = meeting_cursor.mogrify(
'''SELECT t_reunion.id FROM t_reunion
WHERE sess = %s
AND type = 'SE'
AND nocri = %s''',
(sess, object.no))
meeting_cursor.execute(meeting_query)
row = meeting_cursor.fetchone()
if row:
meeting_id = row[0]
print ' going to update meeting:', meeting_id
if hasattr(self.parlevents_folder, meeting_id):
meeting = getattr(self.parlevents_folder, meeting_id)
if meeting.cri is None:
doc_intid = self.intids.getId(object)
meeting.cri = RelationValue(doc_intid)
meeting_cursor.close()
if count % 100 == 0:
transaction.commit()