コード例 #1
0
ファイル: poll.py プロジェクト: sim0nx/voteX
  def deletePoll(self):
    if (not 'poll_id' in request.params):
      redirect(url(controller='poll', action='showAll'))

    try:
      poll = Session.query(Poll).filter(Poll.owner == self.uid).filter(Poll.id == request.params['poll_id']).one()
      Session.query(Vote).filter(Vote.poll_id == poll.id).delete()

      Session.delete(poll)
      Session.commit()
      session['flash'] = _('Poll successfully deleted')
      session.save()
    except Exception as e:
      print e
      session['flash'] = _('Failed to delete poll')
      session['flash_class'] = 'error'
      session.save()

    redirect(url(controller='poll', action='showAll'))
コード例 #2
0
ファイル: vote.py プロジェクト: sim0nx/voteX
  def doVote(self):
    if not 'vote_key' in request.params or request.params['vote_key'] == '' or\
      not 'vote' in request.params or request.params['vote'] == '':
      redirect(url(controller='vote', action='vote'))
    else:
      try:
        vote = Session.query(Vote).filter(Vote.key == request.params['vote_key']).one()
        poll = Session.query(Poll).filter(Poll.id == vote.poll_id).one()

        if not vote.update_date is None:
          redirect(url(controller='vote', action='vote'))

        if datetime.now() > poll.expiration_date:
          session['flash'] = _('Sorry, poll has expired')
          session['flash_class'] = 'error'
          session.save()
          redirect(url(controller='vote', action='vote'))

        if poll.type == 'yesno' and (request.params['vote'] == 'yes' or request.params['vote'] == 'no'):
          vote.simple_vote = request.params['vote']
        elif poll.type == 'yesnonull' and (request.params['vote'] == 'yes' or request.params['vote'] == 'no' or request.params['vote'] == 'null'):
          vote.simple_vote = request.params['vote']
        elif poll.type == 'complex':
          vote.complex_vote = request.params['vote']
        else:
          redirect(url(controller='vote', action='vote'))

        vote.update_date = datetime.now()
        Session.commit()

        session['flash'] = _('Vote successfully saved')
        session.save()
      except Exception as e:
        print e
        session['flash'] = _('Failed to save vote')
        session['flash_class'] = 'error'
        session.save()
        pass

    redirect(url(controller='vote', action='vote'))
コード例 #3
0
ファイル: poll.py プロジェクト: sim0nx/voteX
  def doEditPoll(self):
    try:
      if request.params['mode'] == 'edit':
        poll = Session.query(Poll).filter(Poll.owner == self.uid).filter(Poll.id == request.params['poll_id']).one()
      else:
        poll = Poll()

      poll.owner = self.uid
      poll.name = request.params['name'].encode('utf8')
      poll.instructions = str(request.params['instructions'].encode('utf-8'))
      poll.expiration_date = request.params['expiration_date']
      poll.type = request.params['type']

      if request.params['public'] == 'yes':
        poll.public = True
      else:
        poll.public = False
      
      if request.params['mode'] == 'add':
        Session.add(poll)
        Session.flush()

      voters = request.params['voters'].split('\n')
      voters = list(set(voters))
      for v in voters:
        vo = None
        vo = Vote()
        vo.poll_id = poll.id
        vo.key = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(20))
        mailtext = '''\
        Hey,

        Your vote is requested for "%s".
        You can vote here:
          https://votex.hackerspace.lu:8443/vote/vote?vote_key=%s

        Your voting key is: %s

        The poll expires on %s
        ''' %\
        (poll.name, vo.key, vo.key, poll.expiration_date)

        msg = MIMEText(mailtext, 'plain')
        msg['Subject'] = 'syn2cat - We need you to vote'
        msg['From'] = '*****@*****.**'
        msg['To'] = v
        s = smtplib.SMTP('localhost')
        s.sendmail(msg['From'], v, msg.as_string())
        s.quit()

        Session.add(vo)

      Session.commit()

      session['flash'] = _('Poll successfully edited')
      session.save()

      redirect(url(controller='poll', action='showAll'))

    except LookupError:
      print 'No such user !'
      session['flash'] = _('Failed to add poll')
      session['flash_class'] = 'error'
      session.save()

    redirect(url(controller='poll', action='showAll'))