Beispiel #1
0
  def process(self):
    self.processing_started_at = datetime.datetime.utcnow()
    self.save()

    voters = list(self.itervoters())
    self.num_voters = len(voters)
    random.shuffle(voters)

    for voter in voters:
      if voter['voter_type'] == 'password':
          # does voter for this user already exist
          existing_voter = Voter.get_by_election_and_voter_id(self.election, voter['voter_id'])
          if existing_voter:
              continue
          # create the voter
          voter_uuid = str(uuid.uuid4())
          new_voter = Voter(uuid=voter_uuid, user = None, voter_login_id = voter['voter_id'],
              voter_name = voter['name'], voter_email = voter['email'], election = self.election)
          new_voter.generate_password()
          election=self.election
          if election.use_voter_aliases:
              utils.lock_row(Election, election.id)
              alias_num = election.last_alias_num + 1
              new_voter.alias = "V%s" % alias_num
          new_voter.save()
      else:
          user, _ = User.objects.get_or_create(user_type=voter['voter_type'], user_id=voter['voter_id'], defaults = {'name': voter['voter_id'], 'info': {}, 'token': None})
          existing_voter = Voter.get_by_election_and_user(self.election, user)
          if not existing_voter:
              Voter.register_user_in_election(user, self.election)

    self.processing_finished_at = datetime.datetime.utcnow()
    self.save()

    return self.num_voters
Beispiel #2
0
  def register_user_in_election(cls, user, election):
    voter_uuid = str(uuid.uuid4())
    voter = Voter(uuid= voter_uuid, user = user, election = election)

    # do we need to generate an alias?
    if election.use_voter_aliases:
      heliosutils.lock_row(Election, election.id)
      alias_num = election.last_alias_num + 1
      voter.alias = "V%s" % alias_num

    voter.save()
    return voter
Beispiel #3
0
  def register_user_in_election(cls, user, election):
    voter_uuid = str(uuid.uuid4())
    voter = Voter(uuid= voter_uuid, user = user, election = election)

    # do we need to generate an alias?
    if election.use_voter_aliases:
      heliosutils.lock_row(Election, election.id)
      alias_num = election.last_alias_num + 1
      voter.alias = "V%s" % alias_num

    voter.save()
    return voter
Beispiel #4
0
    def register_user_in_election(cls, user, election):
        voter_uuid = str(uuid.uuid4())
        voter = Voter(uuid=voter_uuid, user=user, election=election)
        
        # do we need to generate an alias?
        if election.use_voter_aliases:
            heliosutils.lock_row(Election, election.id)
            alias_num = election.last_alias_num + 1
            voter.alias = "V%s" % alias_num

        voter.save()
        # TODO: fix with proper data
        qr_code_content = "content"
        qr_code_base64 = heliosutils.create_qr_code_in_base64(qr_code_content)

        QrCode.objects.create(
            voter=voter,
            image_base64=qr_code_base64
        )
        return voter