def handle(self, domain, user_id, **options): form_accessor = FormAccessors(domain) form_ids = form_accessor.get_form_ids_for_user(user_id) print("Found %s forms for user" % len(form_ids)) response = input( "Are you sure you want to archive them? (yes to proceed)") if response == 'yes': with open("archived_forms_for_user_%s.txt" % user_id, 'wb') as log: for ids in chunked(with_progress_bar(form_ids), 100): ids = list([f for f in ids if f]) for form in form_accessor.get_forms(ids): log.write(form.form_id + '\n') form.archive()
def perform_resave_on_xforms(domain, start_date, end_date, no_input): _, _, xform_ids_missing_in_es, _ = compare_xforms(domain, 'XFormInstance', start_date, end_date) print("%s Ids found for xforms missing in ES." % len(xform_ids_missing_in_es)) if len(xform_ids_missing_in_es) < 1000: print(xform_ids_missing_in_es) if no_input is not True: ok = input("Type 'ok' to continue: ") if ok != "ok": print("No changes made") return form_accessor = FormAccessors(domain) for xform_ids in chunked(with_progress_bar(xform_ids_missing_in_es), 100): xforms = form_accessor.get_forms(list(xform_ids)) found_xform_ids = set() for xform in xforms: resave_form(domain, xform) found_xform_ids.add(xform.form_id) for xform_id in set(xform_ids) - found_xform_ids: print("form not found %s" % xform_id)
def _get_forms_to_archive(self): # ordered with latest form's id on top form_accessor = FormAccessors(self.domain) form_ids = form_accessor.get_form_ids_for_user(self.user_id) return [f for f in form_accessor.get_forms(form_ids) if f.is_normal]