mangroveorg/datawinners

View on GitHub
support/2.migration_to_find_advanced_questionnaire_usage.py

Summary

Maintainability
C
1 day
Test Coverage
import logging
from datawinners.main.couchdb.utils import all_db_names
from datawinners.main.database import get_db_manager
from migration.couch.utils import migrate, mark_as_completed


def advanced_questionnaire_usage(db_name):
    dbm = get_db_manager(db_name)
    logger = logging.getLogger(db_name)
    try:
        questionnaires = dbm.load_all_rows_in_view('all_projects')
        for questionnaire in questionnaires:
            if 'xform' in questionnaire['value'] and questionnaire['value']['xform']:
                questionnaire_id = questionnaire['value']['_id']
                rows = dbm.load_all_rows_in_view('surveyresponse', reduce=True, start_key=[questionnaire_id],
                                                 end_key=[questionnaire_id, {}])
                if rows and len(rows) >= 1 and 'count' in rows[0]['value']:
                    logger.error("Questionnaire: %s Submission count : %d" % (questionnaire_id, rows[0]['value']['count']))

    except Exception:
        logger.exception()
    mark_as_completed(db_name)


migrate(all_db_names(), advanced_questionnaire_usage, version=(14, 0, 2), threads=6)