# HG changeset patch # User nishanth # Date 1271076321 -19800 # Node ID 7dae32a2439b8a4f3e16067732d6831e4e4ea5b0 # Parent 125b6fc8f20beac740e129db9dc1223238d8804b prettified the home page and moved workshops to another page called workshops. diff -r 125b6fc8f20b -r 7dae32a2439b reg/events.py --- a/reg/events.py Mon Apr 12 16:17:53 2010 +0530 +++ b/reg/events.py Mon Apr 12 18:15:21 2010 +0530 @@ -75,7 +75,6 @@ new_password = gen_key(10) user.set_password(new_password) user.save() - print "The new password is", new_password return new_password def change_password(user, new_password): diff -r 125b6fc8f20b -r 7dae32a2439b reg/forms.py --- a/reg/forms.py Mon Apr 12 16:17:53 2010 +0530 +++ b/reg/forms.py Mon Apr 12 18:15:21 2010 +0530 @@ -46,6 +46,24 @@ model = Profile fields = ['email', 'password', 'confirm_password', 'first_name', 'last_name', 'gender', 'profession', 'affiliated_to', 'interests'] + def clean_first_name(self): + """ firstname should contain only alphabets. + """ + + first_name = self.cleaned_data['first_name'] + if first_name.strip(string.ascii_letters): + raise forms.ValidationError("Name must contain only alphabets") + return first_name + + def clean_last_name(self): + """ only alphabets allowed. + """ + + last_name = self.cleaned_data['last_name'] + if last_name.strip(string.ascii_letters): + raise forms.ValidationError("Name must contain only alphabets") + return last_name + def clean_email(self): """ check if a user exists with same email. """ @@ -97,10 +115,8 @@ """ stop_date = self.cleaned_data['stop_date'] - try: - start_date = datetime.strptime(self.data['start_date'], "%Y-%m-%d").date() - except ValueError: - raise forms.ValidationError("Enter a valid date") + + start_date = self.clean_start_date() if start_date > stop_date: raise forms.ValidationError('The event stops even before it starts. I am starting to wonder what kind of event is this.') @@ -157,6 +173,8 @@ if not new_password == self.data['confirm_password']: raise forms.ValidationError("Passwords do not match") + return new_password + class EditProfileForm(forms.Form): """ form for editing the profile. """ @@ -168,4 +186,22 @@ affiliated_to = forms.CharField(max_length=100, required=True, label="College/Company") interests = forms.CharField(max_length=100, label="Fields of interest") + def clean_first_name(self): + """ firstname should contain only alphabets. + """ + first_name = self.cleaned_data['first_name'] + if first_name.strip(string.ascii_letters): + raise forms.ValidationError("Name must contain only alphabets") + return first_name + + def clean_last_name(self): + """ only alphabets allowed. + """ + + last_name = self.cleaned_data['last_name'] + if last_name.strip(string.ascii_letters): + raise forms.ValidationError("Name must contain only alphabets") + return last_name + + diff -r 125b6fc8f20b -r 7dae32a2439b reg/models.py --- a/reg/models.py Mon Apr 12 16:17:53 2010 +0530 +++ b/reg/models.py Mon Apr 12 18:15:21 2010 +0530 @@ -40,8 +40,8 @@ title = models.CharField(max_length=100) description = models.TextField() - start_date = models.DateField(help_text="YYYY-MM-DD") - stop_date = models.DateField(help_text="YYYY-MM-DD") + start_date = models.DateField(verbose_name="Start Date") + stop_date = models.DateField(verbose_name="End Date") attendees = models.ManyToManyField(User, related_name="%(class)s_attendees") organizers = models.ManyToManyField(User, related_name="%(class)s_organizers") diff -r 125b6fc8f20b -r 7dae32a2439b reg/site/urls.py --- a/reg/site/urls.py Mon Apr 12 16:17:53 2010 +0530 +++ b/reg/site/urls.py Mon Apr 12 18:15:21 2010 +0530 @@ -12,6 +12,7 @@ (r'^password_reset/$', reg_views.reset_password), (r'^password_change/$', reg_views.change_password), (r'^event/create/$', reg_views.create_event), + (r'^event/list/$', reg_views.list_events), (r'^event/view/(\w+)/$', reg_views.view_event), (r'^event/register/(\w+)/$', reg_views.register_for_event), (r'^event/feedback/open/(\w+)/$', reg_views.open_feedback), diff -r 125b6fc8f20b -r 7dae32a2439b reg/views.py --- a/reg/views.py Mon Apr 12 16:17:53 2010 +0530 +++ b/reg/views.py Mon Apr 12 18:15:21 2010 +0530 @@ -1,3 +1,5 @@ +from datetime import datetime + from django.contrib.auth.models import User from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required @@ -19,9 +21,8 @@ """ user = request.user - events = Event.objects.all()[:10] - return render_to_response('index.html', {'user':user, 'events':events}) + return render_to_response('index.html', {'user':user}) def user_login(request): """ get the user object from e-mail and then check for password. @@ -324,4 +325,18 @@ form = reg_forms.EditProfileForm(old_info) return render_to_response('edit_profile.html', {'user':user, 'form':form}) +def list_events(request): + """ Get all the events including those that are over and list them. + """ + user = request.user + + today = datetime.now() + context = {'user':user, + 'upcoming_events': Event.objects.filter(start_date__gt=today), + 'ongoing_events': Event.objects.filter(start_date__lte=today, stop_date__gte=today), + 'previous_events': Event.objects.filter(stop_date__lt=today), + } + + return render_to_response('list_events.html', context) + diff -r 125b6fc8f20b -r 7dae32a2439b templates/base.html --- a/templates/base.html Mon Apr 12 16:17:53 2010 +0530 +++ b/templates/base.html Mon Apr 12 18:15:21 2010 +0530 @@ -137,7 +137,7 @@
  • Register
  • {% endif %}
    -
  • Workshops
  • +
  • Workshops

  • diff -r 125b6fc8f20b -r 7dae32a2439b templates/index.html --- a/templates/index.html Mon Apr 12 16:17:53 2010 +0530 +++ b/templates/index.html Mon Apr 12 18:15:21 2010 +0530 @@ -1,6 +1,7 @@ {% extends "base.html" %} {% block content %} - {% for event in events %} - {{event.title}}
    - {% endfor %} + {% if user.is_staff %} + Create an event
    + {% endif %} + {% endblock %} diff -r 125b6fc8f20b -r 7dae32a2439b templates/list_events.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/list_events.html Mon Apr 12 18:15:21 2010 +0530 @@ -0,0 +1,42 @@ +{% extends "base.html" %} +{% block content %} + {% if ongoing_events %} + Ongoing Workshops: + + {% for event in ongoing_events %} + + + + + {% endfor %} +
    {{event.title}}{{event.start_date|date:"d M Y"}} - {{event.stop_date|date:"d M Y"}}
    + {% endif %} + + {% if upcoming_events %} + Upcoming Workshops: + + {% for event in upcoming_events %} + + + + + {% endfor %} +
    {{event.title}}{{event.start_date|date:"d M Y"}} - {{event.stop_date|date:"d M Y"}}
    + {% endif %} + +
    + + {% if previous_events %} + Previous Workshops: + + {% for event in previous_events %} + + + + + {% endfor %} +
    {{event.title}}{{event.start_date|date:"d M Y"}} - {{event.stop_date|date:"d M Y"}}
    + {% endif %} + +{% endblock %} + diff -r 125b6fc8f20b -r 7dae32a2439b templates/login.html --- a/templates/login.html Mon Apr 12 16:17:53 2010 +0530 +++ b/templates/login.html Mon Apr 12 18:15:21 2010 +0530 @@ -4,4 +4,5 @@ {{ form.as_p }} +Forgot Password {% endblock %} diff -r 125b6fc8f20b -r 7dae32a2439b templates/view_event.html --- a/templates/view_event.html Mon Apr 12 16:17:53 2010 +0530 +++ b/templates/view_event.html Mon Apr 12 18:15:21 2010 +0530 @@ -2,9 +2,10 @@ {% block content %}

    {{ event.title }}


    Description:
    - {{event.description}}
    + {{event.description|linebreaksbr}}
    duration of the workshop: {{event.start_date}} to {{event.stop_date}}
    - {% if not is_guest %} + + {% if not is_guest and event.registration_is_open %} {% if is_attendee %} You have registered for this workshop. {% else %} diff -r 125b6fc8f20b -r 7dae32a2439b templates/view_profile.html --- a/templates/view_profile.html Mon Apr 12 16:17:53 2010 +0530 +++ b/templates/view_profile.html Mon Apr 12 18:15:21 2010 +0530 @@ -1,6 +1,8 @@ {% extends "base.html" %} {% block content %} -Edit Profile
    +Edit Profile | +Change Password +
    {{user.first_name}} {{user.last_name}}
    {{user_profile.affiliated_to }}
    {{user_profile.interests }}