def process_section(conn, curs, section, update): fields = filter_section_fields(update) if len(fields) > 0: update_section(curs, section['section_id'], **fields) if update.has_key('misc'): for misc in update['misc']: fetch_item_misc(curs, section['section_id'], field=misc.get('field', None), subsection=misc.get('subsection')) existing = curs.fetchone() if existing: delete_item_misc(curs, existing['item_misc_id']) insert_item_misc(curs, section['section_id'], **misc)
def handle_item(conn, section): curs = conn.cursor() try: fetch_item_detail(curs, section['section_id']) detail = curs.fetchone() if detail: del detail['item_details_id'] del detail['section_id'] section.update(detail) fetch_item_misc(curs, section['section_id']) item_misc = {} for misc in curs.fetchall(): subsection = item_misc.setdefault(misc['subsection'], {}) subsection[misc['field']] = misc['value'] if len(item_misc) > 0: section['misc'] = item_misc finally: curs.close()