def mass_annotate(new_query, result): if not new_query.has_key("annotate_inode"): result.heading("Error") result.para("You must select some inodes to annotate by checking their checkboxes") return if new_query.has_key("__submit__"): tag = new_query.get("annotate_text","Tag") category = new_query.get("annotate_category", "Note") if new_query.has_key("new_annotate_category"): category = new_query['new_annotate_category'] dbh = DB.DBO(case) ## First delete old annotations if present for inode_id in new_query.getarray("annotate_inode"): dbh.delete("annotate", where=DB.expand("inode_id=%r", inode_id)) ## Now insert new ones for inode_id in new_query.getarray("annotate_inode"): dbh.insert("annotate", inode_id = inode_id, note = tag, category = category, ) del query["annotate_inode"] query.set("annotate_text", tag) query.set("annotate_category", category) result.refresh(0, query, pane="parent_pane") fsfd = FileSystem.DBFS(case) new_query.default('annotate_text',query.get("annotate_text","Tag")) new_query.default("annotate_category", query.get("annotate_category","Note")) result.decoration='naked' result.heading("Set Annotation Text") result.start_form(new_query, pane='self') result.textarea("Annotation Text",'annotate_text') TableActions.selector_display(None, "Category", "annotate_category", result=result, table = 'annotate', field='category', case=case, default='Note') result.end_table() result.end_form() result.para("The following inodes will be annotated:") result.start_table(**{'class':'GeneralTable'}) for inode_id in new_query.getarray("annotate_inode"): path, inode, inode_id = fsfd.lookup(inode_id = inode_id) result.row(inode, path)