Merge payments branch with the default mainline branch. payments
authorMadhusudan.C.S <madhusudancs@gmail.com>
Thu, 18 Nov 2010 16:16:28 +0530
branchpayments
changeset 276 325ec5a41269
parent 268 2d47a3eb5ec4 (current diff)
parent 275 679a9cab4bf1 (diff)
child 277 b203f1792ed2
Merge payments branch with the default mainline branch.
project/development.py
project/scipycon/registration/forms.py
project/scipycon/registration/models.py
project/scipycon/registration/views.py
project/urls.py
--- a/buildout.cfg	Thu Nov 18 14:18:33 2010 +0530
+++ b/buildout.cfg	Thu Nov 18 16:16:28 2010 +0530
@@ -1,5 +1,5 @@
 [buildout]
-parts = django tagging django-robots
+parts = django tagging django-robots south
 eggs = 
     Werkzeug
     PIL
@@ -13,6 +13,7 @@
 pythonpath = 
     ${tagging:location}
     ${django-robots:location}
+    ${south:location}
 
 [tagging]
 recipe = infrae.subversion
@@ -21,3 +22,7 @@
 [django-robots]
 recipe = mercurialrecipe
 repository = http://bitbucket.org/jezdez/django-robots/
+
+[south]
+recipe = mercurialrecipe
+repository = http://bitbucket.org/andrewgodwin/south/
--- a/project/development.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/development.py	Thu Nov 18 16:16:28 2010 +0530
@@ -24,6 +24,7 @@
     'project.scipycon.talk',
     'tagging',
     'robots',
+    'south',
 )
 
 DATABASE_ENGINE = 'sqlite3'
--- a/project/production.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/production.py	Thu Nov 18 16:16:28 2010 +0530
@@ -23,6 +23,7 @@
     'project.scipycon.user',
     'tagging',
     'robots',
+    'south',
 )
 
 DATABASE_ENGINE = 'mysql'
--- a/project/scipycon/base/models.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/scipycon/base/models.py	Thu Nov 18 16:16:28 2010 +0530
@@ -75,3 +75,7 @@
 
     class Meta:
         abstract = True
+
+
+class Paid(models.Model):
+    event_start = models.DateTimeField(blank=True, null=True)
--- a/project/scipycon/registration/forms.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/scipycon/registration/forms.py	Thu Nov 18 16:16:28 2010 +0530
@@ -72,13 +72,14 @@
             wifi = Wifi(user=user, scope=scope)
 
         wifi.wifi = self.cleaned_data['wifi']
+        wifi.registration_id = self.cleaned_data['registration_id']
         wifi.save()
 
         return wifi
 
     class Meta:
         model = Wifi
-        fields = ('wifi',)
+        fields = ('wifi', 'registration_id')
 
 
 class AccommodationForm(forms.ModelForm):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/scipycon/registration/migrations/0001_initial.py	Thu Nov 18 16:16:28 2010 +0530
@@ -0,0 +1,153 @@
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        
+        # Adding model 'Wifi'
+        db.create_table('registration_wifi', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('scope', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['base.Event'])),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
+            ('wifi', self.gf('django.db.models.fields.CharField')(max_length=50)),
+        ))
+        db.send_create_signal('registration', ['Wifi'])
+
+        # Adding model 'Accommodation'
+        db.create_table('registration_accommodation', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('scope', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['base.Event'])),
+            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
+            ('sex', self.gf('django.db.models.fields.CharField')(max_length=50, null=True, blank=True)),
+            ('accommodation_required', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('accommodation_days', self.gf('django.db.models.fields.IntegerField')(default=0, blank=True)),
+        ))
+        db.send_create_signal('registration', ['Accommodation'])
+
+        # Adding model 'Registration'
+        db.create_table('registration_registration', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('scope', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['base.Event'])),
+            ('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
+            ('registrant', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
+            ('organisation', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
+            ('occupation', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
+            ('city', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
+            ('postcode', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
+            ('phone_num', self.gf('django.db.models.fields.CharField')(max_length=14, blank=True)),
+            ('tshirt', self.gf('django.db.models.fields.CharField')(max_length=3)),
+            ('conference', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('tutorial', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('sprint', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('final_conference', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('final_tutorial', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('final_sprint', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('allow_contact', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('submitted', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
+            ('last_mod', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
+        ))
+        db.send_create_signal('registration', ['Registration'])
+
+
+    def backwards(self, orm):
+        
+        # Deleting model 'Wifi'
+        db.delete_table('registration_wifi')
+
+        # Deleting model 'Accommodation'
+        db.delete_table('registration_accommodation')
+
+        # Deleting model 'Registration'
+        db.delete_table('registration_registration')
+
+
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'base.event': {
+            'Meta': {'object_name': 'Event'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'scope': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'status': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'turn': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'registration.accommodation': {
+            'Meta': {'object_name': 'Accommodation'},
+            'accommodation_days': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'accommodation_required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'sex': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
+        },
+        'registration.registration': {
+            'Meta': {'object_name': 'Registration'},
+            'allow_contact': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'conference': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'final_conference': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'final_sprint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'final_tutorial': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_mod': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'occupation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'organisation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'phone_num': ('django.db.models.fields.CharField', [], {'max_length': '14', 'blank': 'True'}),
+            'postcode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'registrant': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+            'sprint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'submitted': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'tshirt': ('django.db.models.fields.CharField', [], {'max_length': '3'}),
+            'tutorial': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+        },
+        'registration.wifi': {
+            'Meta': {'object_name': 'Wifi'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+            'wifi': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        }
+    }
+
+    complete_apps = ['registration']
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/scipycon/registration/migrations/0002_auto__add_field_wifi_registration_id.py	Thu Nov 18 16:16:28 2010 +0530
@@ -0,0 +1,107 @@
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        
+        # Adding field 'Wifi.registration_id'
+        db.add_column('registration_wifi', 'registration_id', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Deleting field 'Wifi.registration_id'
+        db.delete_column('registration_wifi', 'registration_id')
+
+
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'base.event': {
+            'Meta': {'object_name': 'Event'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'scope': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'status': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'turn': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'registration.accommodation': {
+            'Meta': {'object_name': 'Accommodation'},
+            'accommodation_days': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'accommodation_required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'sex': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
+        },
+        'registration.registration': {
+            'Meta': {'object_name': 'Registration'},
+            'allow_contact': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'conference': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'final_conference': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'final_sprint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'final_tutorial': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'last_mod': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'occupation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'organisation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'phone_num': ('django.db.models.fields.CharField', [], {'max_length': '14', 'blank': 'True'}),
+            'postcode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'registrant': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+            'sprint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'submitted': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'tshirt': ('django.db.models.fields.CharField', [], {'max_length': '3'}),
+            'tutorial': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+        },
+        'registration.wifi': {
+            'Meta': {'object_name': 'Wifi'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'registration_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+            'wifi': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        }
+    }
+
+    complete_apps = ['registration']
--- a/project/scipycon/registration/models.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/scipycon/registration/models.py	Thu Nov 18 16:16:28 2010 +0530
@@ -28,7 +28,6 @@
 SEX_CHOICES = (
     ('Male', 'Male'),
     ('Female', 'Female'),
-    ('Other', 'Other')
     )
 
 PAYMENT_MODE_CHOICES = (
@@ -37,6 +36,7 @@
     ('Net Banking', 'Net Banking')
     )
 
+
 class Wifi(base_models.ScopedBase):
     """Defines wifi options at SciPy.in
     """
@@ -46,6 +46,17 @@
     wifi = models.CharField(max_length=50, choices=WIFI_CHOICES,
                             help_text=WIFI_HELP, verbose_name="Laptop")
 
+    registration_id = models.CharField(
+        max_length=255, verbose_name="Identification Number",
+        help_text="- Provide the serial or identification number at the "
+        "back of your laptop using which your laptop can be uniquely "
+        "identified. Ex: 8BDB8FB (Service Tag on Dell Laptops).<br /> - "
+        "This is for security reasons and will be used while you enter and "
+        "leave the venue.<br /> - Please don't provide the model number "
+        "like Dell Inspiron 1545. There may be many laptops of that model "
+        "and hence your laptop cannot be uniquely identified.",
+        blank=True, null=True)
+
 
 class Accommodation(base_models.ScopedBase):
     """Defines accommodation information for SciPy.in
--- a/project/scipycon/registration/views.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/scipycon/registration/views.py	Thu Nov 18 16:16:28 2010 +0530
@@ -58,7 +58,7 @@
 
     scope_entity = Event.objects.get(scope=scope)
 
-    reg = Registration.objects.get(pk=id)
+    reg = Registration.objects.get(pk=int(id))
     wifi = Wifi.objects.get(user=reg.registrant)
 
     # TODO: This is an ugly hack to add accommodation and payment forms
@@ -127,7 +127,8 @@
         wifi_form = WifiForm(initial={
             'user': wifi.user,
             'scope': wifi.scope,
-            'wifi': wifi.wifi
+            'wifi': wifi.wifi,
+            'registration_id': wifi.registration_id
             })
         acco_form = AccommodationForm(initial={
             'user': acco.user,
@@ -263,7 +264,7 @@
             acco = acco_form.save(registrant, scope_entity)
             payment = payment_form.save(registrant, scope_entity)
 
-            send_confirmation(registrant, scope_entity,password=passwd)
+            send_confirmation(registrant, scope_entity, password=passwd)
 
             redirect_to = reverse('scipycon_registrations',
                                   kwargs={'scope': scope})
--- a/project/scipycon/talk/forms.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/scipycon/talk/forms.py	Thu Nov 18 16:16:28 2010 +0530
@@ -47,7 +47,7 @@
         required=False,
         widget=forms.TextInput(attrs={'size':'50'}))
     duration = forms.ChoiceField(choices=DURATION_CHOICES, required=True,
-        label=u'Preferred timeslot', help_text=u'Select preferred time slot')
+        label=u'Preferred time slot', help_text=u'Select preferred time slot')
     audience = forms.ChoiceField(choices=AUDIENCE_CHOICES, label=u'Intended audience',
         help_text=u'Select one of the available options or enter other type of intended audience')
 #    audience_other = forms.CharField(label=u'Other intended audience',
--- a/project/scipycon/user/views.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/scipycon/user/views.py	Thu Nov 18 16:16:28 2010 +0530
@@ -29,6 +29,11 @@
 from project.scipycon.user.utils import scipycon_createuser
 from project.scipycon.utils import set_message_cookie
 
+#User_dump Http404 Error
+from django.http import Http404
+#for user_dump creation
+from project.scipycon.registration.models import Accommodation
+
 
 @login_required
 def account(request, scope, template_name="user/account.html"):
@@ -277,3 +282,40 @@
     json_response = {'results': results}
 
     return HttpResponse(json.dumps(json_response))
+
+
+@login_required
+def get_user_dump(request, scope,template_name='user/dump.html'):
+    """ Gets a general dump of user related info
+    """
+    print request.user.is_staff
+    if request.user.is_staff:
+        qs=Registration.objects.all()
+        rows=[]    
+        for obj in qs:
+            row = {}
+            row['first_name'] = obj.registrant.first_name
+            row['last_name'] = obj.registrant.last_name
+            try:
+                accomodation_require = Accommodation.objects.filter(user__username=obj.registrant.username)[0]
+                row['sex'] = accomodation_require.sex
+            except:
+                row['sex'] = '-'
+            row['city'] = obj.city
+            row['organization'] = obj.organisation
+            row['occupation'] = obj.occupation
+            row['conference'] = obj.conference 
+            row['sprint'] = obj.sprint
+            row['tutorial'] = obj.tutorial
+            try:
+                wifi_require = Wifi.objects.filter(user__username=obj.registrant.username)[0]
+                row['wifi'] = wifi_require.wifi
+            except:
+                row['wifi']='Wifi Unspecified'
+            rows.append(row)
+        return render_to_response(template_name, RequestContext(request, {
+                    'rows':  rows}))
+                    
+
+    else:
+            raise Http404
--- a/project/settings.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/settings.py	Thu Nov 18 16:16:28 2010 +0530
@@ -7,6 +7,7 @@
 
 MANAGERS = ADMINS
 
+DEBUG=False
 DATABASE_HOST = ''
 DATABASE_PORT = ''
 
@@ -77,3 +78,29 @@
 CURRENT_SCOPE = 'scipyin/2010'
 
 LOGIN_URL = '/%s/login' % (CURRENT_SCOPE)
+
+DATABASE_ENGINE = 'sqlite3'
+DATABASE_NAME = 'scipycon.db'
+DATABASE_USER = ''
+DATABASE_PASSWORD = ''
+
+INSTALLED_APPS = (
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.comments',
+    'django.contrib.sessions',
+    'django.contrib.admin',
+    'django.contrib.sites',
+    'django.contrib.flatpages',
+    'django.contrib.markup',
+    'django.contrib.sitemaps',
+    'project.scipycon',
+    'project.scipycon.base',
+    'project.scipycon.proceedings',
+    'project.scipycon.registration',
+    'project.scipycon.user',
+    'project.scipycon.talk',
+    'tagging',
+    'robots',
+)
+
Binary file project/static/img/qutubshahi.jpg has changed
Binary file project/static/img/stefan.jpg has changed
--- a/project/templates/_menu.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/_menu.html	Thu Nov 18 16:16:28 2010 +0530
@@ -10,7 +10,7 @@
       </ul>
     </li>
     <li>
-      Talks & CfP
+      Conference & CfP
       <ul>
         <li>
           <a href="/{{ params.scope }}/talks-cfp/">Call for Papers</a>
@@ -20,6 +20,11 @@
             Schedule
           </a>
         </li>
+	<li>
+          <a href="/{{ params.scope }}/talks-cfp/conference/">
+            Conference
+          </a>
+        </li>
         <!--
             <li>
               <a href="/{{ params.scope }}/talks-cfp/tutorial/">
@@ -44,6 +49,21 @@
       </ul>
     </li>
     <li>
+      <a href="/{{ params.scope }}/tutorial/">
+      Tutorials
+      </a>
+    </li>
+    <li>
+      <a href="/{{ params.scope }}/sprints/">
+      Sprints
+      </a>
+    </li>
+    <li>
+      <a href="/{{ params.scope }}/certificates/">
+      Certificates
+      </a>
+    </li>
+    <li>
       About
       <ul>
         <!--
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/templates/about/certificates.html	Thu Nov 18 16:16:28 2010 +0530
@@ -0,0 +1,102 @@
+{% extends "base.html" %}
+{% block content %}
+<h1 class="title">Certificates</h1>
+
+
+<h3 id="sec-1">Certificate of Appreciation </h3>
+
+<h4 id="sec-1_1">Participants </h4>
+
+<ul>
+<li>
+A <i>Certificate of Appreciation</i> will be issued for
+participants and presenters who contribute considerably during
+the sprints.
+</li>
+<li>
+To be considered for the <i>Certificate of Appreciation</i>, the
+sprint lead has to approve the participant, based on the proof
+of contribution in sprints.
+</li>
+</ul>
+
+<h4 id="sec-1_2">Conference Presenters </h4>
+
+<ul>
+<li>
+A separate <i>Certificate of Appreciation</i> will be given to all
+conference presenters (including those giving Lightning
+Talks). Conference presenters will be selected based on the
+abstracts submitted on the website.
+
+</li>
+</ul>
+
+<h3 id="sec-2">T-Shirts </h3>
+
+<h4 id="sec-2_1">Participants &amp; Speakers </h4>
+
+<ul>
+<li>
+T-shirts are given to all participants who contribute significantly
+in the sprints, invited speakers and conference presenters.
+</li>
+<li>
+The sprint lead has to recommend/approve contributors for a t-shirt.
+</li>
+<li>
+Only one t-shirt per participant will be given.
+
+</li>
+</ul>
+
+<h3 id="sec-3">Certificate of Participation </h3>
+
+<h4 id="sec-3_1">Participants </h4>
+
+<ul>
+<li>
+Participants simply attending the conference talks, tutorials, and sprints, will not be given 
+any certificates. They will, however, be given receipts for the payment made, which can be 
+submitted to their respective institutions/organizations.
+
+</li>
+</ul>
+
+<h3 id="sec-4">Other goodies </h3>
+
+<h4 id="sec-4_1">Participants &amp; Presenters </h4>
+
+<ul>
+<li>
+Rewards/swag will be given to participants who perform exceptionally
+well in the sprints.
+</li>
+<li>
+The sprint lead has to recommend contributors for these rewards.
+</li>
+<li>
+Some rewards  may be sent by post/courier to participants after
+the event.
+
+</li>
+</ul>
+
+<h3 id="sec-5">Note </h3>
+
+<ul>
+<li>
+Please do not contact SciPy.in organizers for a <i>Certificate of      Participation</i> as mere participation/sitting through the event
+does not entitle a participant/registrant for a certificate of
+participation or appreciation.
+</li>
+<li>
+Participants will be eligible only for a <b>Receipt</b> for the amount
+paid towards registration and accommodation.
+</li>
+<li>
+The decision of the sprint leads and the FOSSEE team would be final and binding.
+</li>
+</ul>
+
+{% endblock content %}
--- a/project/templates/about/city.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/about/city.html	Thu Nov 18 16:16:28 2010 +0530
@@ -3,27 +3,23 @@
 <h1>Hyderabad - Host City</h1>
 
 <div class="entry">
-<p>Capital of the state of Andhra Pradesh, Hyderabad is the fifth largest city in India and has its own
-distinct culture. Secunderabad is a twin city of Hyderabad and is separated by the Hussain Sagar,
-an artificial lake constructed in 1562 A.D. The city is nearly 400 years old and is noted for its
-natural beauty, mosques and minarets, bazaars and bridges, hills and lakes. It is perched on the
-top of the Deccan Plateau, 1776 ft. above sea level, and sprawls over an area of 100 Sq. miles.
+<p>Hyderabad is the capital of the state of Andhra Pradesh, and is the fifth largest city in India. Secunderabad is a twin city of Hyderabad and is separated by the Hussain Sagar (locally well known as <i>Tank Bund</i>), an artificial lake constructed in 1562 A.D. The city is nearly 400 years old and is noted for its natural beauty, mosques and minarets, bazaars and bridges, hills and lakes. It is perched on the top of the Deccan Plateau, 1776 ft. above sea level, and sprawls over an area of 100 Sq. miles. Hyderabad is famous for its architecture, cuisine, pickles, and pearls. It is considered to be at cross-roads between the North and the South,the historical and the modern. The <i>Islamic</i> influences of the <i>Nawabs</i> are visible even today in the cuisine and architecture, especially in the older sections of the city, while expanding suburbs are very cosmopolitan.
 </p>
 
-<p>A multitude of influences have shaped the character of the city. Its palaces and buildings, houses
-and tenements, gardens and streets have a history and an architectural individuality of their
-own, which makes Hyderabad a city of enchantment. Hyderabad is also known as Cyberabad,
-owing to the presence of large number of IT companies. All major IT companies from across the
-globe have marked their presence in Hyderabad by having their offices, development centers or
-research centers located there.</p>
+<p>A multitude of influences have shaped the character of the city and it has a distinct culture. Its palaces and buildings, houses and tenements, gardens and streets have a history and an architectural individuality of their own, which make Hyderabad a city steeped in culture. Hyderabad is also known as Cyberabad, owing to the presence of large number of IT companies. All major IT companies from across the globe have marked their presence in Hyderabad by having their offices, development centers, or research centers located there.</p>
+
+<p> When in Hyderabad, shopping for pearls is a must - <i>City of Pearls</i> is one of the many <i>sobriquets</i> of Hyderabad . Another <i>must try</i> in Hyderabad is the <i>biriyani</i>, a flavorful and fragrant rice dish. <i>Pulla Reddy</i> and <i>Rami Reddy</i> are famous sweet vendors which are worth checking out. A visit to the Charminar and the surrounding maze of markets is an experience of a lifetime. Be sure to bargain for clothes, ethnic accessories, jewellery (especially pearls and bangles), and artefacts from the myriad vendors abounding these <i>bazaars</i>. Some advice to keep in mind while bargaining would be to start at a fourth (or less) of the price quoted, although this may not always apply.</p>
+
+<p>While <i>Telugu</i> is the state language, a knowledge of <i>Urdu</i>, <i>Hindi</i>, or <i>English</i>, is sufficient to get by, in many places within the city. For more information, including transportation details, do check <a href="http://wikitravel.org/en/Hyderabad">the WikiTravel entry on Hyderabad</a>. </p>
+
+<p> 
 
 <h3>Map</h3>
 
 <p>A Google Map of Hyderabad with prominent places marked can be found here</p>
-
-<a href="http://maps.google.com/maps/ms?hl=en&ie=UTF8&msa=0&msid=116571751012231655985.00045ea3a3aa0272ecec3&ll=17.452566,78.373847&spn=0.013694,0.015235&z=16">
-http://maps.google.com/maps/ms?hl=en&ie=UTF8&msa=0&msid=116571751012231655985.00045ea3a3aa0272ecec3&ll=17.452566,78.373847&spn=0.013694,0.015235&z=16</a>
-
+<p>
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?hl=en&amp;ie=UTF8&amp;msa=0&amp;msid=116571751012231655985.00045ea3a3aa0272ecec3&amp;ll=17.452566,78.373847&amp;spn=0.014329,0.018239&amp;z=15&amp;output=embed"></iframe><br /><small>View <a href="http://maps.google.com/maps/ms?hl=en&amp;ie=UTF8&amp;msa=0&amp;msid=116571751012231655985.00045ea3a3aa0272ecec3&amp;ll=17.452566,78.373847&amp;spn=0.014329,0.018239&amp;z=15&amp;source=embed" style="color:#0000FF;text-align:left">miyapur to Kompalli </a> in a larger map</small>
+</p>
 <h3>Climate, Weather and Local time</h3>
 
 <ul>
@@ -36,51 +32,27 @@
 <h2>Famous Historical Sites</h2>
 
 <div id="speaker"><div id="speakerphoto"><img src="/static/img/golconda.jpg" alt="Golconda Fort" title="Golconda Fort" /></div>
-<div id="speakerinfo">Golconda fort was founded originally by the Kakatiyas in the 13th
-century, and was expanded by the Qutb Shahi kings into a massive fort of granite with walls. The
-fortress city within the walls was famous for the diamond trade and the Koh-i-noor diamond is
-said to have come from here. One of the most remarkable features of Golconda is its system of
-acoustics. The sounds of hands clapped in the grand portico can be heard in the Durbar Hall, at
-the very top of the hill.</div><br /></div>
+<div id="speakerinfo">The Golconda fort was founded originally by the <i>Kakatiyas</i> in the 13th century, and was expanded by the Qutb Shahi kings into a massive fort of granite with walls. The fortress city within the walls was famous for the diamond trade and the <i>Koh-i-noor</i> diamond is said to have come from here. One of the most remarkable features of the Golconda fort is its system of
+acoustics. The sounds of hands clapped in the grand portico can be heard in the Durbar Hall, at the very top of the hill.</div><br /></div>
 
 <div id="speaker"><div id="speakerphoto"><img src="/static/img/charminar.jpg" alt="Charminar" title="Charminar" /></div>
-<div id="speakerinfo">Charminar is the major landmark in Hyderabad, the massive arch built
-by Mohammed Quli Qutab Shah, in 1591 looming at a height of 56 m, is an impressive square
-gateway with four minarets, to commemorate the end of the plague. The arch is illuminated daily
-in the evening, an unforgettable sight indeed.</div><br /><br /><br /><br /></div>
+<div id="speakerinfo">The <i>Charminar</i> (literally, "Four Minarets")is a major landmark in Hyderabad, the massive arch built by Mohammed Quli Qutab Shah, in 1591 looming at a height of 56 m, is an impressive square gateway with four minarets, to commemorate the end of the plague. The arch is illuminated daily in the evening, and is an unforgettable sight.</div><br /><br /><br /><br /></div>
 
 <div id="speaker"><div id="speakerphoto"><img src="/static/img/meccamasjid.jpg" alt="Mecca Masjid" title="Mecca Masjid" /></div>
-<div id="speakerinfo">Mecca Masjid is near Charminar, one of the largest in the state if not in
-India, said to accomodate upto 10,000 worshippers. Muhammed Quli Qutub Shah began building
-it in 1617 and was completed during the reign of Mughal emperor Aurangzeb in 1694.</div><br /><br /><br /><br /></div>
+<div id="speakerinfo">The <i>Mecca Masjid</i>, near the <i>Charminar</i>, is one of the largest in the state if not in
+India. It is said to accomodate upto 10,000 worshippers. Muhammed Quli Qutub Shah began building it in 1617 and was completed during the reign of Mughal emperor Aurangzeb in 1694.</div><br /><br /><br /><br /></div>
 
-<div id="speaker"><div id="speakerphoto"><img src="/static/img/golconda.jpg" alt="Golconda Fort" title="Golconda Fort" /></div>
-<div id="speakerinfo">A little away from Golconda fort are a cluster of tombs. Most of them
-have intricately carved stonework and are the most authentic evidence of the Qutub Shahi
-architectural traditions. The tombs erected in the memory of the departed kings of Golconda.
-They stand a kilometer north of Golconda fort's Banjara Darwaza.</div><br /><br /><br /><br /></div>
+<div id="speaker"><div id="speakerphoto"><img src="/static/img/qutubshahi.jpg" alt="Qutub Shahi Tombs" width="160px" title="Qutub Shahi Tombs" /></div>
+<div id="speakerinfo">A little away from the Golconda fort is a cluster of tombs. Most of them have intricately carved stonework and are the most authentic evidence of the Qutub Shahi architectural traditions. The tombs were erected in the memory of the departed kings of Golconda. They stand a kilometer north of Golconda fort's Banjara Darwaza.</div><br /><br /><br /><br /></div>
 
 <div id="speaker"><div id="speakerphoto"><img src="/static/img/hussainsagar.jpg" alt="Hussain Sagar Lake" title="Hussain Sagar Lake" /></div>
-<div id="speakerinfo">Hussain Sagar is a lake in Hyderabad, India built by Hazrat Hussain
-Shah Wali in 1562, during the rule of Ibrahim Quli Qutb Shah. It was a lake of 24 kilometres
-built on a tributary of the River Musi to meet the water and irrigation needs of the city. There is
-a large monolithic statue of the Gautam Buddha in the middle of the lake which was erected in
-1992.</div><br /><br /><br /><br /></div>
+<div id="speakerinfo">The <i>Hussain Sagar</i> is a lake in Hyderabad, built by Hazrat Hussain Shah Wali in 1562, during the rule of Ibrahim Quli Qutb Shah. It is a 24 km long lake built on a tributary of the River Musi to meet the water and irrigation needs of the city. There is a large monolithic statue of the Gautam Buddha in the middle of the lake which was erected in 1992. It is also called <i>Tank Bund</i> in local parlance.</div><br /><br /><br /><br /></div>
 
 <div id="speaker"><div id="speakerphoto"><img src="/static/img/birlamandir.jpg" alt="Birla Mandir" title="Birla Mandir" /></div>
-<div id="speakerinfo">Birla Mandir is a magnificient temple built entirely in marble, with
-great architectural significance. It was built by the Birla Foundation. The temple is dedicated to
-Lord Venkateshwara. The granite image of the presiding deity is about 11 ft. tall and a carved
-lotus forms an umbrella on the roof. The consorts of Lord Venkateswara, 'Padmavati' and 'Andal'
-are housed in separate shrines. There is a brass flagstaff in the temple premises which rises to a
-height of 42 ft. The temple manifests a blend of South Indian, Rajasthani and Utkal temple
-architectures. In its entirety, it is made of 2000 tons of pure Rajasthani white marble. It is built on
-a 280-feet high hillock called the Naovath Pahad in a 13 acres plot. The construction of the
-temple took 10 years and it was consecrated in 1976. The temple complex overlooking the
-southern side of Hussain Sagar, offers a magnificient panoramic view of the twin cities of
-Hyderabad and Secunderabad. It presents a colorful spectacular sight when illuminated at night.</div><br /></div>
+<div id="speakerinfo">Birla Mandir is a magnificient temple built entirely in marble, with great architectural significance. It was built by the Birla Foundation. The temple is dedicated to Lord Venkateshwara. The granite image of the presiding deity is about 11 ft. tall and a carved lotus forms an umbrella on the roof. The consorts of Lord Venkateswara, 'Padmavati' and 'Andal' are housed in separate shrines. There is a brass flagstaff in the temple premises which rises to a
+height of 42 ft. The temple manifests a blend of South Indian, Rajasthani and Utkal temple architectures. In its entirety, it is made of 2000 tons of pure Rajasthani white marble. It is built on a 280-feet high hillock called the Naovath Pahad in a 13 acres plot. The construction of the temple took 10 years and it was consecrated in 1976. The temple complex overlooking the southern side of Hussain Sagar, offers a magnificient panoramic view of the twin cities of Hyderabad and Secunderabad. It presents a colorful spectacular sight when illuminated at night.</div><br /></div>
 
-<p>The following websites will be helpful to find more information about Hyderabad</p>
+<p>The following websites can help find more information about Hyderabad.</p>
 
 <ul>
   <li><a href="http://www.aptourism.in/hplaces.html">http://www.aptourism.in/hplaces.html</a></li>
@@ -89,4 +61,4 @@
   <li><a href="http://www.fullhyderabad.com/">http://www.fullhyderabad.com/</a></li>
   </ul>
 </div>
-{% endblock content %}
\ No newline at end of file
+{% endblock content %}
--- a/project/templates/about/fees.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/about/fees.html	Thu Nov 18 16:16:28 2010 +0530
@@ -1,9 +1,9 @@
 {% extends "base.html" %}
 {% block content %}
 
-<h2>Fees </h2>
+<h2 id="sec-1">Fees </h2>
 
-<h3>Registration fees for outstation students and teachers. </h3>
+<h3 id="sec-1_1">Registration fees for outstation students and teachers. </h3>
 
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 <caption></caption>
@@ -12,7 +12,6 @@
 <thead>
 <tr><th scope="col">Category</th><th scope="col">Conference</th><th scope="col">Accommodation</th></tr>
 <tr><th scope="col"></th><th scope="col">+ Tutorials</th><th scope="col">(all 6 days)</th></tr>
-
 </thead>
 <tbody>
 <tr><td>Students</td><td>Rs. 500</td><td>Rs. 300</td></tr>
@@ -20,10 +19,10 @@
 </tbody>
 </table>
 
-<p>Registration fees along with the accommodation charges can be paid either by electronic transfer (account no. - ) or by sending a Demand Draft for the amount of Rs.800 (for all 6 days). </p>
+<h4 id="sec-1_1_1">Registration fees along with the accommodation charges can be paid either by electronic transfer (<a href="#sec-2_2_2">details</a>) or by sending a Demand Draft for the amount of Rs.800 (for all 6 days). </h4>
 
-<h3>Registration fees for in-station students and teachers. </h3>
 
+<h3 id="sec-1_2">Registration fees for in-station students and teachers. </h3>
 
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 <caption></caption>
@@ -36,15 +35,12 @@
 <tbody>
 <tr><td>Students</td><td>Rs. 500</td></tr>
 <tr><td>Teachers</td><td>Rs. 500</td></tr>
-
 </tbody>
 </table>
 
-
+<h4 id="sec-1_2_1">Registration fees can be paid either by electronic transfer (<a href="#sec-2_2_2">details</a>) or by sending a Demand Draft for the amount of Rs.500 (for all 6 days). </h4>
 
-<p>Registration fees can be paid either by electronic transfer (account no. - ) or by sending a Demand Draft for the amount of Rs.500 (for all 6 days). </p>
-
-<h3>Registration fees for corporates and others. </h3>
+<h3 id="sec-1_3">Registration fees for corporates and others. </h3>
 
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 <caption></caption>
@@ -52,7 +48,6 @@
 </colgroup>
 <thead>
 <tr><th scope="col">Category</th><th scope="col">Conference</th><th scope="col">Tutorials + sprints</th></tr>
-
 </thead>
 <tbody>
 <tr><td>Corporates</td><td>Rs. 2000</td><td>Rs. 1000 per day</td></tr>
@@ -60,14 +55,14 @@
 </tbody>
 </table>
 
-<p>Registration fees corresponding to the conference +( number of tutorial days * 1000) can be paid either by electronic transfer (account no. - ) or by sending a Demand Draft. </p>
+<h4 id="sec-1_3_1">Registration fees corresponding to the conference +( number of tutorial days * 1000) can be paid either by electronic transfer (<a href="#sec-2_2_2">details</a>) or by sending a Demand Draft. </h4>
 
 <ul>
-<li>For example, if attending the conference and 2 of the tutorial days, the fees payable would be Rs. 2000 + (2 * Rs. 1000) = Rs. 4000. <br/>
+<li id="sec-1_3_1_1">For example, if attending the conference and 2 of the tutorial days, the fees payable would be Rs. 2000 + (2 * Rs. 1000) = Rs. 4000. <br/>
 </li>
 </ul>
 
-<h3>Spot registration / late payment(on-spot) </h3>
+<h3 id="sec-1_4">Spot registration / late payment(on-spot) </h3>
 
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 <caption></caption>
@@ -78,45 +73,47 @@
 </thead>
 <tbody>
 <tr><td>Students</td><td>Rs. 750</td><td>Included in conference fee</td></tr>
-
 <tr><td>Teachers</td><td>Rs. 750</td><td>Included in conference fee</td></tr>
 <tr><td>Corporates</td><td>Rs. 2500</td><td>Rs. 1250 per day</td></tr>
 </tbody>
 </table>
 
-<h2>Note: </h2>
+<h2 id="sec-2">Note: </h2>
 
-<h3>Accommodation </h3>
-
+<h3 id="sec-2_1">Accommodation </h3>
 
 <ul>
 <li>
-Accommodation will be provided at a subsidized rate of Rs.50 for day for outstation teachers and students alone. 
-
+Accommodation will be provided at a subsidized rate of Rs.50 per day for outstation teachers and students alone. 
 </li>
 <li>
-Accommodation will be confirmed only upon receipt of the fee.
+Accommodation fees has to remitted on or before 6th of December, 2010. If you are sending us a DD, it should reach us on or before 8th of December, 2010.
 </li>
 <li>
 Accommodation will be confirmed at the venue only for participants with valid identity cards from their respective institutions.
 </li>
 </ul>
 
-<h3>Registration </h3>
+<h3 id="sec-2_2">Registration Fees </h3>
+
+<h4 id="sec-2_2_1">Demand Draft </h4>
 
 <ul>
 <li>
-An email should be sent to info@scipy.in with the name of the participant, user id on the website, institution, and the transaction details(reference no. and account no.)
+An email should be sent to <i>info@scipy.in</i> with the name of the
+participant, user id on the website, institution, and the
+transaction details(reference no. and account no.)
 </li>
 <li>
-Registered participants whose talks have been accepted will be exempt from the registration fees.
+Registered participants whose talks have been accepted will be
+exempt from the registration fees.
 </li>
 <li>
-The demand draft may be obtained in favour of <b>Prof. Prabhu Ramachandran</b> payable at <b>Mumbai</b>.
+The demand draft may be obtained in favour of <b>FOSSEE</b> payable at
+<b>Mumbai</b>.
 </li>
 <li>
 The Demand Drafts may be sent to
-
 <pre class="example">
 Prof. Prabhu Ramachandran,
 Department of Aerospace Engineering,
@@ -128,4 +125,36 @@
 </li>
 </ul>
 
+<h4 id="sec-2_2_2">Electronic transfer (NEFT) </h4>
+
+<ul>
+<li>
+An email should be sent to <i>info@scipy.in</i> with the name of the
+participant, user id on the website, institution, and the
+transaction details(reference no. and account no., account holder
+name from which the transfer was made.)
+</li>
+<li>
+Registered participants whose talks have been accepted will be
+exempt from the registration fees.
+</li>
+<li>
+The total amount for fees and accommodation (if applicable) may be
+transfered to,
+<pre class="example">
+Account Number - 2724101100988
+Account Name - FOSSEE
+IFSC code - CNRB0002724
+Bank - Canara Bank
+Branch - IIT Powai, Mumbai - 400076
+</pre>
+
+</li>
+<li>
+While transferring the amount, ensure that the remark of transaction
+contain the user-name on website and (or) Full name with email
+address registered with us.
+
+</li>
+</ul>
 {% endblock content %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/templates/about/sprints.html	Thu Nov 18 16:16:28 2010 +0530
@@ -0,0 +1,67 @@
+{% extends "base.html" %}
+{% block content %}
+<h1>Probable Sprint Topics</h1>
+
+<ul>
+<li>
+Documentation
+<ul>
+<li>
+Scipy/Numpy
+</li>
+<li>
+Mayavi
+</li>
+</ul>
+</li>
+<li>
+Mayavi
+</li>
+<li>
+Ipython
+</li>
+<li>
+Sage
+</li>
+<li>
+matplotlib
+</li>
+<li>
+Spoken tutorial
+<ul>
+<li>
+recording
+</li>
+<li>
+dubbing
+</li>
+</ul>
+</li>
+<li>
+Text books
+<ul>
+<li>
+Kreyszig - Advanced Engineering Mathematics 
+</li>
+<li>
+Strang - Linear Algebra
+</li>
+<li>
+Introduction to Dynamics - Ian Percival, Derek Richards
+
+</li>
+</ul>
+</li>
+</ul>
+
+<p>Details of the Sprints can be worked out based on the interest of
+the participants.  This will be updated as soon as more information is 
+available.
+</p>
+<p>
+Participants of Sprints who make a significant contribution will be
+given swag. The sprint lead, will choose the participants who are
+eligible for the swag. 
+</p>
+
+{% endblock content %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/templates/about/tutorial.html	Thu Nov 18 16:16:28 2010 +0530
@@ -0,0 +1,174 @@
+{% extends "base.html" %}
+{% block content %}
+<h1>Tutorials</h1>
+
+<h3 id="sec-1"><span class="section-number-3"></span>Intended audience </h3>
+
+<p>This conference is targeted at anyone who uses Python for work in science/engineering/technology/education. This includes college and university teachers/professors/lecturers from any Engineering or Science domain, students of engineering/science/education who would like to use Python for their basic computing and plotting needs, researchers who use or would like to use Python for their research, and corporate users of Python for scientific computing.
+</p>
+
+<h3 id="sec-2"><span class="section-number-3"></span>Prerequisites </h3>
+
+<ul>
+<li>
+Participants should be comfortable computer users and be familiar with programming constructs such as loops, conditionals.
+</li>
+<li>
+Familiarity with programming editors&ndash; scite, notepad++, vi, emacs- will be a plus.
+</li>
+<li>
+Familiarity with using the commandline will be another plus.
+
+</li>
+</ul>
+
+<h3 id="sec-3"><span class="section-number-3"></span>Objectives </h3>
+
+<ul>
+<li>
+At the end of the program the participants will have a good understanding of the Python language, and selected libraries.
+</li>
+<li>
+They will be able to write good modular procedural code and use objects.
+</li>
+<li>
+They will get a overview of the other major topics, features and libraries and be able to learn these on their own if required.
+</li>
+<li>
+They will be able to generate 2-D plots using NumPy and Matplotlib, and 3-D plots using MayaVi2.
+</li>
+<li>
+They will be able to incorporate and adapt Python in their lessons
+
+</li>
+</ul>
+
+<h3 id="sec-4"><span class="section-number-3"></span>Coverage </h3>
+
+<p>This is a rough outline of the topics to be covered in the
+tutorials. The exact schedule of the tutorials will be put up in a
+short while.
+</p>
+<ul>
+<li>
+<a href="http://www.sagemath.org" >Sage</a> 
+<ul>
+<li>
+basic usage 
+</li>
+<li>
+symbolic computing
+</li>
+<li>
+numeric computing
+</li>
+<li>
+basic plotting
+</li>
+</ul>
+</li>
+<li>
+Basic Scientific Computing with Python covering the following
+<ul>
+<li>
+ipython
+</li>
+<li>
+pylab
+</li>
+<li>
+numpy
+</li>
+<li>
+scipy
+</li>
+<li>
+basic use of Mayavi
+</li>
+</ul>
+</li>
+<li>
+Basic Python
+<ul>
+<li>
+data-types
+</li>
+<li>
+conditionals &amp; looping
+</li>
+<li>
+functions &amp; modules
+</li>
+</ul>
+</li>
+<li>
+Advanced topics
+<ul>
+<li>
+Cython
+</li>
+<li>
+More Ipython
+</li>
+<li>
+More Mayavi
+</li>
+<li>
+More matplotlib
+</li>
+<li>
+More Sage?
+
+</li>
+</ul>
+</li>
+</ul>
+
+<p>Any participants using their own laptops should have the required
+software installed on their machines, before coming to the venue of
+the tutorials. The installation instructions are available <a href="http://fossee.in/installation-how-to">here</a>.
+</p>
+
+
+<h3 id="sec-5"><span class="section-number-3"></span>Methodology </h3>
+
+<ul>
+<li>
+Completely hands on, exploratory mode with minimal lectures introducing essential concepts and techniques.
+</li>
+<li>
+Typically we will have short 15 - 20 minute lectures, followed by series of graduated problems. The participants will solve them exploring the documentation to do so and the solutions will be discussed.
+</li>
+<li>
+We shall be conducting quizzes during the course of the workshop to evaluate the degree to which the objectives have been accomplished.
+
+</li>
+</ul>
+
+<p>Laptops can be brought by participants, and additional laptops/computers can be provided for use for those required. Charging points will be available.
+</p>
+<p>
+As far as installations go, you would require the following:
+</p>
+<ul>
+<li>
+For Debian/ Ubuntu and the like:
+(a) IPython
+(b) Python doc
+(c) the Python Profiler
+(d) Scipy/Numpy
+(e) Matplotlib
+(f) Mayavi2
+
+</li>
+<li>
+For Windows XP (x86), Windows Vista (x86), Mac OS X 10.4+ (x86), RedHat 3 (x86, amd64), RedHat 4 (x86, amd64), RedHat 5 (x86, amd64), and Solaris 10 (x86, amd64) :
+(a) get the EPD (<a href="http://www.enthought.com/products/epd.php">http://www.enthought.com/products/epd.php</a>) bundle and you'll have everything you need! This is available for free for those in academia and others can utilize the free 30 day trial version for now.
+
+</li>
+</ul>
+
+<p>In any case, we will be providing live DVDs containing all the required installations and some additional tools on site. The iso can also be downloaded from the fossee.in site (<a href="http://fossee.in/download#DVDs">http://fossee.in/download#DVDs</a>).
+</p>
+
+{% endblock content %}
--- a/project/templates/about/venue.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/about/venue.html	Thu Nov 18 16:16:28 2010 +0530
@@ -6,10 +6,7 @@
 Technology in Hyderabad, keeping in mind accessibility, the number of attendees
 and the location, among other aspects to be considered.</p>
 
-<p>You can know more the host city - Hyderabad with some interesting pictures
-here <a href="{% url scipycon_city params.scope %}">Host City - Hyderabad</a></p>.
-
 <p>
 <strong>More about IIIT-Hyderabad coming soon.</strong></p>
 </div>
-{% endblock content %}
\ No newline at end of file
+{% endblock content %}
--- a/project/templates/home.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/home.html	Thu Nov 18 16:16:28 2010 +0530
@@ -26,6 +26,22 @@
 <p>All these features when combined with their wide-ranging applications
 make Python a perfect fit for use in Education, Industry and Scientific
 Computing.</p>
+
+<h1>Why Python?</h1>
+
+<p>
+<video
+  src="http://fossee.in/sitefiles/Videos/why_python_short.ogv"
+  width=50%
+  height=50%
+  controls>
+  Your Browser does not support the video tag, upgrade to Firefox 3.5+
+</video>
+</p>
+<p>
+<a href="http://fossee.in/sitefiles/Videos/why_python_short.ogv">Download video (14 min - short version)</a> | <a href="http://fossee.in/sitefiles/Videos/why_python.ogv">Download video (41 min - long version)</a>
+</p>
+
 <h1>Scope of the conference</h1>
   <p><strong>Scipy.in </strong>is a conference providing opportunities to 
 spread the use of the Python programming language in the Scientific Computing
--- a/project/templates/registration/edit-registration.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/registration/edit-registration.html	Thu Nov 18 16:16:28 2010 +0530
@@ -9,11 +9,11 @@
 {% block overreg %}{% endblock overreg %}
 
 {% block url_select_login %}
-  "{% url scipycon_edit_registration params.scope 1 %}"
+  "{% url scipycon_edit_registration params.scope registration.id %}"
 {% endblock url_select_login %}
 
 {% block url_select_reg %}
-  "{% url scipycon_edit_registration params.scope 1 %}"
+  "{% url scipycon_edit_registration params.scope registration.id %}"
 {% endblock url_select_reg %}
 
 {% block formextras %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/templates/talk/conf_schedule.html	Thu Nov 18 16:16:28 2010 +0530
@@ -0,0 +1,199 @@
+{% extends "base.html" %}
+{% block content %}
+<h1 class="title">SciPy.in 2010 Conference Schedule</h1>
+
+<h3 id="sec-1">A detailed list of talks will be announced after accepting the Call for Papers is complete. The schedule of invited talks given below may change. The final schedule for the conference will be put up after evaluating the submitted talks.</h3>
+
+<h2 id="sec-1">Day 1 </h2>
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<caption></caption>
+<colgroup><col align="right" /><col align="left" /><col align="left" /><col align="left" />
+</colgroup>
+<thead>
+<tr><th scope="col">Time</th><th scope="col">Agenda</th><th scope="col">Speaker</th><th scope="col">Title</th></tr>
+</thead>
+<tbody>
+<tr><td>9:00-9:30</td><td>Inauguration</td><td></td><td></td></tr>
+<tr><td>9:30-10:30</td><td>Keynote</td><td>Perry Greenfield</td><td><a href="#sec-3">How Python Slithered into Astronomy</a></td></tr>
+<tr><td>10:30-10:45</td><td>Tea Break</td><td></td><td></td></tr>
+<tr><td>10:45-11:30</td><td>Special Talk 1</td><td>Fernando Perez</td><td><a href="#sec-4">IPython : Beyond the Simple Shell</a></td></tr>
+<tr><td>11:30-12:00</td><td>Invited Talk 1</td><td>Asokan Pichai</td><td><a href="#sec-5">Teaching Programming with Python</a></td></tr>
+<tr><td>12:00-13:15</td><td>Talks</td><td></td><td></td></tr>
+<tr><td>13:15-14:15</td><td>Lunch</td><td></td><td></td></tr>
+<tr><td>14:15-14:45</td><td>Lightning Talks</td><td></td><td></td></tr>
+<tr><td>14:45-15:55</td><td>Talks</td><td></td><td></td></tr>
+<tr><td>15:55-16:10</td><td>Tea Break</td><td></td><td></td></tr>
+<tr><td>16:10-17:30</td><td>Talks</td><td></td><td></td></tr>
+</tbody>
+</table>
+
+<h2 id="sec-2">Day 2 </h2>
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<caption></caption>
+<colgroup><col align="right" /><col align="left" /><col align="left" /><col align="left" />
+</colgroup>
+<thead>
+<tr><th scope="col">Time</th><th scope="col">Agenda</th><th scope="col">Speaker</th><th scope="col">Title</th></tr>
+</thead>
+<tbody>
+<tr><td>9:00-10:00</td><td>Special Talk 2</td><td>John Hunter</td><td><a href="#sec-6">matplotlib: Beyond the simple plot</a></td></tr>
+<tr><td>10:00-10:45</td><td>Invited Talk 2</td><td>Prabhu Ramachandran</td><td><a href="#sec-7">Mayavi : Bringing Data to Life</a></td></tr>
+<tr><td>10:45-11:00</td><td>Tea Break</td><td></td><td></td></tr>
+<tr><td>11:00-13:15</td><td>Talks</td><td></td><td></td></tr>
+<tr><td>13:15-14:15</td><td>Lunch</td><td></td><td></td></tr>
+<tr><td>14:15-14:45</td><td>Lightning Talks</td><td></td><td></td></tr>
+<tr><td>14:45-15:55</td><td>Talks</td><td></td><td></td></tr>
+<tr><td>15:55-16:10</td><td>Tea Break</td><td></td><td></td></tr>
+<tr><td>16:10-17:30</td><td>Talks</td><td></td><td></td></tr>
+</tbody>
+</table>
+
+<h2 id="sec-3">Keynote by Perry Greenfield </h2>
+
+<p>Perry Greenfield
+</p>
+
+<h3 id="sec-3_1">Title </h3>
+
+<p>How Python Slithered into Astronomy
+</p>
+
+<h3 id="sec-3_2">Talk/Paper Abstract </h3>
+
+<p>
+I will talk about how Python was used to solve our problems for the
+Hubble Space Telescope. From humble beginnings as a glue element for
+our legacy software, it has become a cornerstone of our scientific
+software for HST and the next large space telescope, the James Webb
+Space Telescope, as well as many other astronomy projects. The talk
+will also cover some of the history of essential elements for
+scientific Python and where future work is needed, and why Python is
+so well suited for scientific software.
+</p>
+
+
+<h2 id="sec-4">Special Talk 1 </h2>
+
+<p>Fernando Perez
+</p>
+
+<h3 id="sec-4_1">Title </h3>
+
+<p>IPython : Beyond the Simple Shell
+</p>
+
+<h3 id="sec-4_2">Talk/Paper Abstract: </h3>
+
+<p>IPython is a widely used system for interactive computing in Python
+that extends the capabilities of the Python shell with operating
+system access, powerful object introspection, customizable "magic"
+commands and many more features.  It also contains a set of tools to
+control parallel computations via high-level interfaces that can be
+used either interactively or in long-running batch mode.
+
+In this talk I will outline some of the main features of IPython as it
+has been widely adopted by the scientific Python user base, and will
+then focus on recent developments.  Using the high performance ZeroMQ
+networking library, we have recently restructured IPython to decouple
+the kernel executing user code from the control interface.  This
+allows us to expose multiple clients with different capabilities,
+including a terminal-based one, a rich Qt client and a web-based one
+with full matplotlib support. In conjunction with the new HTML5
+matplotlib backend, this architecture opens the door for a rich
+web-based environment for interactive, collaborative and parallel
+computing.  
+
+There is much interesting development to be done on this front, and I
+hope to encourage participants at the sprints during the conference to
+join this effort.
+
+</p>
+
+<h2 id="sec-5">Invited Talk 1 </h2>
+
+<p>Asokan Pichai
+</p>
+
+<h3 id="sec-5_1">Title </h3>
+
+<p>Teaching Programming with Python
+</p>
+
+<h3 id="sec-5_2">Talk/Paper Abstract: </h3>
+
+<p>As a trainer I have been engaged a lot for teaching fresh Software
+Engineers and software job aspirants. Before starting on the language,
+platform specific areas I teach a part I refer to as Problem Solving
+and Programming Logic. I have used Python for this portion of training
+in the last 12+years. In this talk I wish to share my experiences and
+approaches.
+
+This talk is intended at Teachers, Trainers, Python Evangelists, and
+HR Managers [if they lose their way and miraculously find themselves in SciPy :-)]
+
+</p>
+
+
+<h2 id="sec-6">Special Talk 2 </h2>
+
+<p>John Hunter
+</p>
+
+<h3 id="sec-6_1">Title </h3>
+
+<p>matplotlib: Beyond the simple plot
+</p>
+
+<h3 id="sec-6_2">Talk/Paper Abstract: </h3>
+
+<p>matplotlib, a python package for making sophisticated publication
+quality 2D graphics, and some 3D, has long supported a wide variety
+of basic plotting types such line graphs, bar charts, images,
+spectral plots, and more.  In this talk, we will look at some of the
+new features and performance enhancements in matplotlib as well as
+some of the comparatively undiscovered features such as interacting
+with your data and graphics, and animating plot elements with the
+new animations API.  We will explore the performance with large
+datasets utilizing the new path simplification algorithm, and
+discuss areas where performance improvements are still needed.
+Finally, we will demonstrate the new HTML5 backend, which in
+combination with the new HTML5 IPython front-end under development,
+will enable an interactive Python shell with interactive graphics in
+a web browser.
+</p>
+
+
+<h2 id="sec-7">Invited Talk 2 </h2>
+
+<p>Prabhu Ramachandran
+</p>
+
+<h3 id="sec-7_1">Title </h3>
+
+<p>Mayavi : Bringing Data to Life
+</p>
+
+<h3 id="sec-7_2">Talk/Paper Abstract: </h3>
+
+<p>Mayavi is a powerful 3D plotting package implemented in Python.  It
+includes both a standalone user interface along with a powerful yet
+simple scripting interface.  The key feature of Mayavi though is that it
+allows a Python user to rapidly visualize data in the form of NumPy
+arrays.  Apart from these basic features, Mayavi has some advanced
+features.  These include, automatic script recording, embedding into a
+custom user dialog and application.  Mayavi can also be run in an
+offscreen mode and be embedded in a sage notebook
+(http://www.sagemath.org).
+
+We will first rapidly demonstrate these key features of Mayavi.  We will
+then discuss some of the underlying technologies like enthought.traits,
+traitsUI and TVTK that form the basis of Mayavi.  The objective of this
+is to demonstrate the wide range of capabilities that both Mayavi and
+its underlying technologies provide the Python programmer.
+
+</p>
+
+
+{% endblock content %}
--- a/project/templates/talk/list-talks.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/talk/list-talks.html	Thu Nov 18 16:16:28 2010 +0530
@@ -21,7 +21,7 @@
       <td>{{ talk.contact }}</td>
       <td>{{ talk.topic }}</td>
       <td>{{ talk.duration }}</td>
-      <td>{{ talk.audience }}</td>
+      <td>{{ talk.get_audience_display }}</td>
     </tr>
   {% endfor %}
 </table>
--- a/project/templates/talk/schedule.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/talk/schedule.html	Thu Nov 18 16:16:28 2010 +0530
@@ -2,387 +2,20 @@
 {% block content %}
 <h1>SciPy.in 2010 Schedule</h1>
 <p>SciPy.in is a 6-day programme from December 13th upto December 18th, of 2010
-comprising of two days each of conference, tutorials and sprints.</p>
+comprising of two days of conference, three days of tutorials followed by corresponding sprints and a day dedicated completely to sprints.</p>
 
 
     <strong>Over all break up of activites</strong>
 
     <table cellspacing="5">
       <tr> <td align=center><strong>Date</strong></td><td><strong>Activity</strong></td> </tr>
-      <tr > <td align=right>Monday, Dec. 13 2010</td><td><a href="#day1">Conference</a></td> </tr>
-      <tr> <td align=right>Tuesday, Dec. 14 2010</td><td><a href="#day2">Conference</a></td> </tr>
-      <tr> <td align=right>Wednesday, Dec. 15 2010</td><td><a href="#tutorials">Tutorials/Sprint</a></td> </tr>
-      <tr> <td align=right>Thursday, Dec. 16 2010</td><td><a href="#tutorials">Tutorials/Sprint</a></td> </tr>
-      <tr> <td align=right>Friday, Dec. 17 2010</td><td><a href="#tutorials">Tutorials/Sprint</a></td> </tr>
-      <tr> <td align=right>Saturday, Dec. 18 2010</td><td><a href="#sprints">Full Sprint</a></td> </tr>
+      <tr > <td align=right>Monday, Dec. 13 2010</td><td><a href="/{{ params.scope }}/talks-cfp/conference/">Conference</a></td> </tr>
+      <tr> <td align=right>Tuesday, Dec. 14 2010</td><td><a href="/{{ params.scope }}/talks-cfp/conference/">Conference</a></td> </tr>
+      <tr> <td align=right>Wednesday, Dec. 15 2010</td><td><a href="/{{ params.scope }}/tutorial/">Tutorials</a>/<a href="/{{ params.scope }}/sprints/">Sprint</a></td> </tr>
+      <tr> <td align=right>Thursday, Dec. 16 2010</td><td><a href="/{{ params.scope }}/tutorial/">Tutorials</a>/<a href="/{{ params.scope }}/sprints/">Sprint</a></td> </tr>
+      <tr> <td align=right>Friday, Dec. 17 2010</td><td><a href="/{{ params.scope }}/tutorial/">Tutorials</a>/<a href="/{{ params.scope }}/sprints/">Sprint</a></td> </tr>
+      <tr> <td align=right>Saturday, Dec. 18 2010</td><td><a href="/{{ params.scope }}/sprints/">Full Sprint</a></td> </tr>
     </table>
 <br />
 
-<h2>Conference Schedule</h2>
-<h3>A detailed list of talks will be announced after accepting the Call for Papers is complete.</h3>
-<h2 id="day1">Day 1 </h2>
-
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-<caption></caption>
-<colgroup><col class="right" /><col class="left" />
-</colgroup>
-<thead>
-<tr><th scope="col" class="right">Time</th><th scope="col" class="left">Talk</th></tr>
-</thead>
-<tbody>
-<tr><td class="right">9:00-9:30</td><td class="left">Inauguration</td></tr>
-<tr><td class="right">9:30-10:30</td><td class="left">Keynote - 1</td></tr>
-<tr><td class="right">10:30-10:45</td><td class="left">Tea Break</td></tr>
-<tr><td class="right">10:45-13:15</td><td class="left">Talks</td></tr>
-<tr><td class="right">13:15-14:15</td><td class="left">Lunch</td></tr>
-<tr><td class="right">14:15-14:45</td><td class="left">Lightning Talks</td></tr>
-<tr><td class="right">14:45-15:55</td><td class="left">Talks</td></tr>
-<tr><td class="right">15:55-16:10</td><td class="left">Tea-Break</td></tr>
-<tr><td class="right">16:10-17:30</td><td class="left">Talks</td></tr>
-</tbody>
-</table>
-
-
-<h2 id="day2">Day 2 </h2>
-
-
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-<caption></caption>
-<colgroup><col class="right" /><col class="left" />
-</colgroup>
-<thead>
-<tr><th scope="col" class="right">Time</th><th scope="col" class="left">Talk</th></tr>
-</thead>
-<tbody>
-<tr><td class="right">9:00-10:00</td><td class="left">Keynote - 2</td></tr>
-<tr><td class="right">10:00-10:30</td><td class="left">Talks</td></tr>
-<tr><td class="right">10:30-10:45</td><td class="left">Tea Break</td></tr>
-<tr><td class="right">10:45-13:15</td><td class="left">Talks</td></tr>
-<tr><td class="right">13:15-14:15</td><td class="left">Lunch</td></tr>
-<tr><td class="right">14:15-14:45</td><td class="left">Lightning Talks</td></tr>
-<tr><td class="right">14:45-15:55</td><td class="left">Talks</td></tr>
-<tr><td class="right">15:55-16:10</td><td class="left">Tea-Break</td></tr>
-<tr><td class="right">16:10-17:30</td><td class="left">Talks</td></tr>
-</tbody>
-</table>
-
-
-<h2 id="tutorials">Tutorials </h2>
-
-<p>This is a rough outline of the topics to be covered in the
-tutorials. The exact schedule of the tutorials will be put up in a
-short while.
-</p>
-<ul>
-<li>
-<a href="http://www.sagemath.org" >Sage</a> 
-<ul>
-<li>
-basic usage 
-</li>
-<li>
-symbolic computing
-</li>
-<li>
-numeric computing
-</li>
-<li>
-basic plotting
-</li>
-</ul>
-</li>
-<li>
-Basic Scientific Computing with Python covering the following
-<ul>
-<li>
-ipython
-</li>
-<li>
-pylab
-</li>
-<li>
-numpy
-</li>
-<li>
-scipy
-</li>
-<li>
-basic use of Mayavi
-</li>
-</ul>
-</li>
-<li>
-Basic Python
-<ul>
-<li>
-data-types
-</li>
-<li>
-conditionals &amp; looping
-</li>
-<li>
-functions &amp; modules
-</li>
-</ul>
-</li>
-<li>
-Advanced topics
-<ul>
-<li>
-Cython
-</li>
-<li>
-More Ipython
-</li>
-<li>
-More Mayavi
-</li>
-<li>
-More matplotlib
-</li>
-<li>
-More Sage?
-
-</li>
-</ul>
-</li>
-</ul>
-
-<p>Any participants using their own laptops should have the required
-software installed on their machines, before coming to the venue of
-the tutorials. The installation instructions are available <a href="http://fossee.in/installation-how-to">here</a>.
-</p>
-
-
-<h2 id="sprints">Probable Sprint Topics </h2>
-
-
-<ul>
-<li>
-Documentation
-<ul>
-<li>
-Scipy/Numpy
-</li>
-<li>
-Mayavi
-</li>
-</ul>
-</li>
-<li>
-Mayavi
-</li>
-<li>
-Ipython
-</li>
-<li>
-Sage
-</li>
-<li>
-matplotlib
-</li>
-<li>
-Spoken tutorial
-<ul>
-<li>
-recording
-</li>
-<li>
-dubbing
-</li>
-</ul>
-</li>
-<li>
-Text books
-<ul>
-<li>
-Kreyszig - Advanced Engineering Mathematics 
-</li>
-<li>
-Strang - Linear Algebra
-</li>
-<li>
-Introduction to Dynamics - Ian Percival, Derek Richards
-
-</li>
-</ul>
-</li>
-</ul>
-
-<p>Details of the Sprints can be worked out based on the interest of
-the participants.  This will be updated as soon as more information is 
-available.
-</p>
-<p>
-Participants of Sprints who make a significant contribution will be
-given swag. The sprint lead, will choose the participants who are
-eligible for the swag. 
-</p>
-
-
-<!-- 
-<h3><strong>Theme for Conference talks - "Scientific Python in Action" with respect to Application and Teaching</strong></h3>
-<strong>Talk type:</strong> Keynote: <img src="/img/keynote.png" alt="Keynote" /> 
-General/Non-programmer: <img src="/img/general.png" alt="General" />
-Beginner Programmer: <img src="/img/beginner.png" alt="Beginner" />
-Intermediate Programmer: <img src="/img/intermediate.png" alt="Intermediate" />
-Advanced Programmer: <img src="/img/beginner.png" alt="Advanced" />
-<br /><br />
-<h2>Wireless WEP hex key-phrase for access point "space": 8a61fcbcf9</h2>
-<br /> 
-<table class="list-all-talks">
-  <h2>Day 1, Saturday, December 12th, 2009</h2>
-  <tr>
-    <th class="speaker"><h4>Time</h4></th>
-    <th class="speaker"><h4>Talk</h4>Speaker</th>
-  </tr>
-  <tr style="background-color: #90c9dc;">
-    <td>8:30AM - 9:30AM</td>
-    <td class="speaker" width="75%">Registration</td>
-  </tr>                              
-  <tr style="background-color: #90c9dc;">
-    <td>9:30AM - 10:15AM</td>
-    <td class="speaker" width="75%"><h4>Welcome</h4><hr />
-       <h4>Presidential Address</h4><hr />
-       <h4>Introduction to SciPy.in 2009</h4>Mr. Jarrod Millman<hr />
-       <h4>Inauguration</h4>Dr. Travis Oliphant<hr />
-       <h4>Vote of thanks</h4>Dr. Prabhu Ramachandran
-    </td>
-  </tr>
-  <tr style="background-color: #90c9dc;">
-    <td>10:15AM - 10:25AM</td>
-    <td class="speaker" width="75%"><h4>Introduction to Travis Oliphant</h4>Mr. Jarrod Millman</td>
-  </tr>
-  <tr style="background-color: #ebc91e;">
-    <td>10:25AM - 11:25AM</td>
-    <td class="speaker" width="75%"><h4>Keynote: SciPy Beginnings and Applications</h4>Dr. Travis Oliphant</td>
-  </tr>
-  <tr>
-    <td>11:25AM - 11:45AM</td>
-    <td class="speaker" width="75%"><h4>Tea Break</h4></td>
-  </tr>
-  <tr style="background-color: #90c9dc;">
-    <td>11:45AM - 12:45PM</td>
-    <td class="speaker" width="75%"><h4>Spoken Tutorials: Strategies for promoting open source software and
-bridging digital divide                             
-    </h4>Professor Kannan Moudgalya</td>
-  </tr>
-  <tr style="background-color: #f91828;">
-    <td>12:45PM - 1:15PM</td>
-    <td class="speaker" width="75%"><h4>A Python based SPH framework</h4>Chandrashekhar Kaushik</td>
-  </tr>
-  <tr>
-    <td>1:15PM - 2:15PM</td>
-    <td class="speaker" width="75%"><h4>Lunch Break</h4></td>
-  </tr>
-  <tr style="background-color: #04c9cb;">
-    <td>2:15PM - 2:45PM</td>
-    <td class="speaker" width="75%"><h4>Experimentation with python - why not do it the FOSS way?</h4>Praneeth Bodduluri &amp; Suryajith Chillara</td>
-  </tr>
-  <tr style="background-color: #33c910;">
-    <td>2:45PM - 3:15PM</td>
-    <td class="speaker" width="75%"><h4>Digital Image Processing with Python</h4>Debayan Banerjee</td>
-  </tr>
-  <tr style="background-color: #90c9dc;">
-    <td>3:15PM - 3:45PM</td>
-    <td class="speaker" width="75%"><h4>3D object recognition from 2D view-aspects using similarity measures</h4>Abhishek Pathak</td>
-  </tr>
-  <tr>
-    <td>3:45PM - 4:00PM</td>
-    <td class="speaker" width="75%"><h4>Tea Break</h4></td>
-  </tr>
-  <tr style="background-color: #f91828;">
-    <td>4:00PM - 5:00PM</td>
-    <td class="speaker" width="75%"><h4>Understanding GIL and How it affects your processing speed</h4>Senthil Kumaran</td>
-  </tr>
-  <tr style="background-color: #33c910;">
-    <td>5:00PM - 5:30PM</td>
-    <td class="speaker" width="75%"><h4>Language Detector for Python using n-gram</h4>Kumaran M</td>
-  </tr>
-  <tr>
-    <td>5:30PM - 6:00PM</td>
-    <td class="speaker" width="75%"><h4>General Break</h4></td>
-  </tr>
-  <tr  style="background-color: #90c9dc;">
-    <td>6:00PM - 7:00PM</td>
-    <td class="speaker" width="75%"><h4>Cultural events</h4></td>
-  </tr>
-  <tr>
-    <td>7:00PM - 8:30PM</td>
-    <td class="speaker" width="75%"><h4>Dinner</h4></td>
-  </tr>
-</table>
-<br /><br />
-<h2>Day 2, Sunday, December 13th, 2009</h2>
-<table class="list-all-talks">
-  <tr>
-    <th class="speaker"><h4>Time</h4></th>
-    <th class="speaker"><h4>Talk</h4>Speaker</th>
-  </tr>
-  <tr style="background-color: #04c9cb;">
-    <td>9:30AM - 10:00AM</td>
-    <td class="speaker" width="75%"><h4>Nipype</h4>Chris Burns</td>
-  </tr>
-  <tr style="background-color: #33c910;">
-    <td>10:00AM - 10:45AM</td>
-    <td class="speaker" width="75%"><h4>An update on the NumPy/SciPy projects &amp; a discussion of build and distribution systems</h4>David Cournapeau</td>
-  </tr>
-  <tr style="background-color: #04c9cb;">
-    <td>10:45AM - 11:15AM</td>
-    <td class="speaker" width="75%"><h4>A brief introduction to Sage</h4>Dr. Prabhu Ramachandran</td>
-  </tr>
-  <tr>
-    <td>11:15AM - 11:30AM</td>
-    <td class="speaker" width="75%"><h4>Tea Break</h4></td>
-  </tr>
-  <tr style="background-color: #04c9cb;">
-    <td>11:30AM - 12:00PM</td>
-    <td class="speaker" width="75%"><h4>Finding candidate transcription factors involved in gene regulation</h4>Farhat Habib</td>
-  </tr>
-  <tr style="background-color: #33c910;">
-    <td>12:00PM - 12:30PM</td>
-    <td class="speaker" width="75%"><h4>Python and AVRs: Perfect way to make cheap and functional instrumentation</h4>Akshay Srinivasan</td>
-  </tr>
-  <tr style="background-color: #04c9cb;">
-    <td>12:30PM -  1:00PM</td>
-    <td class="speaker" width="75%"><h4>Brain computer</h4>Deepak Nath</td>
-  </tr>
-  <tr>
-    <td>1:00PM - 2:00PM</td>
-    <td class="speaker"><h4>Lunch Break</h4></td>
-  </tr>
-  <tr style="background-color: #04c9cb;">
-    <td>3:00PM - 3:30PM</td>
-    <td class="speaker" width="75%"><h4>Chaco and Traits</h4>Dr. Travis Oliphant</td>
-  </tr>
-  <tr style="background-color: #33c910;">
-    <td>2:00PM - 3:00PM</td>
-    <td class="speaker" width="75%"><h4>Mayavi - Prabhu</h4>Dr. Prabhu Ramachandran</td>
-  </tr>
-  <tr>
-    <td>3:30PM - 3:45PM</td>
-    <td class="speaker"><h4>Tea Break</h4></td>
-  </tr>
-  <tr style="background-color: #90c9dc;">
-    <td>3:45PM - 4:15PM</td>
-    <td class="speaker" width="75%"><h4>SODAR data using fuzzy rule-base expert system package implemented in python</h4>Abhishek Pathak</td>
-  </tr>
-  <tr style="background-color: #90c9dc;">
-    <td>4:15PM - 4:45PM</td>
-    <td class="speaker" width="75%"><h4>A graph matching approach to classification of SODAR data</h4>Abhishek Pathak</td>
-  </tr>
-  <tr style="background-color: #90c9dc;">
-    <td>4:45PM - 5:15PM</td>
-    <td class="speaker" width="75%"><h4>The SciPy web and documentation tools</h4>Jarrod Millman</td>
-  </tr>
-  <tr style="background-color: #ebc91e;">
-    <td>5:15PM - 5:45PM</td>
-    <td class="speaker" width="75%"><h4>The FOSSEE project</h4>Asokan Pichai</td>
-  </tr>
-  <tr style="background-color: #90c9dc;">
-    <td>5:45PM - 6:00PM</td>
-    <td class="speaker" width="75%"><h4>Valedictory talk</h4>Dr. Prabhu Ramachandran</td>
-  </tr>
-</table>
- -->
 {% endblock content %}
--- a/project/templates/talk/speakers.html	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/templates/talk/speakers.html	Thu Nov 18 16:16:28 2010 +0530
@@ -88,6 +88,8 @@
     <br /><br />
 
     <div id="speaker"><div id="speakerphoto"></div>
+    <div id="speaker"><div id="speakerphoto"><img alt="Stéfan van der Walt"
+        src="/static/img/stefan.jpg" /></div>
     <div id="speakerinfo"><h3>Stéfan van der Walt</h3> 
         Stéfan van der Walt is a researcher and lecturer in Applied Mathematics
         at Stellenbosch University, South Africa. He holds a BEng (E&E with CS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/templates/user/dump.html	Thu Nov 18 16:16:28 2010 +0530
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+lang="en" xml:lang="en">
+<head>
+<title>Scipy User Dump</title>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="generator" content="Org-mode"/>
+<meta name="generated" content="2010-11-12 18:35:22 IST"/>
+<meta name="author" content="amit"/>
+<meta name="description" content=""/>
+<meta name="keywords" content=""/>
+<style type="text/css">
+ <!--/*--><![CDATA[/*><!--*/
+  html { font-family: Times, serif; font-size: 12pt; }
+  .title  { text-align: center; }
+  .todo   { color: red; }
+  .done   { color: green; }
+  .tag    { background-color: #add8e6; font-weight:normal }
+  .target { }
+  .timestamp { color: #bebebe; }
+  .timestamp-kwd { color: #5f9ea0; }
+  p.verse { margin-left: 3% }
+  pre {
+	border: 1pt solid #AEBDCC;
+	background-color: #F3F5F7;
+	padding: 5pt;
+	font-family: courier, monospace;
+        font-size: 90%;
+        overflow:auto;
+  }
+  table { border-collapse: collapse; }
+  td, th { vertical-align: top; }
+  dt { font-weight: bold; }
+  div.figure { padding: 0.5em; }
+  div.figure p { text-align: center; }
+  textarea { overflow-x: auto; }
+  .linenr { font-size:smaller }
+  .code-highlighted {background-color:#ffff00;}
+  .org-info-js_info-navigation { border-style:none; }
+  #org-info-js_console-label { font-size:10px; font-weight:bold;
+                               white-space:nowrap; }
+  .org-info-js_search-highlight {background-color:#ffff00; color:#000000;
+                                 font-weight:bold; }
+  /*]]>*/-->
+</style>
+<script type="text/javascript">
+<!--/*--><![CDATA[/*><!--*/
+ function CodeHighlightOn(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(null != target) {
+     elem.cacheClassElem = elem.className;
+     elem.cacheClassTarget = target.className;
+     target.className = "code-highlighted";
+     elem.className   = "code-highlighted";
+   }
+ }
+ function CodeHighlightOff(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(elem.cacheClassElem)
+     elem.className = elem.cacheClassElem;
+   if(elem.cacheClassTarget)
+     target.className = elem.cacheClassTarget;
+ }
+/*]]>*///-->
+</script>
+</head>
+<body>
+<div id="content">
+
+<h1 class="title">User Dump</h1>
+
+
+
+
+<div id="outline-container-1" class="outline-2">
+<div class="outline-text-2" id="text-1">
+
+
+<ul>
+<li>
+Gender - '&ndash;' in case not specified
+</li>
+<li>
+C - Conference
+</li>
+<li>
+S - Sprints
+</li>
+<li>
+T - Tutorial
+</li>
+<li>
+L - Bring a Laptop
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<caption></caption>
+<colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="right" /><col align="right" /><col align="right" /><col align="right" />
+</colgroup>
+<tbody>
+<tr><td><i>first name</i></td><td><i>last name</i></td><td><i>Gender</i></td><td><i>City</i></td><td><i>Organization</i></td><td><i>Occupation</i></td><td></i>C</td><td><i>S</i></td><td><i>T</i></td><td><i>L</i></td></tr>
+
+{% for row in rows %}
+<tr><td>{{ row.first_name }}</td><td>{{ row.last_name }}</td><td>{{ row.sex }}</td><td>{{ row.city }}</td><td>{{ row.organization }}</td><td>{{ row.occupation }}</td><td>{{ row.conference }}</td><td>{{ row.sprint }}</td><td>{{ row.tutorial }}</td><td>{{ row.wifi }}</td></tr>
+
+{% endfor %}
+</table>
+
+</li>
+</ul>
+</div>
+</div>
+</div>
+</body>
+</html>
--- a/project/urls.py	Thu Nov 18 14:18:33 2010 +0530
+++ b/project/urls.py	Thu Nov 18 16:16:28 2010 +0530
@@ -73,7 +73,9 @@
         'edit_profile', name='scipycon_edit_profile'),
     url(r'^%s/get-usernames/$' % (SCOPE_ARG_PATTERN),
         'get_usernames', name='scipycon_get_usernames'),
-    )
+    url(r'^%s/get-user-dump/$' % (SCOPE_ARG_PATTERN),
+        'get_user_dump', name='scipycon_get_usernames'))
+    
 
 # Proceedings
 urlpatterns += patterns('project.scipycon.proceedings.views',
@@ -108,12 +110,12 @@
     url(r'^%s/talks-cfp/schedule/$' % (SCOPE_ARG_PATTERN),
         direct_to_template, {"template": "talk/schedule.html"},
         name='scipycon_schedule'),
-    url(r'^%s/talks-cfp/tutorial/$' % (SCOPE_ARG_PATTERN),
-        direct_to_template, {"template": "talk/tutorial-schedule.html"},
-        name='scipycon_tutorial_schedule'),
-    url(r'^%s/talks-cfp/sprint/$' % (SCOPE_ARG_PATTERN),
-        direct_to_template, {"template": "talk/sprint-schedule.html"},
-        name='scipycon_sprint_schedule'),
+    # url(r'^%s/talks-cfp/tutorial/$' % (SCOPE_ARG_PATTERN),
+    #     direct_to_template, {"template": "talk/tutorial-schedule.html"},
+    #     name='scipycon_tutorial_schedule'),
+    # url(r'^%s/talks-cfp/sprint/$' % (SCOPE_ARG_PATTERN),
+    #     direct_to_template, {"template": "talk/sprint-schedule.html"},
+    #     name='scipycon_sprint_schedule'),
     url(r'^%s/talks-cfp/speakers/$' % (SCOPE_ARG_PATTERN),
         direct_to_template, {"template": "talk/speakers.html"},
         name='scipycon_speakers'),
@@ -126,6 +128,18 @@
     url(r'^%s/organizers/$' % (SCOPE_ARG_PATTERN),
         direct_to_template, {"template": "about/organizers.html"},
         name='scipycon_organizers'),
+    url(r'^%s/talks-cfp/conference/$' % (SCOPE_ARG_PATTERN),
+        direct_to_template, {"template": "talk/conf_schedule.html"},
+        name='scipycon_conference'),
+    url(r'^%s/tutorial/$' % (SCOPE_ARG_PATTERN),
+        direct_to_template, {"template": "about/tutorial.html"},
+        name='scipycon_tutorial'),
+    url(r'^%s/sprints/$' % (SCOPE_ARG_PATTERN),
+        direct_to_template, {"template": "about/sprints.html"},
+        name='scipycon_sprints'),
+    url(r'^%s/certificates/$' % (SCOPE_ARG_PATTERN),
+        direct_to_template, {"template": "about/certificates.html"},
+        name='scipycon_certificates'),
 
     )