def setUpClass(cls): cls.manager = get_db_manager('http://localhost:5984/', 'mangrove-test') _delete_db_and_remove_db_manager(cls.manager) cls.manager = get_db_manager('http://localhost:5984/', 'mangrove-test') initializer._create_views(cls.manager) cls.org_id = 'SLX364903' cls._prepare_sms_data_senders() cls.test_ds_id = get_by_short_code_include_voided( cls.manager, "test", REPORTER_ENTITY_TYPE).id deleted_ds = get_by_short_code_include_voided(cls.manager, "del1", REPORTER_ENTITY_TYPE) deleted_ds.void() cls.deleted_ds_id = deleted_ds.id
def migrate_entity(manager, form_model, datarecord_doc, data_to_restore): submission_log_doc = manager.database.query( map_submission_log_datarecord_id, key=[datarecord_doc['value']['_id'], form_model.revision]) if len(submission_log_doc.rows): submission_log = get_instance_from_doc( manager, submission_log_doc.rows[0]['value'], classname=Submission, documentclassname=SubmissionLogDocument) entity_uid = datarecord_doc['value']['data']['short_code']['value'] entity = get_by_short_code_include_voided(manager, entity_uid, form_model.entity_type) cleaned_data, errors = form_model.validate_submission( values=submission_log.values) if len(errors): logging.info('Error on submission: %s' % submission_log.id) return data = [(form_model._get_field_by_code(code).name, cleaned_data.get(code), form_model._get_field_by_code(code).ddtype) for code in data_to_restore] entity.update_latest_data(data) entity.save()
def delete_datasender_for_trial_mode(manager, all_ids, entity_type): for entity_id in all_ids: entity_to_be_deleted = get_by_short_code_include_voided( manager, entity_id, [entity_type]) DataSenderOnTrialAccount.objects.get( mobile_number=entity_to_be_deleted.value( MOBILE_NUMBER_FIELD)).delete()
def setUpClass(cls): EntityDocument.registered_functions = [] database_name = uniq('mangrove-test') cls.manager = get_db_manager('http://localhost:5984/', database_name) _delete_db_and_remove_db_manager(cls.manager) cls.manager = get_db_manager('http://localhost:5984/', database_name) initializer._create_views(cls.manager) cls.org_id = 'SLX364903' cls._prepare_sms_data_senders() cls.test_ds_id = get_by_short_code_include_voided( cls.manager, "test", REPORTER_ENTITY_TYPE).id deleted_ds = get_by_short_code_include_voided(cls.manager, "del1", REPORTER_ENTITY_TYPE) deleted_ds.void() cls.deleted_ds_id = deleted_ds.id
def lookup_entity_name(dbm, id, entity_type): try: if id: return get_by_short_code_include_voided(dbm, id, entity_type).value("name") except DataObjectNotFound: pass return " "
def add_email_data_to_entity_document(manager, short_code, data, logger): datasender = get_by_short_code_include_voided(manager, short_code, REPORTER_ENTITY_TYPE) if "email" not in datasender.data.keys(): datasender.update_latest_data([data]) logger.info('migrated: short_code: %s'%short_code) else: logger.info('Already migrated')
def register_datasender(dbm): define_type(dbm, ["reporter"]) TestReporter.register(dbm, data=[(MOBILE_NUMBER_FIELD, "1234567890"), (NAME_FIELD, "B")], location=None, source="sms", short_code="rep2") return get_by_short_code_include_voided(dbm, "rep2", REPORTER_ENTITY_TYPE).id
def test_should_return_data_sender_information_send_from_web(self): beany_tester_id = get_by_short_code_include_voided( TestDataSenderHelper.manager, "rep1", REPORTER_ENTITY_TYPE).id survey_response = SurveyResponse(TestDataSenderHelper.manager, TransportInfo( "web", "*****@*****.**", "destination"), owner_uid=beany_tester_id) data_sender = get_data_sender(TestDataSenderHelper.manager, survey_response) self.assertEqual(("Beany", "rep1", data_sender[2]), data_sender)
def _generate_short_code(dbm, entity_type): current_count = get_entity_count_for_type(dbm, entity_type.lower()) entity_type_prefix = entity_type.lower().replace(" ", "")[:3] + "%s" offset = 1 while True: short_code = entity_type_prefix % (current_count + offset) try: entity = get_by_short_code_include_voided(dbm, short_code, [entity_type]) if entity: offset += 1 except DataObjectNotFound as ignore: return short_code
def create_default_reporter(manager): try: entity = get_by_short_code_include_voided(manager, REPORTER_SHORT_CODE, REPORTER_ENTITY_TYPE) entity.delete() except DataObjectNotFound: pass entity = create_contact(dbm=manager, short_code=REPORTER_SHORT_CODE, location=DEFAULT_LOCATION) data = [(MOBILE_NUMBER_FIELD, TEST_REPORTER_MOBILE_NUMBER), (NAME_FIELD, 'TEST')] entity.add_data(data=data)
def lookup_entity(dbm, key, entity_type): try: if key: data_dict = {} entity_type_info = get_entity_type_info(entity_type, dbm) names_to_codes_map = {} for name, code in zip(entity_type_info['names'], entity_type_info['codes']): names_to_codes_map[name] = code data = get_by_short_code_include_voided(dbm, key, entity_type).data_value() for key, value in data.iteritems(): if names_to_codes_map.get(key): data_dict[names_to_codes_map[key]] = value['value'] return data_dict except DataObjectNotFound: pass return {'q2': " "}
def _delete_user_entry(profiles): user_profile = profiles[0] profile_reporter_id = user_profile.reporter_id if profile_reporter_id.lower() == profile_reporter_id: print "Not deleting user since the reporter id is already lowercase." else: entity_to_be_deleted = get_by_short_code_include_voided( dbm, profile_reporter_id.lower(), ['reporter']) print "User void status:%s" % entity_to_be_deleted.is_void() if entity_to_be_deleted.is_void(): print "Deleting user." user_profile.user.delete() if organization.in_trial_mode: delete_datasender_for_trial_mode(dbm, [profile_reporter_id.lower()], 'reporter') else: print "Not deleting user since it is not soft deleted."
def register_datasender(manager): phone_number_type = create_data_dict(manager, name='Telephone Number', slug='telephone_number', primitive_type='string') first_name_type = create_data_dict(manager, name='First Name', slug='first_name', primitive_type='string') coordinates = { "type": "Point", "coordinates": [-21.0399440737, 45.2363669927] } location = [u'Madagascar', u'Menabe', u'Mahabo', u'Beronono'] register(manager, REPORTER_ENTITY_TYPE, [(MOBILE_NUMBER_FIELD, "1234567890", phone_number_type), (NAME_FIELD, "Tester 150411", first_name_type)], location, "rep276", coordinates) return get_by_short_code_include_voided(manager, "rep276", REPORTER_ENTITY_TYPE).id
def create_default_reporter(manager): try: entity = get_by_short_code_include_voided(manager, REPORTER_SHORT_CODE, REPORTER_ENTITY_TYPE) entity.delete() except DataObjectNotFound: pass entity = create_entity(dbm=manager, entity_type=REPORTER_ENTITY_TYPE, short_code=REPORTER_SHORT_CODE, location=DEFAULT_LOCATION) mobile_number_type = get_or_create_data_dict(manager, name='Mobile Number Type', slug='mobile_number', primitive_type='string') name_type = get_or_create_data_dict(manager, name='Name', slug='name', primitive_type='string') data = [(MOBILE_NUMBER_FIELD, TEST_REPORTER_MOBILE_NUMBER, mobile_number_type), (NAME_FIELD, 'TEST', name_type)] entity.add_data(data=data)
def check_if_subject_exists(dbm, subject_short_code, subject_type): try: get_by_short_code_include_voided(dbm, subject_short_code, subject_type) return True except DataObjectNotFound: return False
def get_data_sender_by_reporter_id(dbm, reporter_id): return get_by_short_code_include_voided(dbm, reporter_id, REPORTER_ENTITY_TYPE)