Example #1
0
    def put(self, event_id, _parser):
        """Save or update a registration"""
        user_id = get_jwt_identity()
        query = _parser.parse_args(strict=True)
        query['event_id'] = event_id
        query['user_id'] = user_id
        try:
            if query['interest'] not in [1, 2]:
                raise ValueError('Invalid value for interest')
            registration = Registration(**query)
        except ValueError as e:
            abort(400, e.args[0])

        try:
            props = db.set_registration(**registration)
        except sqlite3.IntegrityError as err:
            if str(err) == "FOREIGN KEY constraint failed":
                abort(404, 'Event not found')
            abort(500, err.args[0])
        except Exception as e:
            abort(500, e.args[0])

        # Email
        claims = get_jwt()
        user_name = claims['firstname'] + ' ' + claims['lastname']
        send_new_registration(event_id, user_id, user_name, props['interest'])

        return Registration(**props), 200
 def create_registrant(self, event, name):
     participant = Registration(parent=event.key)
     participant.name = name
     participant.email_address = name + '@home.com'
     participant.twitter_handle = '@' + name
     participant.put()
     return participant
    def get(self):

        next_event = Event.get_next_event_by_date()

        if next_event:

            registration_opens = next_event.date - timedelta(days=14)
            registration_open = datetime.now() > registration_opens

            presentations = Presentation.query(ancestor=self.get_group_key()).filter(Presentation.event_key == next_event.key).fetch(100)
            registrations = Registration.query(ancestor=next_event.key).fetch(100)

            template_values = {
                'registrations_remaining': ( next_event.capacity - Registration.query(ancestor=next_event.key).count(next_event.capacity) ),
                'registrations': registrations,
                'event': next_event,
                'presentations': presentations,
                'registration_open': registration_open,
                'registration_opens': registration_opens
            }
            self.render('register.html', template_values)
        else:
            self.response.write('There is no next event setup')
    def index(self):
        next_event = Event.get_next_event_by_date()

        if next_event:
            ancestor_key = next_event.key
            registrations_query = Registration.query(ancestor=ancestor_key).order(Registration.name)
            registrations = registrations_query.fetch(100)

            template_values = {
                'registrations': registrations,
                'event_name': urllib.quote_plus(next_event.title),
            }

            self.render('registrations.html', template_values)
        else:
            self.response.write('Event name not specified')
    def test_PostingARegistrationShouldSendAConfirmationEmailWithLink(self):

        #Arrange
        self.create_event(capacity=20)
        self.mail_stub = self.testbed.get_stub(testbed.MAIL_SERVICE_NAME)

        form = self.testapp.get("/register").form
        form['email_address'] = '*****@*****.**'
        form['name'] = 'Bob Smith'
        form['twitter_handle'] = '@bob'

        #Act
        response = form.submit().follow()

        #Assert
        registration = Registration.query().fetch(1)[0];
        messages = self.mail_stub.get_sent_messages(to='*****@*****.**')
        self.assertEqual(1, len(messages))
        self.assertEqual('*****@*****.**', messages[0].sender)
        self.assertTrue('/registration/' + registration.key.urlsafe() in messages[0].body.payload, 'email should contain a link to the registration')
    def post(self):
        next_event = Event.get_next_event_by_date()
        registration = Registration(parent=next_event.key)
        registration.email_address = self.request.get('email_address')
        registration.name= self.request.get('name')
        registration.twitter_handle = self.request.get('twitter_handle')
        registration.confirmed = False
        key = registration.put()

        registration_url = self.url_for('registration', _full=True, registration_id=key.urlsafe())

        print registration_url

        mail.send_mail(
            '*****@*****.**',
            registration.email_address,
            'click link to confirm',
            registration_url)

        self.redirect('/register')
Example #7
0
def new():

  
    event_id= request.json.get('event_id', None)
    registration_fee = request.json.get('registration_fee', None)
    first_name = request.json.get('first_name', None)
    last_name = request.json.get('last_name', None)
    email= request.json.get('email', None)
    date_of_birth = request.json.get('date_of_birth', None)
    age = request.json.get('age', None)
    gender = request.json.get('gender', None)
    nationality = request.json.get('nationality', None)
    nric = request.json.get('nric', None)
    phone_number = request.json.get('phone_number', None)
    address = request.json.get('address', None)

    id = get_jwt_identity()
    user = User.get_or_none(User.id == id)
    

    

    errors=[]
    if not event_id:
        errors.append('event_id')
    if not registration_fee:
        errors.append('registration_fee')
    if not first_name:
        errors.append('first_name')
    if not last_name:
        errors.append('last_name')
    if not email:
        errors.append('email')
    if not date_of_birth:
        errors.append('date_of_birth')
    if not age:
        errors.append('age')
    if not gender:
        errors.append('gender')
    if not nationality:
        errors.append('nationality')
    if not nric:
        errors.append('nric')
    if not phone_number:
        errors.append('phone_number')
    if not address:
        errors.append('address')
    if errors:
        return jsonify({"msg":{"Missing Parameters":[error for error in errors]}}), 400
    
    registration = Registration(event_id=event_id, participant_id=user.id, registration_fee=registration_fee, first_name=first_name, last_name=last_name, email=email, date_of_birth=date_of_birth, age=age, gender=gender, nationality=nationality, nric=nric, phone_number=phone_number, address=address)

    registration.save()


   

    return jsonify({
        "message": "Successfully create a new event",
        "status": "success"
    }), 200