reg/events.py
author nishanth
Fri, 09 Apr 2010 15:48:47 +0530
changeset 7 af9ab5ad2786
parent 6 057498d12450
child 8 e2699e042129
permissions -rw-r--r--
fixed a bug in registration .

#!/usr/bin/python

from django.contrib.auth.models import User

from django.db import IntegrityError

from workshop.reg.models import Profile, Event
from workshop.reg.utils import gen_key

def create_user(email, password, firstname="", lastname="", gender="M", profession="S", affiliated_to="", interests="" ):
    """ create a user with random username and set the password.
    """

    while True:
        try:
            username = gen_key(8)
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            break
    new_user = User.objects.create_user(username, email, password)
    new_user.firstname = firstname
    new_user.lastname = lastname
    new_user.is_active = False
    new_user.save()

    new_profile = Profile(user=new_user)
    new_profile.gender = gender
    new_profile.profession = profession
    new_profile.affiliated_to = affiliated_to
    new_profile.interests = interests

    while True:
        try:
            new_profile.activation_key = gen_key(30)
            new_profile.save()
            return new_user
        except IntegrityError:
            pass

def create_event(title, desc, start_date, stop_date, created_by=None):
    """ make an event and save it.
    """

    new_event = Event()
    new_event.title = title
    new_event.description = desc
    new_event.start_date = start_date
    new_event.stop_date = stop_date
    new_event.save()
    if created_by:
        new_event.organizers.add(created_by)

    while True:
        try:
            new_event.key = gen_key(10)
            new_event.save()
            return new_event
        except IntegrityError:
            pass


def activate_user(user):
    """ mark the is_active flag as true.
    """

    user.is_active = True
    user.save()
    return user