def process_csv_file(election, f): reader = unicode_csv_reader(f) num_voters = 0 for voter in reader: # bad line if len(voter) < 1: continue num_voters += 1 voter_id = voter[0] name = voter_id email = voter_id if len(voter) > 1: email = voter[1] if len(voter) > 2: name = voter[2] # create the user user = User.update_or_create(user_type='password', user_id=voter_id, info={'password': helios_utils.random_string(10), 'email': email, 'name': name}) user.save() # does voter for this user already exist voter = Voter.get_by_election_and_user(election, user) # create the voter if not voter: voter_uuid = str(uuid.uuid1()) voter = Voter(uuid=voter_uuid, voter_type='password', voter_id=voter_id, name=name, election=election) voter.save() return num_voters
def _get_demo_user(email_address): password = email_address try: user = User.objects.get(name=email_address) except User.DoesNotExist: pass else: if user.user_id.startswith("demo_"): user.info = { 'name': email_address, 'password': make_password(password) } user.save() return user, password try: inst = Institution.objects.get(name="DEMO") except Institution.DoesNotExist: return None, '' tries = 10 while tries > 0: user_id = "demo_%d" % randint(1000, 1000000) try: User.objects.get(user_id=user_id) except User.DoesNotExist: break tries -= 1 if tries <= 0: return None, '' demogroup = None try: demogroup = UserGroup.objects.get(name="demo") except UserGroup.DoesNotExist: pass newuser = User() newuser.user_type = "password" newuser.admin_p = True newuser.info = {'name': email_address, 'password': make_password(password)} newuser.name = email_address newuser.user_id = user_id newuser.superadmin_p = False newuser.institution = inst newuser.ecounting_account = False newuser.save() if demogroup: newuser.user_groups.add(demogroup) newuser.save() return newuser, password
def _get_demo_user(email_address): password = email_address try: user = User.objects.get(name=email_address) except User.DoesNotExist: pass else: if user.user_id.startswith("demo_"): user.info = {'name': email_address, 'password': make_password(password)} user.save() return user, password try: inst = Institution.objects.get(name="DEMO") except Institution.DoesNotExist: return None, '' tries = 10 while tries > 0: user_id = "demo_%d" % randint(1000, 1000000) try: User.objects.get(user_id=user_id) except User.DoesNotExist: break if tries <= 0: return None, '' newuser = User() newuser.user_type = "password" newuser.admin_p = True newuser.info = {'name': email_address, 'password': make_password(password)} newuser.name = email_address newuser.user_id = user_id newuser.superadmin_p = False newuser.institution = inst newuser.ecounting_account = False newuser.save() return newuser, password