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 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]