コード例 #1
0
 def handle(self, *args, **options):
     for couch_user in CouchUser.all():
         if couch_user.email and any(char.isupper()
                                     for char in couch_user.email):
             print couch_user.email
             couch_user.email = couch_user.email.lower()
             couch_user.save()
コード例 #2
0
ファイル: utils.py プロジェクト: piyushmadan/commcare-hq
def handle_changed_mailchimp_email(user, old_email, new_email, list_id):
    def is_user_subscribed_with_email(couch_user):
        return (couch_user.subscribed_to_commcare_users
                and couch_user.email == old_email)
    users_subscribed_with_old_email = [
        other_user
        for other_user in CouchUser.all()
        if is_user_subscribed_with_email(other_user)
    ]
    if (len(users_subscribed_with_old_email) == 1 and
            users_subscribed_with_old_email[0].get_id == user.get_id):
        try:
            unsubscribe_user_from_mailchimp_list(
                user,
                list_id,
                email=old_email,
            )
        except mailchimp.Error as e:
            logging.error(e.message)
    try:
        subscribe_user_to_mailchimp_list(
            user,
            list_id,
            email=new_email,
        )
    except mailchimp.ListAlreadySubscribedError:
        pass
    except mailchimp.Error as e:
        logging.error(e.message)
コード例 #3
0
ファイル: phone_users.py プロジェクト: mchampanis/core-hq
 def setUp(self):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     self.username = '******'
     self.password = '******'
     self.domain = 'mockdomain'
     self.couch_user = WebUser.create(self.domain, self.username, self.password)
     self.couch_user.save()
コード例 #4
0
ファイル: phone_users.py プロジェクト: tsinkala/commcare-hq
 def setUp(self):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     self.username = '******'
     self.password = '******'
     self.domain = 'mockdomain'
     self.couch_user = WebUser.create(self.domain, self.username, self.password)
     self.couch_user.language = 'en'
     self.couch_user.save()
コード例 #5
0
ファイル: update.py プロジェクト: thedevelopermw/commcare-hq
 def setUp(self):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     User.objects.all().delete()
     self.username = "******"
     password = "******"
     self.domain = 'my-domain'
     self.couch_user = CommCareUser.create(self.domain, self.username, password)
     self.couch_user.save()
コード例 #6
0
 def handle(self, *args, **options):
     run_fix = options.get(RUN_FIX, False)
     for user in CouchUser.all():
         doc_json = CouchUser.get_db().get(user.get_id)
         if doc_json.get("doc_type", None) == "WebUser" and (
             user.created_on is not None and user.created_on >= datetime.datetime(*[int(_) for _ in args[0:3]])
         ):
             if user.email_opt_out:
                 if run_fix:
                     user.email_opt_out = False
                     user.save()
                     print("fixed %s, created on %s" % (user.get_id, user.created_on))
                 else:
                     print("should fix %s, created on %s" % (user.get_id, user.created_on))
コード例 #7
0
ファイル: create.py プロジェクト: LifeCoaching/commcare-hq
 def setUp(self):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     self.xform = XFormInstance()
     self.xform.form = {}
     self.xform.form['username'] = self.username     = '******'
     self.xform.form['password'] = self.password     = '******'
     self.xform.form['uuid']     = self.uuid         = 'BXPKZLP49P3DDTJH3W0BRM2HV'
     self.xform.form['date']     = self.date_string  = '2010-03-23'
     self.xform.form['registering_phone_id'] = self.registering_device_id = '67QQ86GVH8CCDNSCL0VQVKF7A'
     self.xform.form['user_data'] = {'data': [{'@key': 'user_type', '#text': 'normal'}]}
     self.xform.domain = self.domain = 'mock'
     self.xform.xmlns = USER_REGISTRATION_XMLNS
コード例 #8
0
 def handle(self, *args, **options):
     run_fix = options.get(RUN_FIX, False)
     for user in CouchUser.all():
         doc_json = CouchUser.get_db().get(user.get_id)
         if (doc_json.get('doc_type', None) == 'WebUser'
                 and (user.created_on is not None and user.created_on >=
                      datetime.datetime(*[int(_) for _ in args[0:3]]))):
             if user.email_opt_out:
                 if run_fix:
                     user.email_opt_out = False
                     user.save()
                     print('fixed %s, created on %s' %
                           (user.get_id, user.created_on))
                 else:
                     print('should fix %s, created on %s' %
                           (user.get_id, user.created_on))
コード例 #9
0
ファイル: create.py プロジェクト: tsinkala/commcare-hq
 def setUp(self):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     self.xform = XFormInstance()
     self.xform.form = {}
     self.xform.form['username'] = self.username = '******'
     self.xform.form['password'] = self.password = '******'
     self.xform.form['uuid'] = self.uuid = 'BXPKZLP49P3DDTJH3W0BRM2HV'
     self.xform.form['date'] = self.date_string = '2010-03-23'
     self.xform.form[
         'registering_phone_id'] = self.registering_device_id = '67QQ86GVH8CCDNSCL0VQVKF7A'
     self.xform.form['user_data'] = {
         'data': [{
             '@key': 'user_type',
             '#text': 'normal'
         }]
     }
     self.xform.domain = self.domain = 'mock'
     self.xform.xmlns = USER_REGISTRATION_XMLNS
コード例 #10
0
def handle_changed_mailchimp_email(user, old_email, new_email, list_id):
    def is_user_subscribed_with_email(couch_user):
        return (couch_user.subscribed_to_commcare_users
                and couch_user.email == old_email)

    users_subscribed_with_old_email = [
        other_user for other_user in CouchUser.all()
        if is_user_subscribed_with_email(other_user)
    ]
    if (len(users_subscribed_with_old_email) == 1
            and users_subscribed_with_old_email[0].get_id == user.get_id):
        safe_unsubscribe_user_from_mailchimp_list(
            user,
            list_id,
            email=old_email,
        )
    safe_subscribe_user_to_mailchimp_list(
        user,
        list_id,
        email=new_email,
    )
コード例 #11
0
ファイル: utils.py プロジェクト: atinus/commcare-hq
def handle_changed_mailchimp_email(user, old_email, new_email, list_id):
    def is_user_subscribed_with_email(couch_user):
        return (couch_user.subscribed_to_commcare_users
                and couch_user.email == old_email)
    users_subscribed_with_old_email = [
        other_user
        for other_user in CouchUser.all()
        if is_user_subscribed_with_email(other_user)
    ]
    if (len(users_subscribed_with_old_email) == 1 and
            users_subscribed_with_old_email[0].get_id == user.get_id):
        safe_unsubscribe_user_from_mailchimp_list(
            user,
            list_id,
            email=old_email,
        )
    safe_subscribe_user_to_mailchimp_list(
        user,
        list_id,
        email=new_email,
    )
コード例 #12
0
 def _delete_everything(cls):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     delete_all_locations()
     UserFixtureStatus.objects.all().delete()
コード例 #13
0
ファイル: migrate_users.py プロジェクト: mchampanis/core-hq
    def handle(self, *args, **options):
        old_couch_users = old_couch_user_models.CouchUser.view('users/old_users', include_docs=True)
        print "Loaded all (old) CouchUser docs into memory."
        for old_couch_user in old_couch_users:
            try:
                couch_user = CouchUser.from_old_couch_user(old_couch_user)
                couch_user.old_couch_user_id = old_couch_user.get_id
                couch_user.save(force_update=True)
            except Exception as e:
                print "There was an error migrating CouchUser with _id %s: %s" % (
                    old_couch_user._id.encode('utf-8'),
                    str(e)
                )
            else:
                print "Migrated %s (%s)" % (couch_user.username.encode('utf-8'), couch_user.user_id.encode('utf-8'))

        print "Creating old => new user _id map"
        couch_users = CouchUser.all()
        id_map = {}
        for couch_user in couch_users:
            try:
                old_id = couch_user.old_couch_user_id
            except KeyError:
                pass
            else:
                id_map[old_id] = couch_user.user_id
            try:
                couch_user.save()
            except Exception as e:
                print 'Failed to save %s: %s' % (couch_user.user_id.encode('utf-8'), str(e))

        print "Cleaning up references..."

        print "* Group"
        group_ids = set()
        for group in Group.view('groups/by_user', keys=id_map.keys(), include_docs=True):
            if group._id in group_ids:
                continue
            for i, user_id in enumerate(group.users):
                if user_id in id_map:
                    group.users[i] = id_map[user_id]
            group.save()
            group_ids.add(group._id)

        print "* ReportNotification"
        notification_ids = set()
        for notification in ReportNotification.view('reports/user_notifications',
                                                    keys=id_map.keys(),
                                                    include_docs=True):
            if notification._id in notification_ids:
                continue
            for i, user_id in enumerate(notification.user_ids):
                if user_id in id_map:
                    notification.user_ids[i] = id_map[user_id]
            notification.save()
            notification_ids.add(notification._id)

        print "* MessageLog"
        messages = MessageLog.objects.all()
        count = 0
        for message in messages:
            if message.couch_recipient in id_map:
                message.couch_recipient = id_map[message.couch_recipient]
                count += 1
        print "    %s/%s changed (just in case you were curious)" % (count, messages.count())
コード例 #14
0
ファイル: test_bugs.py プロジェクト: johan--/commcare-hq
 def setUp(self):
     for user in CouchUser.all():
         user.delete()
     User.objects.all().delete()
コード例 #15
0
ファイル: fixture_status.py プロジェクト: ekush/commcare-hq
 def _delete_everything(self):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     User.objects.all().delete()
     UserFixtureStatus.objects.all().delete()
コード例 #16
0
 def handle(self, *args, **options):
     for couch_user in CouchUser.all():
         if couch_user.email and any(char.isupper() for char in couch_user.email):
             print couch_user.email
             couch_user.email = couch_user.email.lower()
             couch_user.save()
コード例 #17
0
 def setUp(self):
     for user in CouchUser.all():
         user.delete()
     User.objects.all().delete()
コード例 #18
0
ファイル: fixture_status.py プロジェクト: bazuzi/commcare-hq
 def _delete_everything(self):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     User.objects.all().delete()
     UserFixtureStatus.objects.all().delete()
コード例 #19
0
 def _delete_everything(cls):
     all_users = CouchUser.all()
     for user in all_users:
         user.delete()
     delete_all_locations()
     UserFixtureStatus.objects.all().delete()
コード例 #20
0
ファイル: utils.py プロジェクト: ekush/commcare-hq
 def tearDown(self):
     for user in CouchUser.all():
         user.delete()
     User.objects.all().delete()