Merging heads
authorAmit Sethi
Fri, 24 Dec 2010 16:02:21 +0530
changeset 368 704af5be5fb9
parent 367 206a8a72d77c (current diff)
parent 366 a52775d210e3 (diff)
child 369 7ea06f159d15
Merging heads
--- a/buildout.cfg	Fri Dec 24 15:54:25 2010 +0530
+++ b/buildout.cfg	Fri Dec 24 16:02:21 2010 +0530
@@ -1,16 +1,27 @@
 [buildout]
-parts = django tagging django-robots south
+parts = django tagging django-robots south reportlab
 eggs = 
     Werkzeug
     PIL
     docutils
+
+[versions]
+reportlab=2.5
+
+[reportlab]
+recipe=zc.recipe.egg
+eggs=
     reportlab
+find-links=
+    http://distfiles.minitage.org/public/externals/minitage/
 
 [django]
 recipe = djangorecipe
 version = 1.2.1
 settings = production
-eggs = ${buildout:eggs}
+eggs =
+    ${buildout:eggs}
+    ${reportlab:eggs}
 pythonpath = 
     ${tagging:location}
     ${django-robots:location}
--- a/development.cfg	Fri Dec 24 15:54:25 2010 +0530
+++ b/development.cfg	Fri Dec 24 16:02:21 2010 +0530
@@ -5,4 +5,6 @@
 
 [django]
 settings = development
-eggs = ${buildout:eggs}
+eggs = 
+    ${buildout:eggs}
+    ${reportlab:eggs}
--- a/project/scipycon/registration/admin.py	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/scipycon/registration/admin.py	Fri Dec 24 16:02:21 2010 +0530
@@ -11,10 +11,11 @@
 from .models import Wifi
 
 class RegistrationAdmin(admin.ModelAdmin):
-    list_display = ('registrant', 'full_name', 'laptop', 'slug',
-            'email', 'city', 'organisation', 'occupation',
-            'postcode', 'tshirt', 'conference', 'tutorial',
-            'sprint', 'allow_contact')
+    list_display = ('registrant', 'full_name', 'phone_num', 
+                    'laptop', 'slug', 'email', 'city',
+                    'organisation', 'occupation', 'postcode',
+                    'tshirt', 'conference', 'tutorial',
+                    'sprint', 'allow_contact')
     fieldsets = (
         ('Details', {
             'fields': ('slug', 'registrant', 'organisation', 'occupation',
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/scipycon/registration/migrations/0002_auto__add_field_payment_acco_confirmed.py	Fri Dec 24 16:02:21 2010 +0530
@@ -0,0 +1,117 @@
+# 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 'Payment.acco_confirmed'
+        db.add_column('registration_payment', 'acco_confirmed', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Deleting field 'Payment.acco_confirmed'
+        db.delete_column('registration_payment', 'acco_confirmed')
+
+
+    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.payment': {
+            'Meta': {'object_name': 'Payment'},
+            'acco_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'details': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '25', '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']
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/scipycon/registration/migrations/0003_auto__add_field_payment_date_confirmed.py	Fri Dec 24 16:02:21 2010 +0530
@@ -0,0 +1,118 @@
+# 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 'Payment.date_confirmed'
+        db.add_column('registration_payment', 'date_confirmed', self.gf('django.db.models.fields.DateTimeField')(default=False, blank=True), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Deleting field 'Payment.date_confirmed'
+        db.delete_column('registration_payment', 'date_confirmed')
+
+
+    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.payment': {
+            'Meta': {'object_name': 'Payment'},
+            'acco_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_confirmed': ('django.db.models.fields.DateTimeField', [], {'default': 'False', 'blank': 'True'}),
+            'details': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '25', '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']
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/scipycon/registration/migrations/0004_auto__chg_field_payment_date_confirmed.py	Fri Dec 24 16:02:21 2010 +0530
@@ -0,0 +1,118 @@
+# 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):
+        
+        # Changing field 'Payment.date_confirmed'
+        db.alter_column('registration_payment', 'date_confirmed', self.gf('django.db.models.fields.DateTimeField')(null=True))
+
+
+    def backwards(self, orm):
+        
+        # Changing field 'Payment.date_confirmed'
+        db.alter_column('registration_payment', 'date_confirmed', self.gf('django.db.models.fields.DateTimeField')())
+
+
+    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.payment': {
+            'Meta': {'object_name': 'Payment'},
+            'acco_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_confirmed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'details': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '25', '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']
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/scipycon/registration/migrations/0005_auto__add_field_payment_confirmed_mail__add_field_payment_acco_confirm.py	Fri Dec 24 16:02:21 2010 +0530
@@ -0,0 +1,126 @@
+# 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 'Payment.confirmed_mail'
+        db.add_column('registration_payment', 'confirmed_mail', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+        # Adding field 'Payment.acco_confirmed_mail'
+        db.add_column('registration_payment', 'acco_confirmed_mail', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Deleting field 'Payment.confirmed_mail'
+        db.delete_column('registration_payment', 'confirmed_mail')
+
+        # Deleting field 'Payment.acco_confirmed_mail'
+        db.delete_column('registration_payment', 'acco_confirmed_mail')
+
+
+    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.payment': {
+            'Meta': {'object_name': 'Payment'},
+            'acco_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'acco_confirmed_mail': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'confirmed_mail': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_confirmed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'details': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '25', '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']
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/scipycon/registration/migrations/0006_auto__add_field_accommodation_accommodation_on_1st__add_field_accommod.py	Fri Dec 24 16:02:21 2010 +0530
@@ -0,0 +1,156 @@
+# 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 'Accommodation.accommodation_on_1st'
+        db.add_column('registration_accommodation', 'accommodation_on_1st', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+        # Adding field 'Accommodation.accommodation_on_2nd'
+        db.add_column('registration_accommodation', 'accommodation_on_2nd', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+        # Adding field 'Accommodation.accommodation_on_3rd'
+        db.add_column('registration_accommodation', 'accommodation_on_3rd', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+        # Adding field 'Accommodation.accommodation_on_4th'
+        db.add_column('registration_accommodation', 'accommodation_on_4th', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+        # Adding field 'Accommodation.accommodation_on_5th'
+        db.add_column('registration_accommodation', 'accommodation_on_5th', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+        # Adding field 'Accommodation.accommodation_on_6th'
+        db.add_column('registration_accommodation', 'accommodation_on_6th', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Deleting field 'Accommodation.accommodation_on_1st'
+        db.delete_column('registration_accommodation', 'accommodation_on_1st')
+
+        # Deleting field 'Accommodation.accommodation_on_2nd'
+        db.delete_column('registration_accommodation', 'accommodation_on_2nd')
+
+        # Deleting field 'Accommodation.accommodation_on_3rd'
+        db.delete_column('registration_accommodation', 'accommodation_on_3rd')
+
+        # Deleting field 'Accommodation.accommodation_on_4th'
+        db.delete_column('registration_accommodation', 'accommodation_on_4th')
+
+        # Deleting field 'Accommodation.accommodation_on_5th'
+        db.delete_column('registration_accommodation', 'accommodation_on_5th')
+
+        # Deleting field 'Accommodation.accommodation_on_6th'
+        db.delete_column('registration_accommodation', 'accommodation_on_6th')
+
+
+    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_on_1st': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'accommodation_on_2nd': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'accommodation_on_3rd': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'accommodation_on_4th': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'accommodation_on_5th': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'accommodation_on_6th': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            '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.payment': {
+            'Meta': {'object_name': 'Payment'},
+            'acco_confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'acco_confirmed_mail': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'confirmed_mail': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_confirmed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'details': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '25', '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/views.py	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/scipycon/registration/views.py	Fri Dec 24 16:02:21 2010 +0530
@@ -1,3 +1,4 @@
+import csv
 import datetime
 import time
 
@@ -8,6 +9,8 @@
 from django.contrib.auth.models import User
 from django.core.exceptions import ObjectDoesNotExist
 from django.core.urlresolvers import reverse
+from django.http import HttpResponse
+from django.http import HttpResponseRedirect
 from django.shortcuts import render_to_response
 from django.template import loader
 from django.template import RequestContext
@@ -316,18 +319,139 @@
             redirect_to, msg = u'You must be a staff on this website to '
             'access this page.')
 
-    q = Registration.objects.all()
-    conf_num = q.filter(conference=True).count()
-    tut_num = q.filter(tutorial=True).count()
-    sprint_num = q.filter(sprint=True).count()
+    reg_q = Registration.objects.all()
+    conf_num = reg_q.filter(conference=True).count()
+    tut_num = reg_q.filter(tutorial=True).count()
+    sprint_num = reg_q.filter(sprint=True).count()
+
+    acco_q = Accommodation.objects.all()
+    male = acco_q.filter(sex='Male').count()
+    female = acco_q.filter(sex='Female').count()
+
+    # Day 1 details
+    day1 = acco_q.filter(accommodation_on_1st=True)
+    acco_1 = {
+       'total': day1.count(),
+       'male': day1.filter(sex='Male').count(),
+       'female': day1.filter(sex='Female').count()
+       }
+
+    # Day 2 details
+    day2 = acco_q.filter(accommodation_on_2nd=True)
+    acco_2 = {
+       'total': day2.count(),
+       'male': day2.filter(sex='Male').count(),
+       'female': day2.filter(sex='Female').count()
+       }
+
+    # Day 3 details
+    day3 = acco_q.filter(accommodation_on_3rd=True)
+    acco_3 = {
+       'total': day3.count(),
+       'male': day3.filter(sex='Male').count(),
+       'female': day3.filter(sex='Female').count()
+       }
+
+    # Day 4 details
+    day4 = acco_q.filter(accommodation_on_4th=True)
+    acco_4 = {
+       'total': day4.count(),
+       'male': day4.filter(sex='Male').count(),
+       'female': day4.filter(sex='Female').count()
+       }
+
+
+    # Day 5 details
+    day5 = acco_q.filter(accommodation_on_5th=True)
+    acco_5 = {
+       'total': day5.count(),
+       'male': day5.filter(sex='Male').count(),
+       'female': day5.filter(sex='Female').count()
+       }
+
+    # Day 6 details
+    day6 = acco_q.filter(accommodation_on_6th=True)
+    acco_6 = {
+       'total': day6.count(),
+       'male': day6.filter(sex='Male').count(),
+       'female': day6.filter(sex='Female').count()
+       }
 
     return render_to_response(template_name, RequestContext(request,
         {'params': {'scope': scope},
          'conf_num': conf_num, 
          'tut_num': tut_num,
          'sprint_num': sprint_num,
+         'male': male,
+         'female':female,
+         'acco_days': [acco_1, acco_2, acco_3, acco_4, acco_5, acco_6],
          }))
 
+@login_required
+def regstats_download(request, scope):
+    """Sends a downloadable PDF for registration statistics
+    """
+
+    if not request.user.is_staff:
+        redirect_to = reverse('scipycon_login')
+        return HttpResponseRedirect(redirect_to)
+
+    filename = 'regstats%s.csv' % datetime.datetime.strftime(
+      datetime.datetime.now(), '%Y%m%d%H%M%S')
+
+    response = HttpResponse(mimetype='text/csv')
+    response['Content-Disposition'] = 'attachment; filename=%s' % (
+      filename)
+
+    output = csv.writer(response)
+
+    output.writerow(['Name', 'Gender', 'City',
+                     'Registration Fees Paid',
+                     'Attending Conference',
+                     'Attending Tutorial',
+                     'Attending Sprint',
+                     'Laptop Identification Number',
+                     'Accommodation Fees Paid',
+                     'Accommodation on 12th night',
+                     'Accommodation on 13th night',
+                     'Accommodation on 14th night',
+                     'Accommodation on 15th night',
+                     'Accommodation on 16th night',
+                     'Accommodation on 17th night'])
+
+    regs = Registration.objects.order_by(
+      'registrant__first_name', 'registrant__last_name')
+    for reg in regs:
+        row = []
+
+        payment, create = reg.registrant.payment_set.get_or_create(
+          user=reg.registrant, scope=reg.scope)
+        acco, created = reg.registrant.accommodation_set.get_or_create(
+          user=reg.registrant, scope=reg.scope)
+        wifi, create = reg.registrant.wifi_set.get_or_create(
+          user=reg.registrant, scope=reg.scope)
+
+        row.append('"%s"' % reg.registrant.get_full_name())
+        row.append(acco.sex)
+        row.append(reg.city)
+        row.append('Yes' if payment.confirmed else 'No')
+        row.append('Yes' if reg.conference else 'No')
+        row.append('Yes' if reg.tutorial else 'No')
+        row.append('Yes' if reg.sprint else 'No')
+        row.append(wifi.registration_id)
+        row.append('Yes' if payment.acco_confirmed
+           else 'No')
+        row.append('Yes' if acco.accommodation_on_1st else 'No')
+        row.append('Yes' if acco.accommodation_on_2nd else 'No')
+        row.append('Yes' if acco.accommodation_on_3rd else 'No')
+        row.append('Yes' if acco.accommodation_on_4th else 'No')
+        row.append('Yes' if acco.accommodation_on_5th else 'No')
+        row.append('Yes' if acco.accommodation_on_6th else 'No')
+        output.writerow(row)
+
+    #output.writerow()
+    return response
+
 
 @login_required
 def manage_payments(request, scope,
--- a/project/scipycon/user/views.py	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/scipycon/user/views.py	Fri Dec 24 16:02:21 2010 +0530
@@ -329,6 +329,9 @@
 
 @login_required
 def badge(request,scope):
+
+    from django.conf import settings
+
     # Create the HttpResponse object with the appropriate PDF headers.
     response = HttpResponse(mimetype='application/pdf')
     response['Content-Disposition'] = 'attachment; filename=scipybadge.pdf'
@@ -341,7 +344,8 @@
     # See the ReportLab documentation for the full list of functionality.
     c.rect(ref,ref,9*cm,6*cm)
 
-    im = reportlabImage("project/static/img/scipyshiny_small.png", width=1.75*cm, height=1.75*cm)
+    img_path = os.path.join(settings.STATIC_ROOT, 'img', 'scipyshiny_small.png')
+    im = reportlabImage(img_path, width=1.75*cm, height=1.75*cm)
     im.drawOn(c,(ref+0.8*cm),(ref+4.3*cm))
     c.setFont('Helvetica', 6)
     c.drawString((ref+1.0*cm),(ref+4.2*cm),'scipy.in 2010') 
Binary file project/static/css/jquery-ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-bg_glass_55_fbf9ee_1x400.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-bg_glass_75_dadada_1x400.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-bg_glass_75_e6e6e6_1x400.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-bg_glass_95_fef1ec_1x400.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-bg_highlight-soft_75_cccccc_1x100.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-icons_222222_256x240.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-icons_2e83ff_256x240.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-icons_454545_256x240.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-icons_888888_256x240.png has changed
Binary file project/static/css/jquery-ui-lightness/images/ui-icons_cd0a0a_256x240.png has changed
Binary file project/static/img/jubilee_html_19fded16.png has changed
Binary file project/static/img/mgbs_html_19fded16.png has changed
Binary file project/static/img/nampally_html_19fded16.png has changed
Binary file project/static/img/secunderabad_html_19fded16.png has changed
--- a/project/templates/_menu.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/_menu.html	Fri Dec 24 16:02:21 2010 +0530
@@ -69,28 +69,19 @@
     <li>
       About
       <ul>
-       
-            <li>
-              <a href="/{{ params.scope }}/about/accommodation/">
-		Accommodation
-              </a>
-            </li>
         <li>
-       <!--
-	  <a href="/{{ params.scope }}/about/food/">
-            Food
+          <a href="/{{ params.scope }}/about/accommodation/">
+          Accommodation
           </a>
         </li>
-        -->
+        <li>
+          <a href="/{{ params.scope }}/about/food/">Food</a>
+        </li>
         <li><a href="/{{ params.scope }}/about/venue/">The Venue</a></li>
         <li><a href="{% url scipycon_city params.scope %}">Host City - Hyderabad</a></li>
-        <!--
-            <li>
-              <a href="/{{ params.scope }}/about/reaching/">
-		Reaching the venue
-              </a>
-            </li>
-            -->
+        <li>
+          <a href="/{{ params.scope }}/about/reaching/">Reaching the venue</a>
+        </li>
       </ul>
     </li>
     <li><a href="/{{ params.scope }}/publicity/">Publicity</a></li>
--- a/project/templates/_right_menu.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/_right_menu.html	Fri Dec 24 16:02:21 2010 +0530
@@ -1,22 +1,48 @@
 <div id="right-inner">
   <h2>Organizers</h2>
   <p><ul>
-    <li><img src="/static/img/fossee.jpg" alt="FOSSEE Logo" title="FOSSEE Logo"
-    height="90" />
-    <a href="http://fossee.in/">
-    FOSSEE Team</a></li>
+    <li><a href="http://fossee.in/">FOSSEE Team</a></li>
   </ul></p>
-  <br/><br/>
   <h2>Local Organizers</h2>
   <p><ul>
-    <li><img src="/static/img/enhanceedu_logo.png" alt="IIIT-H Logo"
-    title="IIIT-H Logo" height="150" /><br/>
-    <a href="http://enhanceedu.iiit.ac.in/">
-    EnhanceEdu, IIIT-Hyderabad</a></li>
-    <br/>
-    <li><img src="/static/img/fossee.jpg" alt="FOSSEE Logo" title="FOSSEE Logo"
-    height="90" />
-    <a href="http://fossee.in/">
-    FOSSEE Team</a></li>
+    <li><a href="http://enhanceedu.iiit.ac.in/">EnhanceEdu, IIIT-Hyderabad</a></li>
+    <li><a href="http://fossee.in/">FOSSEE Team</a></li>
+  </ul></p>
+  <h2><strong>Main Sponsor</strong></h2>
+  <p><ul>
+    <li><a href="/scipyin/2010/about/sponsors/">
+    <img src="/static/img/fossee.jpg" alt="FOSSEE Logo" title="FOSSEE Logo"
+    width="240" /></a></li>
+  </ul></p>
+  <h2><strong>Additional Sponsors</strong></h2>
+  <p><ul>
+    <li><a href="/scipyin/2010/about/sponsors/">
+    <img src="/static/img/enthought_logo.png" alt="Enthought Logo"
+    title="Enthought Logo"  width="240"/><br/></a></li>
+    <li><a href="/scipyin/2010/about/sponsors/">
+    <img src="/static/img/python_logo.gif" alt="PSF Logo"
+    title="PSF Logo" width=260/><br/></a></li>
   </ul></p>
-</div>
+  <h2><strong>Accommodation Sponsors</strong></h2>
+  <p><ul>
+    <li><a href="/scipyin/2010/about/sponsors/">
+    <img src="/static/img/enhanceedu_logo.png" alt="IIIT-H Logo"
+    title="IIIT-H Logo" height="150" /><br/></a></li>
+  </ul></p>
+  <h2><strong>Venue Sponsors</strong></h2>
+  <p><ul>
+    <li><a href="/scipyin/2010/about/sponsors/">
+    <img src="/static/img/isb_logo.gif"
+    alt="Indian School of Business Logo"
+    title="Indian School of Business" /><br /></a></li>
+    <br />
+    <li><a href="/scipyin/2010/about/sponsors/">
+    <img src="/static/img/mahindra_satyam_logo.jpg"
+    alt="Mahindra Satyam Logo"
+    title="Mahindra Satyam Logo" height=23  width="240" /></a></li>
+    <br />
+    <li><a href="/scipyin/2010/about/sponsors/">
+    <img src="/static/img/iiith_logo.gif" alt="IIIT-H Logo"
+    title="IIIT-H Logo" height="108" /><br/></a></li>
+  </ul></p>
+</div>
\ No newline at end of file
--- a/project/templates/about/accommodation.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/about/accommodation.html	Fri Dec 24 16:02:21 2010 +0530
@@ -1,14 +1,15 @@
 {% extends "base.html" %}
 {% block content %}
 <h1>Accommodation for delegates</h1>
-<p class="noindent">40 rooms have been reserved for the male students
-and faculty on a triple sharing basis. In total we can accommodate 120
-male participants.  We also have reserved 10 rooms to female
-participants on twin sharing basis. Thus we can provide accommodation
-for 20 female participants. People who pay the accommodation fee
-through our fee payment process will be alloted accommodation on
-first-come-first-serve basis. For further details visit:
-<a href="http://scipy.in/scipyin/2010/about/fees/">
+<p class="noindent">Forty rooms have been reserved for male students
+and faculty on a triple sharing basis in the hostels at IIIT. In total,
+we can accommodate 120 male participants. We also have reserved 10
+rooms for female participants on twin sharing basis. Thus, we can
+provide accommodation for 20 female participants. People who pay the
+accommodation fee through our fee payment process will be allotted
+accommodation on first-come-first-serve basis. Accommodation cannot
+be assured if the fee is not paid by December 10th, 2010. For further
+details visit: <a href="http://scipy.in/scipyin/2010/about/fees/">
 http://scipy.in/scipyin/2010/about/fees/</a>
 </p>
 
--- a/project/templates/about/food.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/about/food.html	Fri Dec 24 16:02:21 2010 +0530
@@ -1,4 +1,121 @@
 {% extends "base.html" %}
 {% block content %}
-<h1>We will update this page once we have more information on it.</h1>
+<p>Lunch will be provided on all days. Tea/coffee and biscuits will be provided
+twice a day on all days. Participants will have to make their own arrangements
+for breakfast and dinner. They can inform the organizers at the registration
+desk on Day 1 of the conference if opting to eat any meals at the IIITH
+messes/canteens. Informing us in prior will ensure availability of food
+at these places. IIITH  offers highly subsidized meals at the rate of Rs.20 for 
+breakfast and Rs.30 for dinner.
+
+In addition, please find below a list of some eateries in the vicinity of 
+IIITH.</p>
+
+<table class="scipycon-default-border" cellpadding="6" rules="groups" frame="hsides">
+  <tr>
+    <th>Name</th>
+    <th>Type of food</th>
+    <th>Distance from IIIT-H</th>
+    <th>Address</th>
+    <th>Price</th>
+  </tr>
+  <tr>
+    <td>Vennela Mess</td>
+    <td>South Indian</td>
+    <td>1KM</td>
+    <td>Indra Nagar, Gachibowli, Hyderabad</td>
+    <td>Full meal is Rs. 55</td>
+  </tr>
+  <tr>
+    <td>Nellore Mess</td>
+    <td>South Indian</td>
+    <td>1 KM</td>
+    <td>Opposite DLF Building, Gachibowli, Hyderabad</td>
+    <td>Rate for full meal is Rs. 40</td>
+  </tr>
+  <tr>
+    <td>Hot Roties</td>
+    <td>North Indian</td>
+    <td>1KM</td>
+    <td>Indra Nagar, Gachibowli, Hyderabad</td>
+    <td>Rate for full meal is Rs. 40</td>
+  </tr>
+  <tr>
+    <td>Subway</td>
+    <td></td>
+    <td>0.5 KM</td>
+    <td>Indra Nagar, Gachibowli, Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Domino's Pizza</td>
+    <td></td>
+    <td>1KM</td>
+    <td>Indra Nagar, Gachibowli, Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Pizza Corner</td>
+    <td></td>
+    <td>1KM</td>
+    <td>Indra Nagar, Gachibowli, Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>The Wonton</td>
+    <td>Chinese</td>
+    <td>1KM</td>
+    <td>Indra Nagar, Gachibowli, Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Punjabi Rasoi</td>
+    <td></td>
+    <td>2KM</td>
+    <td>Cross Road, Gachibowli, Hyderabad, ph: 040- 65523257</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Swagath De Royal</td>
+    <td></td>
+    <td>4KM</td>
+    <td>Kondapur, Kothaguda X Road's,Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Slizzing Grills</td>
+    <td></td>
+    <td>4KM</td>
+    <td>2nd Floor, Sri Tirumala Subash Arcade, Kothaguda X Roads, Kondapur, Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>F9 Diner</td>
+    <td></td>
+    <td>4KM</td>
+    <td>4th Floor Pavan Priyanka Plaza, Opp Harsha Toyota & Above Kun Hyundai, Kondapur, Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Dine vally</td>
+    <td></td>
+    <td>4KM</td>
+    <td>Opp Police Commissionerate Office, Gachibowli, Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Quality INN</td>
+    <td></td>
+    <td>4KM</td>
+    <td>Lumbini Enclave, Opposite Engineering Staff College, Gachibowli, Hyderabad</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Haveli</td>
+    <td></td>
+    <td>4KM</td>
+    <td>148 Beside Kothaguda Post Office, Commercial Complex, Main Road, Kondapur, Hyderabad</td>
+    <td></td>
+  </tr>
+</table>
 {% endblock content %}
\ No newline at end of file
--- a/project/templates/about/important_dates.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/about/important_dates.html	Fri Dec 24 16:02:21 2010 +0530
@@ -5,7 +5,7 @@
   <p><ul class="entry">
     <li>November 10, 2010, Wednesday: Abstracts Due</li>
     <li>November 15, 2010, Monday: Schedule announced
-    <li>December 05, 2010, Sunday: Proceedings paper submission due
+    <li>December 08, 2010, Sunday: Proceedings paper submission due
     <li>December 13-14, 2010, Monday-Tuesday: Conference
     <li>December 15-17, 2010, Wednesday-Friday: Tutorials/Sprints
     <li>December 18, 2010, Saturday: Sprints
--- a/project/templates/about/organizers.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/about/organizers.html	Fri Dec 24 16:02:21 2010 +0530
@@ -61,7 +61,7 @@
 
 <ul>
 <li>
-Prabhu Ramachandran (co-chair)
+Prabhu Ramachandran
 </li>
 <li>
 Anoop Jacob Thomas
@@ -97,7 +97,7 @@
 
 <ul>
 <li>
-Sandhya Kode (co-chair)
+Sandhya Kode
 </li>
 <li>
 Venkatesh Choppella
--- a/project/templates/about/reaching.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/about/reaching.html	Fri Dec 24 16:02:21 2010 +0530
@@ -1,44 +1,1467 @@
 {% extends "base.html" %}
 {% block content %}
-<h1>How to reach the venue?</h1>
-To be updated with information soon.
-<!-- 
-<p class="noindent">Once you reach Trivandrum Central Station, you can reach Technopark by
-bus, taxi or an autorickshaw.</p>
+<h1>How to reach the venues?</h1>
+
+<h1 class="title">Travel Information</h1>
+
+
+<h2>Table of Contents</h2>
+
+<ul>
+<li><a href="#sec-1">General Travel Information </a>
+<ul>
+<li><a href="#sec-1_1">Air Travel </a></li>
+<li><a href="#sec-1_2">Train Travel </a></li>
+<li><a href="#sec-1_3">Road Travel </a></li>
+<li><a href="#sec-1_4">Local Travel in Hyderabad </a></li>
+</ul>
+</li>
+<li><a href="#sec-2">Reaching IIIT-H </a>
+<ul>
+<li><a href="#sec-2_1">From Airport </a></li>
+<li><a href="#sec-2_2">From Secuderabad Railway Station </a></li>
+<li><a href="#sec-2_3">From Nampally Railway Station </a></li>
+<li><a href="#sec-2_4">From Lingampally Railway Station </a></li>
+<li><a href="#sec-2_5">From Mahatma Gandhi Bus Station (MGBS) </a></li>
+</ul>
+</li>
+<li><a href="#sec-3">Reaching MSLW </a>
+<ul>
+<li><a href="#sec-3_1">From Secunderabad Railway Station </a>
+<ul>
+<li><a href="#sec-3_1_1">Car/Bike route </a></li>
+<li><a href="#sec-3_1_2">Bus Route </a></li>
+<li><a href="#sec-3_1_3">Train Route </a></li>
+</ul>
+</li>
+<li><a href="#sec-3_2">From Nampally Railway Station </a>
+<ul>
+<li><a href="#sec-3_2_1">Car/Bike route </a></li>
+<li><a href="#sec-3_2_2">Bus Route </a></li>
+<li><a href="#sec-3_2_3">Train Route </a></li>
+</ul>
+</li>
+<li><a href="#sec-3_3">From Jubilee Bus Stop </a>
+<ul>
+<li><a href="#sec-3_3_1">Car/Bike route </a></li>
+<li><a href="#sec-3_3_2">Bus Route </a></li>
+<li><a href="#sec-3_3_3">Train Route </a></li>
+</ul>
+</li>
+<li><a href="#sec-3_4">From MGBS </a>
+<ul>
+<li><a href="#sec-3_4_1">Car/Bike </a></li>
+<li><a href="#sec-3_4_2">Bus Route </a></li>
+</ul></li>
+</ul>
+</li>
+<li><a href="#sec-4">Reaching ISB </a>
+<ul>
+<li><a href="#sec-4_1">From Secunderabad Railway Station </a>
+<ul>
+<li><a href="#sec-4_1_1">Car/Bike Route </a></li>
+<li><a href="#sec-4_1_2">Bus Route </a></li>
+<li><a href="#sec-4_1_3">Train Route </a></li>
+</ul>
+</li>
+<li><a href="#sec-4_2">From Nampally Railway Station </a>
+<ul>
+<li><a href="#sec-4_2_1">Car/Bike route </a></li>
+<li><a href="#sec-4_2_2">Bus Route </a></li>
+<li><a href="#sec-4_2_3">Train Route </a></li>
+</ul>
+</li>
+<li><a href="#sec-4_3">From MGBS </a>
+<ul>
+<li><a href="#sec-4_3_1">Car/Bike route </a></li>
+<li><a href="#sec-4_3_2">Bus Route </a></li>
+</ul>
+</li>
+<li><a href="#sec-4_4">From Jubilee Bus Stop </a>
+<ul>
+<li><a href="#sec-4_4_1">Car/Bike route </a></li>
+<li><a href="#sec-4_4_2">Bus Route </a></li>
+<li><a href="#sec-4_4_3">Train Route </a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+
+
+
+<h2 id="sec-1">General Travel Information </h2>
+
+
+
+
+
+
+<h3 id="sec-1_1">Air Travel </h3>
+
+
+
+<p>
+India has well established airline infrastructure. Airlines of more
+than 50 countries are operating services to/from India. Links to
+international and domestic airlines operating to/in India can be
+found here.
+<a href="http://civilaviation.nic.in/internationalAirports.html">http://civilaviation.nic.in/internationalAirports.html</a>
+</p>
+<p>
+A few international flights are also operating to and from
+Hyderabad. And Hyderabad is well connected to major cities and
+states in India by air, rail and road. Travel tips, help desk,
+hotel guide etc for travelers are available at Ministry of Tourism
+site.
+(<a href="http://www.incredibleindia.org/">http://www.incredibleindia.org/</a>)
+</p>
+<p>
+Air India, Indian Airlines, Jet Airways, Sahara Air, Emirates
+Airlines, Malaysia Airlines, Kingfisher Airlines, etc are operating
+flights in and out of Hyderabad. Detailed Flights Information can
+be found here:
+<a href="http://www.hyderabad.aero/traveller.aspx">http://www.hyderabad.aero/traveller.aspx</a>
+</p>
+<p>
+Transportation at GMR Hyderabad International Airport
+</p>
+<p>
+Radio Taxis, Car Rentals, and Shuttle Service; see details at
+</p>
+<p>
+<a href="http://www.hyderabad.aero/to-from-airport.aspx">http://www.hyderabad.aero/to-from-airport.aspx</a>
+</p>
+
+
+
+
+
+<h3 id="sec-1_2">Train Travel </h3>
+
+
+
+<p>
+The Indian railway, the world's largest railway under a single
+management, today is divided into nine zones. Secuderabad, the
+twin-city of Hyderabad, is the headquarters of the South Central
+Zone. All major trains stops or departs from here. The schedule,
+availability of tickets etc can be found here.
+(<a href="http://www.indianrail.gov.in/">http://www.indianrail.gov.in/</a>)
+</p>
+
+
+
+
+
+<h3 id="sec-1_3">Road Travel </h3>
+
+
 
-<p class="noindent">To take a bus to Technopark, you need to go to the Thampanoor bus stand
-located opposite to the Trivandrum central railway station and board a bus
-that leaves for Kollam. The ticket costs you about Rs.20. You must get
-down at Kazhakuttam stop. From there you must hire an autorickshaw to
-Technopark. Auto fare to Technopark is between Rs.10-15.</p>
+<p>
+The Andhra Pradesh State Road Transport Corporation (APSRTC)
+(<a href="http://apsrtc.gov.in/">http://apsrtc.gov.in/</a>) connects
+Hyderabad to every city, town and all except very small villages in
+the state. Express and luxury coaches are available for inter-city
+and interstate services. Chauffeur driven private cars and taxis
+for long distance travel are available in Hyderabad, operated by
+Andhra Pradesh Travel and Tourism Development Corporation (APTTDC)
+and private operators.
+</p>
+
+
+
+
+
+<h3 id="sec-1_4">Local Travel in Hyderabad </h3>
+
+
+
+<p>
+<b>What are the modes of transport for travel in Hyderabad?</b>
+</p>
+<ol>
+<li>
+Local Travel Car Rental Services: Typically, you can rent a car for
+4hrs/40KMs (Rs.400/- or 8hrs (Rs.600/-) with additional charges for
+extra hours and distances.
+
+</li>
+<li>
+Metered Taxi Services: Typically they charge @ Rs.15/- per
+kilometer with a minimum of Rs.60/4kms.
+
+<ul>
+<li>
+Dot Cabs: +91-40-2424 2424, +91-40-2424 2424
+
+</li>
+<li>
+Easy Cabs: +91-40-4343 4343, +91-40-4343 4343
+
+</li>
+<li>
+Cell Cabs: +91-40-2324 2526, +91-40-2324 2526
+
+</li>
+<li>
+Meru: +91-40-4422 4422, +91-40-4422 4422
+
+</li>
+</ul>
+</li>
+<li>
+Metered Autos: 3 wheelers or Autos Rikshaws are fairly popular in
+Hyderabad. Slightly larger shared-ride 7-seaters will charge by
+distances, usually Rs.3/- per km. They travel on fixed routes. The
+smaller "3-seaters" are metered and charge Rs.8/- per
+km. (min. Rs.10/-)
+
+</li>
+<li>
+Buses: Hyderabad has very excellent local bus transport system. One
+needs very specific information. Do not take bus unless you are
+going with a local person. For more local information, you can
+visit <a href="http://www.fullhyderabad.com/">http://www.fullhyderabad.com</a>
+</li>
+</ol>
+
+
+<p>
+<b>For Hyderabad Excursions and Shopping please visit:</b>
+</p>
+<p>
+<a href="http://www.Hyderabad.Org.Uk/Excursions/">Excursions</a>
+<a href="http://www.bharatonline.com/andhra-pradesh/travel/hyderabad/excursions.html">Hyderabad Shopping</a>
+</p>
+<p>
+The following websites can help find more information about
+Hyderabad.
+</p>
+<p>
+<a href="http://www.aptourism.in/hplaces.html">AP Tourism</a>
+<a href="http://tourisminap.com/tourpack/hyderabad.php">Tourism in Andhra Pradesh</a>
+<a href="http://www.hydonline.com/">Hyderabad Online</a>
+<a href="http://www.fullhyderabad.com/">Full Hyderabad</a>
+</p>
+
+
+
+
+
+
+<h2 id="sec-2">Reaching IIIT-H </h2>
+
+
+
+
+
+
+<h3 id="sec-2_1">From Airport </h3>
+
+
+
+<p>
+Directions from Hyderabad Airport(Cost around -600 by taxi)
+Shamshabad (Airport) -&gt; Airport Rd-&gt; Kishanguda -&gt; Himayat Saagar
+Jn -&gt; AP Police academy -&gt; Narsing Jn -&gt; Gachibowli -&gt; IIIT-H. It
+is highly advisable to take a government approved pre-paid or
+metered radio cab from Shamshabad Airport to IIIT-H Hyderabad.
+</p>
+
+
+
+
+
+<h3 id="sec-2_2">From Secuderabad Railway Station </h3>
+
+
+
+<p>
+If one is coming from Secuderabad railway station which is around
+23km from IIIT-H, the auto fare would be roughly around Rs.250. One
+can take an APSRTC bus to Mehdipatnam (No’s: 5 &amp; 49M), and another
+bus from Mehdipatnam to IIIT-H (No’s: 216, 217).
+</p>
+<p>
+Some trains, especially those coming from Bombay, stop at Begumpet
+Railway Station which is about 16km from IIIT-H. If you plan to
+come by bus, take bus No.49M from there to reach Mehdipatnam and
+then another bus (Nos: 216 &amp; 217) to reach IIIT-H. An auto rickshaw
+from Begumpet railway Station to IIIT-H direct might cost your
+around Rs.150/- (approx.)
+</p>
+
+
+
+
+
+<h3 id="sec-2_3">From Nampally Railway Station </h3>
+
+
+
+<p>
+Reaching Hyderabad by a train and getting down at the Hyderabad
+(Nampally) station would be the easiest way to reach us. The
+institute is 16km from Nampally railway station. From the railway
+station one can take an auto rickshaw (three wheeler) or APSRTC bus
+(No’s: 216 &amp; 217) to reach IIIT-H. The auto rickshaw would cost
+around Rs.150/- and bus fare would be around Rs.12/- and metro A/C
+buses would cost around Rs.20
+</p>
+
+
+
+
+
+<h3 id="sec-2_4">From Lingampally Railway Station </h3>
+
+
+
+<p>
+Some trains from Mumbai also stop at Lingampally, which is just 7
+kms from IIIT-H. Auto rickshaws and shared mini-taxis (tempos) are
+available.
+</p>
+
+
+
+
+
+
 
-<p class="noindent">Air conditioned volvo buses to Technopark are available from East fort
-which is approximately 1km from Trivandrum Central Railway Station.</p>
+<h3 id="sec-2_5">From Mahatma Gandhi Bus Station (MGBS) </h3>
+
+
+
+<p>
+If one is reaching Hyderabad by bus and getting down at MGBS, then one
+can reach the IIIT campus by APSRTC bus numbered 216 or 217 which
+would cost around Rs.15/-. (Note: Bus numbers 216K and 216L do not go
+via the institute campus).
+</p>
+<p>
+N.B. Sometimes autos at the Railway stations or bus station may
+refuse to come to Gachibowli particularly, if you arrive late in
+the evening. You can then take an auto till Mehdipatnam and then
+take another auto to Gachibowli from Mehdipatnam.
+</p>
+
+
+
+
+
+
+
+
+<h2 id="sec-3">Reaching MSLW </h2>
+
+
+
+
+
+
+<h3 id="sec-3_1">From Secunderabad Railway Station </h3>
+
+
+
+
+
+
+<h4 id="sec-3_1_1">Car/Bike route </h4>
+
+
+
+<ol>
+<li>
+Head toward St Marys Rd east on Station Rd 43 m
+
+</li>
+<li>
+Sharp left at St Marys Rd Pass by Infertility Clinic (on the right
+in 650 m) 750 m
+
+</li>
+<li>
+Turn left at Nokia Priority onto Sarojini Devi Rd Pass by Bharat
+Mercantile Co-operative Urban Bank (on the right in 1.1 km) 1.2 km
+
+</li>
+<li>
+Turn right at Paradise Cir onto Mahatma Gandhi Rd/NH 9 Continue to
+follow NH 9 Pass by bsnl Office (on the left) 1.7 km
+
+</li>
+<li>
+Turn left at Tar Bund Cross Roads to stay on NH 9 Pass by Shiva
+Temple (on the left) 1.9 km
+
+</li>
+<li>
+Turn left at Ambedkar Statue to stay on NH 9 Pass by BP Petrol Pump
+(on the left in 500 m) 5.7 km
+
+</li>
+<li>
+Sharp left at Moosapet X Rd onto Moosapet Rd Pass by HP (on the left
+in 700 m) 800 m
+
+</li>
+<li>
+Turn right at Hotel Sudha 4.5 km 
 
-<p class="noindent">Timings of KSRTC volvo A/C buses from East fort that reaches Technopark
-are at:</p>
+</li>
+<li>
+Turn left at KPHB Rd 48 m
+
+</li>
+<li>
+Turn right to stay on KPHB Rd 100 m
+
+</li>
+<li>
+Take the 1st left to stay on KPHB Rd 550 m
+
+</li>
+<li>
+Slight right toward Hitex Rd 400 m 13.Turn left toward Hitex Rd 270 m
+
+</li>
+<li>
+Turn left at Hitex Rd Pass by Hitech Check Post (on the right)
+1.6 km
+
+</li>
+<li>
+Turn right at Hitech City Rd Pass by Shiva Temple (on the left)
+400 m
+
+</li>
+<li>
+Take the 1st left1.1 km17.Turn left Destination will be on the right
+220 m
+
+</li>
+</ol>
+
+
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=Secunderabad+Railway+Station,+Regimental+Bazaar,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&amp;geocode=FVwECgEdPNitBCnjlGVpIZrLOzEi59cLO05sXw%3BFflLCgEdROKrBCFLVFsjCtNn_w&amp;hl=en&amp;mra=pd&amp;mrcr=0&amp;dirflg=h&amp;sll=17.442828,78.437696&amp;sspn=0.075824,0.154324&amp;ie=UTF8&amp;ll=17.455145,78.436031&amp;spn=0.075819,0.154324&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=Secunderabad+Railway+Station,+Regimental+Bazaar,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&amp;geocode=FVwECgEdPNitBCnjlGVpIZrLOzEi59cLO05sXw%3BFflLCgEdROKrBCFLVFsjCtNn_w&amp;hl=en&amp;mra=pd&amp;mrcr=0&amp;dirflg=h&amp;sll=17.442828,78.437696&amp;sspn=0.075824,0.154324&amp;ie=UTF8&amp;ll=17.455145,78.436031&amp;spn=0.075819,0.154324" style="color:#0000FF;text-align:left">View Larger Map</a></small>
+
+
+
+
+
+
+<h4 id="sec-3_1_2">Bus Route </h4>
+
+
+
+<p>
+Reaching Mahindra Satyam Learning World, Hitech City,by bus (i) Hop
+on to bus no 10H at Secunderabad railway station and reach "Hitech
+City" bus stop (ii) At Hitech City bus-stop, take an auto to reach
+hop on to bus no. 216 or 217 and reach "IIIT, Hyderabad" bus-stop.
+From there:
+</p>
+
+
+<ol>
+<li>
+Move towards Hi-tech city for about 500m
+
+</li>
+<li>
+Take the 2nd right onto Rd and walk for 15 m
+
+</li>
+<li>
+At VLCC, continue onto Whitefields Rd Pass by The Dental Studio (on
+the left) for 200 m
+
+</li>
+<li>
+Turn left at jyothi meadows for 280 m
+
+</li>
+<li>
+Turn right for 850 m
+
+</li>
+<li>
+Turn left Destination will be on the right for 220 m
+
+</li>
+</ol>
+
+
+
+
 
-<p class="noindent">
-<table class="scipycon-default">
-  <tr><th>From East fort</th><th>Reaches Technopark at</th></tr>
-  <tr><td>6:00AM</td><td>6:40AM</td></tr>
-  <tr><td>7:00AM</td><td>7:35AM</td></tr>
-  <tr><td>7:00AM</td><td>7:45AM</td></tr>
-  <tr><td>7:50AM</td><td>8:30AM</td></tr>
-  <tr><td>9:10AM</td><td>9:50AM</td></tr>
-</table>
+<p><img src="/static/img/secunderabad_html_19fded16.png"  alt="./secunderabad_html_19fded16.png" /></p>
+
+
+
+
+
+
+
+
+
+<h4 id="sec-3_1_3">Train Route </h4>
+
+
+
+<p>
+You get trains from the MMTS platform in the Sec’bad RS to a stop
+Hitech City. Plenty of Share autos from here to Hitech city are
+available.
+</p>
+
+
+
+
+
+<h3 id="sec-3_2">From Nampally Railway Station </h3>
+
+
+
+
+
+
+<h4 id="sec-3_2_1">Car/Bike route </h4>
+
+
+<ol>
+<li>
+Head west 160 m
+
+</li>
+<li>
+Take the 1st left toward Rai Janakiprasad Rd 130 m
+
+</li>
+<li>
+Turn right toward Rai Janakiprasad Rd 300 m
+
+</li>
+<li>
+Continue straight through Bazar Ghat X Rd onto Rai Janakiprasad Rd
+Pass by Health Care (on the left) 1.8 km
+
+</li>
+<li>
+Turn right at 1/Asif Nagar Rd Continue to follow 1 Pass by
+Mohammedia Masjid (on the left) 750 m
+
+</li>
+<li>
+At the roundabout, take the 1st exit onto 1/Mehdipatnam Rd Continue
+to follow Mehdipatnam Rd Pass by Icici Bank (on the left) 1.0 km
+
+</li>
+<li>
+At the roundabout, take the 2nd exit onto Mumbai Rd Go through 2
+roundabouts Pass by Hyderabad Hospital (on the left) 7.5 km
+
+</li>
+<li>
+Make a U-turn290 m9.Turn left at Hi-tech City Main Rd 1.4 km
+
+</li>
+<li>
+Take the 1st left to stay on Hi-tech City Main Rd Pass by Indian Oil
+(on the left in 500 m) 700 m
+
+</li>
+<li>
+Sharp right to stay on Hi-tech City Main Rd 130 m
+
+</li>
+<li>
+Take the 1st left onto Deloitte Dr Pass by ESeva (on the left) 400 m
+
+</li>
+<li>
+Turn right 350 m
+
+</li>
+<li>
+Take the 2nd right Destination will be on the right 220 m
+
+</li>
+</ol>
+
+
+
+
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=Railway+Station,+Nampally,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&amp;geocode=FY1oCQEdl1KtBCnv_MDuZJfLOzE2PszjKfdDUw%3BFflLCgEdROKrBCFLVFsjCtNn_w&amp;hl=en&amp;mra=ls&amp;dirflg=h&amp;sll=17.416995,78.43572&amp;sspn=0.075835,0.154324&amp;ie=UTF8&amp;ll=17.39328,78.46662&amp;spn=0.037923,0.077162&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=Railway+Station,+Nampally,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&amp;geocode=FY1oCQEdl1KtBCnv_MDuZJfLOzE2PszjKfdDUw%3BFflLCgEdROKrBCFLVFsjCtNn_w&amp;hl=en&amp;mra=ls&amp;dirflg=h&amp;sll=17.416995,78.43572&amp;sspn=0.075835,0.154324&amp;ie=UTF8&amp;ll=17.39328,78.46662&amp;spn=0.037923,0.077162" style="color:#0000FF;text-align:left">View Larger Map</a></small>
+
+
+
+
+
+
+
+<h4 id="sec-3_2_2">Bus Route </h4>
+
+
+
+<p>
+Reaching Mahindra Satyam Learning World, Hitech City,by bus (i) Hop
+on to bus no 127K or bus no. 216 k/l at Nampally Railway Station
+and reach "Kothaguda" bus stop. From there:
+</p>
+<ol>
+<li>
+Move towards Hi-tech city for about 500m
+
+</li>
+<li>
+Take the 2nd right onto Rd and walk for 15 m
+
+</li>
+<li>
+At VLCC, continue onto Whitefields Rd Pass by The Dental Studio (on
+the left) for 200 m
+
+</li>
+<li>
+Turn left at jyothi meadows for 280 m
+
+</li>
+<li>
+Turn right for 850 m
+
+</li>
+<li>
+Turn left Destination will be on the right for 220 m
+
+</li>
+</ol>
+
+
+
+
+
+
+
+<p><img src="/static/img/nampally_html_19fded16.png"  alt="./nampally_html_19fded16.png" /></p>
+
+
+
+
+
+
+
+
+
+<h4 id="sec-3_2_3">Train Route </h4>
+
+
+
+<p>
+You get trains from the MMTS platform in the Nampally Railway
+Station to a stop Hitech City. Plenty of Share autos from here to
+Hitech city are available.
 </p>
 
-<p class="noindent">You can also take a taxi to Technopark from outside the Thampanoor central
-railway station. Taxi fare is about Rs 350.</p>
+
+
+
+
+<h3 id="sec-3_3">From Jubilee Bus Stop </h3>
+
+
+
+
+
+
+<h4 id="sec-3_3_1">Car/Bike route </h4>
+
+
+
+<ol>
+<li>
+Head toward Club Rd northwest on Unknown road 140 m
+
+</li>
+<li>
+Take the 1st left onto Club Rd Pass by Amaravathi Restaurant (on the
+right in 300 m) 600 m
+
+</li>
+<li>
+Continue onto Rashtrapati Rd Pass by Kalaniketan (on the left) 300 m
+
+</li>
+<li>
+Turn right at Sarojini Devi Rd Pass by Vijaya Bank (on the left) 850
+m
+
+</li>
+<li>
+Turn right at Paradise Cir onto Mahatma Gandhi Rd/NH 9 Continue to
+follow NH 9 Pass by bsnl Office (on the left) 1.7 km
+
+</li>
+<li>
+Turn left at Tar Bund Cross Roads to stay on NH 9 Pass by Shiva
+Temple (on the left) 1.9 km
+
+</li>
+<li>
+Turn left at Ambedkar Statue to stay on NH 9 Pass by BP Petrol Pump
+(on the left in 500 m)
+
+</li>
+<li>
+7.0 km
+
+</li>
+<li>
+Turn right to stay on NH 9 180 m
+
+</li>
+<li>
+Turn right to stay on NH 9 Pass by KAPITTHA INTERIORS (on the left)
+550 m
+
+</li>
+<li>
+Turn right to stay on NH 9 Pass by Ramdev Rao Memorial Hospital (on
+the left) 6.7 km
+
+</li>
+<li>
+Turn left at Sparsha Baby care &amp; Activity Centre onto Gachibowli
+Miyapur Rd Pass by RTO Office (on the left in 3.1 km) 4.5 km
+
+</li>
+<li>
+Turn left at Bank of India onto Hitech City Rd Pass by Vijay E-Park
+(on the left) 500 m
+
+</li>
+<li>
+Take the 1st right onto Rd 15 m
+
+</li>
+<li>
+At VLCC, continue onto Whitefields Rd Pass by The Dental Studio (on
+the left) 200 m
+
+</li>
+<li>
+Turn left at jyothi meadows 280 m
+
+</li>
+<li>
+Turn right 850 m
+
+</li>
+<li>
+Turn left Destination will be on the right 220 m
+</li>
+</ol>
+
+
+
+
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=Jubilee+Bus+Station,+Picket,+West+Marredpally,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=17.4795245,78.4180255+to:Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&amp;geocode=FYA7CgEdNsmtBCnFZ5MiPprLOzHGaTHRIuvQpg%3BFWS3CgEdaZCsBCnx1ht_pZHLOzEV36JjwjFnIA%3BFflLCgEdROKrBCFLVFsjCtNn_w&amp;hl=en&amp;mra=pd&amp;mrcr=0&amp;dirflg=h&amp;sll=17.449916,78.435773&amp;sspn=0.075822,0.154324&amp;ie=UTF8&amp;via=1&amp;ll=17.458093,78.433628&amp;spn=0.075818,0.154324&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=Jubilee+Bus+Station,+Picket,+West+Marredpally,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=17.4795245,78.4180255+to:Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&amp;geocode=FYA7CgEdNsmtBCnFZ5MiPprLOzHGaTHRIuvQpg%3BFWS3CgEdaZCsBCnx1ht_pZHLOzEV36JjwjFnIA%3BFflLCgEdROKrBCFLVFsjCtNn_w&amp;hl=en&amp;mra=pd&amp;mrcr=0&amp;dirflg=h&amp;sll=17.449916,78.435773&amp;sspn=0.075822,0.154324&amp;ie=UTF8&amp;via=1&amp;ll=17.458093,78.433628&amp;spn=0.075818,0.154324" style="color:#0000FF;text-align:left">View Larger Map</a></small>
+
+
+
+
+
+
+
+<h4 id="sec-3_3_2">Bus Route </h4>
+
+
+
+<p>
+You can walk up to paradise stop and hop on to bus no. 10 H and
+reach upto Kothaguda bus stop. From there:
+</p>
+<ol>
+<li>
+Move towards Hi-tech city for about 500m
+
+</li>
+<li>
+Take the 2nd right onto Rd and walk for 15 m
+
+</li>
+<li>
+At VLCC, continue onto Whitefields Rd Pass by The Dental Studio (on
+the left) for 200 m
+
+</li>
+<li>
+Turn left at jyothi meadows for 280 m
+
+</li>
+<li>
+Turn right for 850 m
+
+</li>
+<li>
+Turn left Destination will be on the right for 220 m
+
+</li>
+</ol>
+
+
+
+
+<p><img src="/static/img/jubilee_html_19fded16.png"  alt="./jubilee_html_19fded16.png" /></p>
+
+
+
+
+
+
+
+
+
+<h4 id="sec-3_3_3">Train Route </h4>
+
+
+
+<p>
+You can walk up to paradise stop and hop on to bus no. 49 M and
+reach Secunderabad Railway Station. You get trains from the MMTS
+platform in the Sec’bad RS to a stop Hitech City. Plenty of Share
+autos from here to Hitech city are available.
+</p>
+
+
+
+
+
+<h3 id="sec-3_4">From MGBS </h3>
+
+
+
+
+
+
+<h4 id="sec-3_4_1">Car/Bike </h4>
+
+
+
+<ol>
+<li>
+Head toward Chadarghat Rd southeast on Unknown road 130 m
+
+</li>
+<li>
+Turn right at MGBS Exit Point onto Chadarghat Rd Pass by AbidAliKhan
+Eye Hospital (on the right in 350 m) 500 m
+
+</li>
+<li>
+At the roundabout, take the 4th exit 400 m
+
+</li>
+<li>
+Slight left at Maulvi Aladdin Rd/NH 9 450 m
+
+</li>
+<li>
+Turn right at NH 9 Pass by Begum Bazar Police Station (on the left
+in 750 m) 1.3 km
+
+</li>
+<li>
+Turn left at Traffic Police Station onto Malakunta Rd Pass by
+Shravana (on the left) 350 m
+
+</li>
+<li>
+Turn right at Alaska onto Gosha Mahal Rd Pass by Paramount Complex
+(on the right) 1.2 km
+
+</li>
+<li>
+Continue onto Mallepally Rd Pass by Sitaram Bagh Temple (on the
+left) 1.0 km
+
+</li>
+<li>
+Turn left at Mallepally Jct onto Asif Nagar Rd Pass by Asif Nagar
+Police Station (on the left in 350 m) 1.5 km
+
+</li>
+<li>
+At Mehdipatnam X Roads, continue onto 1240 m
+
+</li>
+<li>
+At the roundabout, take the 1st exit onto 1/Mehdipatnam Rd Continue
+to follow Mehdipatnam Rd Pass by Icici Bank (on the left) 1.0 km
+
+</li>
+<li>
+At the roundabout, take the 2nd exit onto Mumbai Rd Go through 2
+roundabouts Pass by Hyderabad Hospital (on the left) 7.5 km
+
+</li>
+<li>
+Make a U-turn290 m14.Turn left at Hi-tech City Main Rd 1.4 km
+
+</li>
+<li>
+Take the 1st left to stay on Hi-tech City Main Rd Pass by Indian Oil
+(on the left in 500 m) 700 m
+
+</li>
+<li>
+Sharp right to stay on Hi-tech City Main Rd 130 m
+
+</li>
+<li>
+Take the 1st left onto Deloitte Dr Pass by ESeva (on the left) 400 m
+
+</li>
+<li>
+Turn right 350 m
+
+</li>
+<li>
+Take the 2nd right Destination will be on the right 220 m
+</li>
+</ol>
+
+
+
+
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=MGBS,+Hyderabad&amp;daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&amp;geocode=FQcrCQEdMJWtBCmXAZygLZjLOzFe_PFRMuSc3g%3BFflLCgEdROKrBCFLVFsjCtNn_w&amp;hl=en&amp;mra=ls&amp;dirflg=h&amp;sll=17.455145,78.436031&amp;sspn=0.075819,0.154324&amp;ie=UTF8&amp;ll=17.412635,78.429385&amp;spn=0.07879,0.11389&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=MGBS,+Hyderabad&amp;daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&amp;geocode=FQcrCQEdMJWtBCmXAZygLZjLOzFe_PFRMuSc3g%3BFflLCgEdROKrBCFLVFsjCtNn_w&amp;hl=en&amp;mra=ls&amp;dirflg=h&amp;sll=17.455145,78.436031&amp;sspn=0.075819,0.154324&amp;ie=UTF8&amp;ll=17.412635,78.429385&amp;spn=0.07879,0.11389" style="color:#0000FF;text-align:left">View Larger Map</a></small>
+
+
+
+
+
+
+
+<h4 id="sec-3_4_2">Bus Route </h4>
+
+
+
+<p>
+Reaching Mahindra Satyam Learning World, Hitech City,by bus (i) Hop
+on to bus no 127K at MGBS and reach "Kothaguda" bus stop. From
+there:
+</p>
+<ol>
+<li>
+Move towards Hi-tech city for about 500m
+
+</li>
+<li>
+Take the 2nd right onto Rd and walk for 15 m
+
+</li>
+<li>
+At VLCC, continue onto Whitefields Rd Pass by The Dental Studio (on
+the left) for 200 m
+
+</li>
+<li>
+Turn left at jyothi meadows for 280 m
+
+</li>
+<li>
+Turn right for 850 m
+
+</li>
+<li>
+Turn left Destination will be on the right for 220 m
+</li>
+</ol>
+
+
+
+
+
+<p><img src="/static/img/mgbs_html_19fded16.png"  alt="./mgbs_html_19fded16.png" /></p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h2 id="sec-4">Reaching ISB </h2>
+
+
+
+
+
+
+<h3 id="sec-4_1">From Secunderabad Railway Station </h3>
+
+
+
+
+
+
+<h4 id="sec-4_1_1">Car/Bike Route </h4>
+
+
+
+<ol>
+<li>
+Head south 400 m
+
+</li>
+<li>
+At the roundabout, take the 5th exit onto Boyiguda Rd Pass by
+Hyderabad Metropolitan Water Supply and Sewerage Board (on the left
+in 1.5 km) 1.7 km
+
+</li>
+<li>
+Turn right at Kavadiguda Rd Pass by Masjid-E-Mohammadia Salfiya (on
+the right) 1.6 km
+
+</li>
+<li>
+Turn left at Tank Bund Rd/NH 9 Continue to follow NH 9 Go through 1
+roundabout 2.5 km
+
+</li>
+<li>
+Turn left at Hill Fort Rd Pass by Income Tax Office (on the right)
+1.0 km
+
+</li>
+<li>
+At the roundabout, take the 3rd exit onto Assembly Rd/NH 9 Pass by
+Shahi Masjid (on the left) 450 m
+
+</li>
+<li>
+Turn left at Lakdikapul Rd Pass by Director General of Police (on
+the left) 750 m
+
+</li>
+<li>
+Continue onto Saifabad Rd Pass by Farhat Function Hall (on the left)
+1.6 km
+
+</li>
+<li>
+Continue onto Masab Tank Rd Pass by S.B.V.R Charitable Eye Hospital
+(on the left) 650 m
 
-<p class="noindent">You can even take an autorickshaw to Technopark from the the prepaid
-autorickshaw stand infront of Trivandrum central railway station. Prepaid
-auto fare to technopark is about Rs.125 upto the front gate of technopark
-and about Rs.25 more to the campus.</p>
+</li>
+<li>
+Keep right at the fork89 m11.At the roundabout, take the 1st exit
+onto Mehdipatnam Rd Go through 2 roundabouts Pass by Icici Bank (on
+the left in 800 m) 1.6 km
+
+</li>
+<li>
+At the roundabout, take the 2nd exit onto Mumbai Rd Go through 2
+roundabouts Pass by Hyderabad Hospital (on the left) 10.2 km
+
+</li>
+<li>
+Turn left at ISB Rd1.2 km14.Turn right at ISB Main Entrance Rd 650 m
+
+</li>
+<li>
+Turn left at ISB Ring Rd Pass by Student Village 4 (on the left)
+850 m
+
+</li>
+</ol>
+
+
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=Regimental+Bazaar,+Andhra+Pradesh,+India+(Secunderabad+Railway+Station)&amp;daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&amp;geocode=FSYACgEd8NutBCFj3hhEwO0zbg%3BFZEKCgEdpl-rBCES9IXyMBWGHA&amp;hl=en&amp;mra=ls&amp;dirflg=h&amp;sll=17.430744,78.362045&amp;sspn=0.075829,0.154324&amp;ie=UTF8&amp;ll=17.419443,78.42247&amp;spn=0.151668,0.308647&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=Regimental+Bazaar,+Andhra+Pradesh,+India+(Secunderabad+Railway+Station)&amp;daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&amp;geocode=FSYACgEd8NutBCFj3hhEwO0zbg%3BFZEKCgEdpl-rBCES9IXyMBWGHA&amp;hl=en&amp;mra=ls&amp;dirflg=h&amp;sll=17.430744,78.362045&amp;sspn=0.075829,0.154324&amp;ie=UTF8&amp;ll=17.419443,78.42247&amp;spn=0.151668,0.308647" style="color:#0000FF;text-align:left">View Larger Map</a></small>
+
+
+
+
+
+
+
+
+<h4 id="sec-4_1_2">Bus Route </h4>
+
+
+
+<p>
+You can hop on to bus no 5 or 49M at Secunderabad railway station
+and reach "Mehdipatnam" bus stop. At Mehedipatnam bus-stop, hop on
+to bus no. 216 or 217 and reach "IIIT, Hyderabad" bus-stop. From
+there, there are numerous sharing autos towards ISB.
+</p>
+
+
+
+
+
+
+
+<h4 id="sec-4_1_3">Train Route </h4>
+
+
+
+<p>
+You get trains from the MMTS platform in the Sec’bad RS to a stop
+Lingampally. At Lingampally, hop on to bus no. 216 or 217 and reach
+"IIIT, Hyderabad" bus-stop. From there, there are numerous sharing
+autos towards ISB.
+</p>
+
+
+
+
+
+
+
+
+<h3 id="sec-4_2">From Nampally Railway Station </h3>
+
+
+
+
+
+
+<h4 id="sec-4_2_1">Car/Bike route </h4>
+
+
+<ol>
+<li>
+Head west 160 m
+
+</li>
+<li>
+Take the 1st left toward Rai Janakiprasad Rd 130 m
+
+</li>
+<li>
+Turn right toward Rai Janakiprasad Rd 300 m
+
+</li>
+<li>
+Continue straight through Bazar Ghat X Rd onto Rai Janakiprasad Rd
+Pass by Health Care (on the left) 1.8 km
+
+</li>
+<li>
+Turn right at 1/Asif Nagar Rd Continue to follow 1 Pass by
+Mohammedia Masjid (on the left) 750 m
+
+</li>
+<li>
+At the roundabout, take the 1st exit onto 1/Mehdipatnam Rd Continue
+to follow Mehdipatnam Rd Pass by Icici Bank (on the left) 1.0 km
+
+</li>
+<li>
+At the roundabout, take the 2nd exit onto Mumbai Rd Go through 2
+roundabouts Pass by Hyderabad Hospital (on the left) 10.2 km
+
+</li>
+<li>
+Turn left at ISB Rd 1.2 km
+
+</li>
+<li>
+Turn right at ISB Main Entrance Rd 650 m
+
+</li>
+<li>
+Turn left at ISB Ring Rd Pass by Student Village 4 (on the left)
+850 m
+
+</li>
+</ol>
+
+
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=Railway+Station,+Nampally,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&amp;geocode=FY1oCQEdl1KtBCnv_MDuZJfLOzE2PszjKfdDUw%3BFZEKCgEdpl-rBCES9IXyMBWGHA&amp;hl=en&amp;mra=ls&amp;dirflg=h&amp;sll=17.413546,78.402729&amp;sspn=0.075837,0.154324&amp;ie=UTF8&amp;ll=17.422555,78.382902&amp;spn=0.037916,0.077162&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=Railway+Station,+Nampally,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&amp;geocode=FY1oCQEdl1KtBCnv_MDuZJfLOzE2PszjKfdDUw%3BFZEKCgEdpl-rBCES9IXyMBWGHA&amp;hl=en&amp;mra=ls&amp;dirflg=h&amp;sll=17.413546,78.402729&amp;sspn=0.075837,0.154324&amp;ie=UTF8&amp;ll=17.422555,78.382902&amp;spn=0.037916,0.077162" style="color:#0000FF;text-align:left">View Larger Map</a></small>
+
+
+
+
+
+
+<h4 id="sec-4_2_2">Bus Route </h4>
+
+
+
+<p>
+You can hop on to bus no 216 or 217 at Nampally Railway Station and
+reach "IIIT, Hyderabad" bus-stop. From there, there are numerous
+sharing autos towards ISB.
+</p>
+
+
+
+
+
+<h4 id="sec-4_2_3">Train Route </h4>
+
+
+
+<p>
+You get trains from the MMTS platform in the Nampally Railway
+Station to a stop Lingampally. At Lingampally, hop on to bus no.
+216 or 217 and reach "IIIT, Hyderabad" bus-stop. From there, there
+are numerous sharing autos towards ISB.
+</p>
+
+
+
+
+
+
+<h3 id="sec-4_3">From MGBS </h3>
+
+
+
+
+
+
+<h4 id="sec-4_3_1">Car/Bike route </h4>
+
+
+
+<ol>
+<li>
+Head toward Chadarghat Rd southeast on Unknown road 130 m
+
+</li>
+<li>
+Turn right at MGBS Exit Point onto Chadarghat Rd Pass by AbidAliKhan
+Eye Hospital (on the right in 350 m) 500 m
+
+</li>
+<li>
+At the roundabout, take the 4th exit 400 m
+
+</li>
+<li>
+Slight left at Maulvi Aladdin Rd/NH 9 450 m
+
+</li>
+<li>
+Turn right at NH 9 Pass by Begum Bazar Police Station (on the left
+in 750 m) 1.3 km
 
-<p class="noindent">From Thiruvananthapuram Airport, you can take a a taxi to Technopark
-which will cost about Rs 300. Taking an auto to technopark costs about
-Rs 200.</p>
- -->
+</li>
+<li>
+Turn left at Traffic Police Station onto Malakunta Rd Pass by
+Shravana (on the left) 350 m
+
+</li>
+<li>
+Turn right at Alaska onto Gosha Mahal Rd Pass by Paramount Complex
+(on the right) 1.2 km
+
+</li>
+<li>
+Continue onto Mallepally Rd Pass by Sitaram Bagh Temple (on the
+left) 1.0 km
+
+</li>
+<li>
+Turn left at Mallepally Jct onto Asif Nagar Rd Pass by Asif Nagar
+Police Station (on the left in 350 m) 1.5 km
+
+</li>
+<li>
+At Mehdipatnam X Roads, continue onto 1240 m
+
+</li>
+<li>
+At the roundabout, take the 1st exit onto 1/Mehdipatnam Rd Continue
+to follow Mehdipatnam Rd Pass by Icici Bank (on the left) 1.0 km
+
+</li>
+<li>
+At the roundabout, take the 2nd exit onto Mumbai Rd Go through 2
+roundabouts Pass by Hyderabad Hospital (on the left) 10.2 km
+
+</li>
+<li>
+Turn left at ISB Rd 1.2 km
+
+</li>
+<li>
+Turn right at ISB Main Entrance Rd 650 m
+
+</li>
+<li>
+Turn left at ISB Ring Rd Pass by Student Village 4 (on the left)
+850 m
+</li>
+</ol>
+
+
+
+
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=MGBS,+Hyderabad&amp;daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&amp;geocode=FQcrCQEdMJWtBCmXAZygLZjLOzFe_PFRMuSc3g%3BFZEKCgEdpl-rBCES9IXyMBWGHA&amp;hl=en&amp;mra=pd&amp;mrcr=0&amp;dirflg=h&amp;sll=17.40896,78.410797&amp;sspn=0.151677,0.308647&amp;ie=UTF8&amp;ll=17.40905,78.41241&amp;spn=0.07162,0.14784&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=MGBS,+Hyderabad&amp;daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&amp;geocode=FQcrCQEdMJWtBCmXAZygLZjLOzFe_PFRMuSc3g%3BFZEKCgEdpl-rBCES9IXyMBWGHA&amp;hl=en&amp;mra=pd&amp;mrcr=0&amp;dirflg=h&amp;sll=17.40896,78.410797&amp;sspn=0.151677,0.308647&amp;ie=UTF8&amp;ll=17.40905,78.41241&amp;spn=0.07162,0.14784" style="color:#0000FF;text-align:left">View Larger Map</a></small>
+
+
+
+
+
+
+
+<h4 id="sec-4_3_2">Bus Route </h4>
+
+
+
+<p>
+You can hop on to bus no 216 or 217 at MGBS and reach "IIIT,
+Hyderabad" bus-stop. From there, there are numerous sharing autos
+towards ISB.
+</p>
+
+
+
+
+
+
+
+
+
+
+
+<h3 id="sec-4_4">From Jubilee Bus Stop </h3>
+
+
+
+
+
+
+<h4 id="sec-4_4_1">Car/Bike route </h4>
+
+
+
+<ol>
+<li>
+Head toward Club Rd northwest on Unknown road 140 m
+
+</li>
+<li>
+Take the 1st left onto Club Rd Pass by Amaravathi Restaurant (on the
+right in 300m) 600 m
+
+</li>
+<li>
+Continue onto Rashtrapati Rd Pass by Kalaniketan (on the left) 2.0
+km
+
+</li>
+<li>
+Turn left at Helmet World onto Mahatma Gandhi Rd/NH 9 Continue to
+follow NH 9 Go through 1 roundabout Pass by New Metro Motors (on the
+right) 2.9 km
+
+</li>
+<li>
+Turn left at Hill Fort Rd Pass by Income Tax Office (on the right)
+1.0 km
+
+</li>
+<li>
+At the roundabout, take the 3rd exit onto Assembly Rd/NH 9 Pass by
+Shahi Masjid (on the left) 450 m
+
+</li>
+<li>
+Turn left at Lakdikapul Rd Pass by Director General of Police (on
+the left) 750 m
+
+</li>
+<li>
+Continue onto Saifabad Rd Pass by Farhat Function Hall (on the left)
+1.6 km
+
+</li>
+<li>
+Continue onto Masab Tank Rd Pass by S.B.V.R Charitable Eye Hospital
+(on the left) 650 m
+
+</li>
+<li>
+Keep right at the fork90 m11.At the roundabout, take the 1st exit
+onto Mehdipatnam Rd Go through 2 roundabouts Pass by Icici Bank (on
+the left in 800 m) 1.6 km
+
+</li>
+<li>
+At the roundabout, take the 2nd exit onto Mumbai Rd Go through 2
+roundabouts Pass by Hyderabad Hospital (on the left) 9.3 km
+
+</li>
+<li>
+Turn left toward G.P.R.A Campus Road 400 m
+
+</li>
+<li>
+Take the 1st right toward G.P.R.A Campus Road 75 m
+
+</li>
+<li>
+Turn right toward G.P.R.A Campus Road120 m16.Take the 1st left onto
+G.P.R.A Campus Road 84 m
+
+</li>
+</ol>
+
+
+<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=Jubilee+Bus+Station,+Picket,+West+Marredpally,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=Isb+Campus,+Gachibowli,+Hyderabad,+Andhra+Pradesh+500032,+India+(Indian+School+of+Business(ISB))&amp;geocode=FYA7CgEdNsmtBCnFZ5MiPprLOzHGaTHRIuvQpg%3BFasaCgEdGqWrBCEiH8n2wfqalw&amp;hl=en&amp;mra=pd&amp;mrcr=0&amp;dirflg=h&amp;sll=17.416494,78.416634&amp;sspn=0.151671,0.308647&amp;ie=UTF8&amp;ll=17.438932,78.3711&amp;spn=0.018957,0.038581&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=Jubilee+Bus+Station,+Picket,+West+Marredpally,+Hyderabad,+Andhra+Pradesh,+India&amp;daddr=Isb+Campus,+Gachibowli,+Hyderabad,+Andhra+Pradesh+500032,+India+(Indian+School+of+Business(ISB))&amp;geocode=FYA7CgEdNsmtBCnFZ5MiPprLOzHGaTHRIuvQpg%3BFasaCgEdGqWrBCEiH8n2wfqalw&amp;hl=en&amp;mra=pd&amp;mrcr=0&amp;dirflg=h&amp;sll=17.416494,78.416634&amp;sspn=0.151671,0.308647&amp;ie=UTF8&amp;ll=17.438932,78.3711&amp;spn=0.018957,0.038581" style="color:#0000FF;text-align:left">View Larger Map</a></small>
+
+
+
+
+
+
+
+
+<h4 id="sec-4_4_2">Bus Route </h4>
+
+
+
+<p>
+You can walk up to paradise stop and hop on to bus no 5 or 49M at
+Secunderabad railway station and reach "Mehdipatnam" bus stop. At
+Mehedipatnam bus-stop, hop on to bus no. 216 or 217 and reach
+"IIIT, Hyderabad" bus-stop. From there, there are numerous sharing
+autos towards ISB.
+</p>
+
+
+
+
+
+
+
+<h4 id="sec-4_4_3">Train Route </h4>
+
+
+
+<p>
+You can walk up to paradise stop and hop on to bus no. 49 M and
+reach Secunderabad Railway Station. You get trains from the MMTS
+platform in the Sec’bad RS to a stop Lingampally. At Lingampally,
+hop on to bus no. 216 or 217 and reach "IIIT, Hyderabad" bus-stop.
+From there, there are numerous sharing autos towards ISB.
+</p>
 {% endblock content %}
\ No newline at end of file
--- a/project/templates/about/sprints.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/about/sprints.html	Fri Dec 24 16:02:21 2010 +0530
@@ -60,8 +60,7 @@
 </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. 
+given swag. The sprint lead will choose the participants eligible for swag. 
 </p>
 
 {% endblock content %}
--- a/project/templates/about/tutorial.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/about/tutorial.html	Fri Dec 24 16:02:21 2010 +0530
@@ -45,85 +45,337 @@
 
 <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>
+
+<h4 id="sec-1">Day 3 </h4>
+
+
+<ul>
+<li>
+Sage (2 hr 30 min)
+<ul>
+<li>
+getting started with Sage notebook (45 min) (<b>Prabhu</b>)
+<ul>
+<li>
+introduction
+</li>
+<li>
+starting the server
+</li>
+<li>
+the UI
+</li>
+<li>
+getting help
+</li>
+<li>
+overview of what's available in Sage
 <ul>
 <li>
-<a href="http://www.sagemath.org" >Sage</a> 
+basic calculus
+</li>
+<li>
+basic algebra
+</li>
+<li>
+basic plotting 
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+symbolics &amp; calculus  &amp; basic plotting(1 hr) (<b>Bhanu</b>)
+<ul>
+<li>
+parametric plots
+<ul>
+<li>
+2D
+</li>
+<li>
+3D
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+linear algebra (30 min) (<b>Nishanth</b>)
+</li>
+<li>
+Misc (15 min)
+<ul>
+<li>
+QA
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+Basic Plotting (using pylab) (1 hr 30 min) (<b>Fernando</b>)
 <ul>
 <li>
-basic usage 
+getting started with ipython  
+</li>
+<li>
+using the plot command interactively
+</li>
+<li>
+embellishing a plot
+</li>
+<li>
+saving plots
+</li>
+<li>
+multiple plots
+</li>
+<li>
+saving to scripts and running them (from ipython)
+</li>
+<li>
+running the same thing in sage notebook 
+<ul>
+<li>
+change language to python, import pylab, simple plot, savefig
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+Plotting Experimental Data (1 hr) (<b>Puneeth</b>)
+<ul>
+<li>
+plotting points with lists
+<ul>
+<li>
+basic lists
+<ul>
+<li>
+indexing
 </li>
 <li>
-symbolic computing
+appending
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+loading data from files using loadtxt
 </li>
 <li>
-numeric computing
+using for loop with lists
+<ul>
+<li>
+pendulum example
+</li>
+</ul>
+</li>
+</ul>
 </li>
+</ul>
+
+
+
+
+
+
+
+<h4 id="sec-2">Day 4 </h4>
+
+
+<ul>
 <li>
-basic plotting
+Arrays (1 hr) (<b>Perry</b>)
+<ul>
+<li>
+Why use arrays
+<ul>
+<li>
+finding sine of a list of million numbers
 </li>
 </ul>
 </li>
 <li>
-Basic Scientific Computing with Python covering the following
+getting started with arrays
+</li>
+<li>
+accessing parts of arrays
 <ul>
 <li>
-ipython
+1d slicing 
+</li>
+<li>
+1d striding
+</li>
+<li>
+2d slicing
+</li>
+<li>
+2d striding
+</li>
+</ul>
+</li>
+<li>
+lena example of above
+</li>
+<li>
+element wise operations
+</li>
+<li>
+matrices
+<ul>
+<li>
+operations on matrices like det, inv, norm.
+</li>
+</ul>
+</li>
+</ul>
 </li>
 <li>
-pylab
+Scipy (1 hr 30 min) (<b>John</b>)
+<ul>
+<li>
+least square fit
+</li>
+<li>
+Roots
+<ul>
+<li>
+introduction to functions
+</li>
+</ul>
+</li>
+<li>
+Solving Equations
 </li>
 <li>
-numpy
+ODE
+<ul>
+<li>
+revisiting functions
+</li>
+</ul>
 </li>
 <li>
-scipy
+FFT
+</li>
+</ul>
 </li>
 <li>
-basic use of Mayavi
+Python Language: Basics (1 hr) (<b>Asokan</b>)
+<ul>
+<li>
+basic data-types 
+<ul>
+<li>
+strings
 </li>
 </ul>
 </li>
 <li>
-Basic Python
+Operators
+</li>
+<li>
+I/O
+</li>
+<li>
+conditionals
+</li>
+<li>
+loops
 <ul>
 <li>
-data-types
+while
 </li>
 <li>
-conditionals &amp; looping
+for loop and its usage with range
 </li>
-<li>
-functions &amp; modules
+</ul>
 </li>
 </ul>
 </li>
 <li>
-Advanced topics
+Python Language: Data structures (1hr 30 min) (<b>Asokan</b>)
 <ul>
 <li>
-Cython
+manipulating lists
 </li>
 <li>
-More Ipython
+dictionaries
 </li>
 <li>
-More Mayavi
+manipulating strings
 </li>
 <li>
-More matplotlib
+getting started with tuples
 </li>
 <li>
-More Sage?
-
+sets
+</li>
+<li>
+examples
 </li>
 </ul>
 </li>
 </ul>
 
+
+
+
+
+
+
+<h4 id="sec-3">Day 5 </h4>
+
+
+<ul>
+<li>
+Python Language: Advanced (1 hr) (<b>Madhu</b>)
+<ul>
+<li>
+functions
+<ul>
+<li>
+defining functions
+</li>
+<li>
+keyword arguments and default arguments
+</li>
+</ul>
+</li>
+<li>
+using python modules
+</li>
+<li>
+writing re-usable python scripts
+</li>
+<li>
+PEP-8?
+</li>
+</ul>
+</li>
+<li>
+More Numpy? (broadcasting, indexing tricks&hellip;) (1hr) (<b>Stefan</b>)
+</li>
+<li>
+Mayavi (1 hr) (<b>Prabhu</b>)
+</li>
+<li>
+Cython (1 hr) (<b>Stefan</b>)
+</li>
+<li>
+Version Control (Hg/Git) (15 min) (<b>Madhu</b>)
+</li>
+<li>
+ReST &amp; Scipy/Numpy Documentation Editor (45 min) (<b>Stefan</b>)
+</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>.
--- a/project/templates/about/venue.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/about/venue.html	Fri Dec 24 16:02:21 2010 +0530
@@ -11,9 +11,9 @@
   <img src="/static/img/isb_logo.gif"
   alt="Indian School of Business Logo"
   title="Indian School of Business" /></a><br /><br /><br/>
-  The SciPy.in 2010 Conference is being held at
+  The SciPy.in 2010 conference is being held at the
   <a href="http://www.isb.edu/Campustour/academic_khemka_auditorium.html">
-  Khemka Auditorium</a> at  
+  Khemka Auditorium</a> of the
   <a href="http://www.isb.edu/">Indian School of Business</a>(ISB) in
   Hyderabad. ISB is one of India's top management schools and is a
   world-renowned (and globally top-ranked) B-school.
@@ -27,8 +27,8 @@
   <img src="/static/img/mahindra_satyam_logo.jpg"
   alt="Mahindra Satyam Logo"
   title="Mahindra Satyam Logo" /></></a><br/><br/><br/>
-  SciPy.in 2010 Tutorial is being held at
-  <a href="http://www.mahindrasatyam.com/careers/crossover/work_life_environment.asp ">Danube Hall at 
+  The SciPy.in 2010 tutorials are being held at the
+  Danube Hall at <a href="http://www.mahindrasatyam.com/careers/crossover/work_life_environment.asp ">
   Mahindra Satyam Learning World</a> in Hyderabad's famed
   <a href="http://en.wikipedia.org/wiki/HITEC_City">HITEC City</a>.
   </a><a href="http://www.mahindrasatyam.com/">Mahindra Satyam</a>
@@ -44,14 +44,14 @@
   <a href="http://www.iiit.ac.in/">
   <img src="/static/img/iiith_logo.gif" alt="IIIT-H Logo"
   title="IIIT-H Logo" /></a><br/><br/><br/>
-  SciPy.in 2010 Sprints are held held in various labs and seminar
+  The SciPy.in 2010 sprints will be held in various labs and seminar
   halls at IIIT Hyderabad. The directions to these exact locations
   will be updated soon.
   <a href="http://www.iiit.ac.in/">IIIT Hyderabad</a> is an autonomous,
   research university offering under-graduate and graduate education
   in Computer Science, Electronics and Communications, and their
-  applications in other domains.  have offered a number of labs and seminar
-  halls to suit the needs of the sprints.
+  applications in other domains. They have offered a number of labs
+  and seminar halls to suit the needs of the sprints.
 </p>
 </div>
 {% endblock content %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project/templates/notifications/contactdetails2010.html	Fri Dec 24 16:02:21 2010 +0530
@@ -0,0 +1,80 @@
+Hello {{ name }},
+
+You are getting this mail since you are registered for SciPy.in 2010
+conference. As we gear up for the second version of SciPy.in, SciPy.2010,
+we would like to update you certain information about the conference to
+make your attendance for the conference smooth.
+
+Firstly, we request you to check the website for latest updates. We will
+keep updating the website as we set things up for you.
+
+Secondly, the SciPy.in 2010 Conference on December 13th and 14th is now
+being held at Indian School of Business(ISB) Hyderabad. The SciPy.in
+2010 Tutorials on December 15-16 are being held at Mahindra Satyam
+Learning World, Hyderabad and the last day of Sprints will be held
+at IIIT-Hyderabad. For any details on how to reach the venue, please
+contact the phone numbers given below in the contacts section of
+this mail.
+
+Important registration information
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you have not updated your registration with the information
+listed below, please login to the website, http://scipy.in, navigate to
+the Registration summary page from the left sidebar and click on edit
+registration and update the information as soon as possible. We need
+to have this information on file before Sunday:
+
+1. If you are availing accommodation and have paid the fees, please let
+   us know on what days you need the accommodation. You can do this by
+   simply checking the box for each night from December 12th to 17th
+   nights. The gender information is very important to us, to allot you
+   rooms.
+2. If you are bringing your laptop for the event, please update the
+   registration form with the unique identification number of the laptop.
+   The directions on how to find this number is on the form.
+3. If you have already paid the fees online or by DD and you have not
+   got a confirmation email about the same, please mail admin@scipy.in
+   with your DD number or the NEFT transaction ID. Also it is safe to
+   hold these numbers when you come for the conference on the first
+   day. You may be asked for this number at the registration desk.
+
+Printing the badges:
+~~~~~~~~~~~~~~~~~~~~
+If you login to the website, http://scipy.in and navigate to the
+Registration page from the left sidebar menu, you will be able to
+see a line with "Please get your badges for scipy.in 2010 here".
+Please download this PDF and bring it with you for the conference.
+This will help you steer clear of the security smoothly.
+
+Other information:
+~~~~~~~~~~~~~~~~~~
+1. If you have not paid the registration fees yet, we have no way of
+   getting the updates about your payment now. So we request you to pay
+   the fees on the spot. You will also have to pay a late fee penalty of
+   Rs. 250 along with the registration fees of Rs. 500, making it a total
+   of Rs. 750.
+2. If you have not paid the accommodation fees, please contact Anand Raj
+   whose phone number is given below in the contacts section to know how
+   to pay that fees and avail the accommodation facility at IIIT-Hyderabad.
+   Please do this as soon as possible since the available accommodation is
+   very limited.
+3. Arrangements for traveling from IIIT-H to the Conference and Tutorials
+   venue have been made available for all the participants who have taken
+   accommodation fees from us. Please note that this facility is not
+   available if you have not taken an accommodation from us.
+4. We will update you about the information on how to reach IIIT-Hyderabad,
+   ISB and Mahindra Satyam Learning World soon.
+
+Contacts:
+~~~~~~~~
+1. Sunanda Varma - +91-9885586278
+2. Vamsi Pullakavi - +91-9440845389
+3. Bhanukiran Perabathini and/or Anand Raj - +91-8008939140
+
+For any further queries regarding the website, registration or any
+other information please feel free to contact me(Madhusudan C.S.) on:
++91-9987214220 or via email at admin@scipy.in.
+
+Thanks and regards,
+Scipy Team
--- a/project/templates/registration/regstats.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/registration/regstats.html	Fri Dec 24 16:02:21 2010 +0530
@@ -22,5 +22,24 @@
  <td>Sprint</td>
  <td>{{ sprint_num }}</td>
 </tr>
+<tr>
+ <td>Male participants requesting accommodation</td>
+ <td>{{ male }}</td>
+</tr>
+<tr>
+ <td>Female participants requesting accommodation</td>
+ <td>{{ female }}</td>
+</tr>
+{% for acco in acco_days %}
+  <tr>
+   <td>Accommodation requested on {{ forloop.counter|add:"11" }}th night</td>
+   <td>{{ acco.total }} (Male: {{ acco.male }} Female: {{ acco.female }})</td>
+  </tr>
+ {% endfor %}
 </table>
+
+<br/><br/><br/>
+<strong>To download CSV Click 
+<a href="{% url scipycon_regstats_download params.scope %}">here</a></strong>
+
 {% endblock content %}
--- a/project/templates/talk/conf_schedule.html	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/templates/talk/conf_schedule.html	Fri Dec 24 16:02:21 2010 +0530
@@ -17,21 +17,21 @@
 <tr><td class="right">09:30-10:30</td><td class="left">Perry Greenfield</td><td class="left"><b>Keynote</b>: <a href="#sec-3_1">How Python Slithered into Astronomy</a></td></tr>
 <tr><td class="right">10:30-10:45</td><td class="left"></td><td class="left">Tea Break</td></tr>
 <tr><td class="right">10:45-11:30</td><td class="left">Fernando Perez</td><td class="left"><b>Special Talk</b>: <a href="#sec-3_2">IPython : Beyond the Simple Shell</a></td></tr>
-<tr><td class="right">11:30-12:00</td><td class="left">Asim Mittal</td><td class="left"><a href="#sec-4_1">Interactive interfaces and Gesture recognition using Python</a></td></tr>
-<tr><td class="right">12:00-12:20</td><td class="left">Jayesh Gandhi</td><td class="left"><a href="#sec-4_14">Microcontroller experiment and its simulation using Python</a></td></tr>
-<tr><td class="right">12:20-12:50</td><td class="left">Vaidhy Mayilrangam</td><td class="left"><a href="#sec-4_17">Natural Language Processing Using Python</a></td></tr>
-<tr><td class="right">12:50-13:20</td><td class="left">Georges Khaznadar</td><td class="left"><a href="#sec-4_10">Live media for training in experimental sciences</a></td></tr>
-<tr><td class="right">13:20-14:20</td><td class="left"></td><td class="left">Lunch</td></tr>
-<tr><td class="right">14:20-14:30</td><td class="left">Shubham Chakraborty</td><td class="left"><a href="#sec-4_11">Use of Python and Phoenix-M interface in Robotics</a></td></tr>
-<tr><td class="right">14:30-14:40</td><td class="left">Erroju Rama Krishna</td><td class="left"><a href="#sec-4_8">Simplified and effective Network Simulation using ns-3</a></td></tr>
-<tr><td class="right">14:40-14:50</td><td class="left"></td><td class="left">More Lightning Talks</td></tr>
-<tr><td class="right">14:50-15:20</td><td class="left">Asokan Pichai</td><td class="left"><b>Invited Talk</b>:  <a href="#sec-3_3">Teaching Programming with Python</a></td></tr>
-<tr><td class="right">15:20-15:40</td><td class="left">Hemanth Chandran</td><td class="left"><a href="#sec-4_19">Performance Evaluation of HYBRID MAC for 802.11ad: Next Generation Multi-Gbps Wi-Fi using SimPy</a></td></tr>
-<tr><td class="right">15:40-16:00</td><td class="left">Karthikeyan selvaraj</td><td class="left"><a href="#sec-4_9">PyCenter</a></td></tr>
-<tr><td class="right">16:00-16:15</td><td class="left"></td><td class="left">Tea Break</td></tr>
-<tr><td class="right">16:15-16:45</td><td class="left">Satrajit Ghosh</td><td class="left"><b>Invited Talk</b>: <a href="#sec-3_6">Nipype: Opensource platform for unified and replicable interaction with existing neuroimaging tools</a></td></tr>
-<tr><td class="right">16:45-17:05</td><td class="left">Nek Sharan</td><td class="left"><a href="#sec-4_7">Parallel Computation of Axisymmetric Jets</a></td></tr>
-<tr><td class="right">17:05-17:25</td><td class="left">pankaj pandey</td><td class="left"><a href="#sec-4_20">PySPH: Smooth Particle Hydrodynamics with Python</a></td></tr>
+<tr><td class="right">11:30-11:50</td><td class="left">Farhat Habib</td><td class="left"><a href="#sec-4_1">Python as a Platform for Scientific Computing Literacy for 10+2 Students: Weighing the Balance</a></td></tr>
+<tr><td class="right">11:50-12:10</td><td class="left">Jayesh Gandhi</td><td class="left"><a href="#sec-4_14">Microcontroller experiment and its simulation using Python</a></td></tr>
+<tr><td class="right">12:10-12:40</td><td class="left">Vaidhy Mayilrangam</td><td class="left"><a href="#sec-4_17">Natural Language Processing Using Python</a></td></tr>
+<tr><td class="right">12:40-13:10</td><td class="left">Georges Khaznadar</td><td class="left"><a href="#sec-4_10">Live media for training in experimental sciences</a></td></tr>
+<tr><td class="right">13:10-14:10</td><td class="left"></td><td class="left">Lunch</td></tr>
+<tr><td class="right">14:10-14:20</td><td class="left">Shubham Chakraborty</td><td class="left"><a href="#sec-4_11">Use of Python and Phoenix-M interface in Robotics</a></td></tr>
+<tr><td class="right">14:20-14:30</td><td class="left">Erroju Rama Krishna</td><td class="left"><a href="#sec-4_8">Simplified and effective Network Simulation using ns-3</a></td></tr>
+<tr><td class="right">14:30-14:40</td><td class="left"></td><td class="left">More Lightning Talks</td></tr>
+<tr><td class="right">14:40-15:10</td><td class="left">Asokan Pichai</td><td class="left"><b>Invited Talk</b>:  <a href="#sec-3_3">Teaching Programming with Python</a></td></tr>
+<tr><td class="right">15:10-15:30</td><td class="left">Hemanth Chandran</td><td class="left"><a href="#sec-4_19">Performance Evaluation of HYBRID MAC for 802.11ad: Next Generation Multi-Gbps Wi-Fi using SimPy</a></td></tr>
+<tr><td class="right">15:30-15:50</td><td class="left">Karthikeyan selvaraj</td><td class="left"><a href="#sec-4_9">PyCenter</a></td></tr>
+<tr><td class="right">15:50-16:10</td><td class="left"></td><td class="left">Tea Break</td></tr>
+<tr><td class="right">16:10-16:40</td><td class="left">Satrajit Ghosh</td><td class="left"><b>Invited Talk</b>: <a href="#sec-3_6">Nipype: Opensource platform for unified and replicable interaction with existing neuroimaging tools</a></td></tr>
+<tr><td class="right">16:40-17:00</td><td class="left">Nek Sharan</td><td class="left"><a href="#sec-4_7">Parallel Computation of Axisymmetric Jets</a></td></tr>
+<tr><td class="right">17:00-17:20</td><td class="left">pankaj pandey</td><td class="left"><a href="#sec-4_20">PySPH: Smooth Particle Hydrodynamics with Python</a></td></tr>
 </tbody>
 </table>
 
@@ -60,7 +60,7 @@
 <tr><td class="right">12:15-12:35</td><td class="left">Prashant Agrawal</td><td class="left"><a href="#sec-4_18">A Parallel 3D Flow Solver in Python Based on Vortex Methods</a></td></tr>
 <tr><td class="right">12:35-13:05</td><td class="left">Ajith Kumar</td><td class="left"><a href="#sec-4_12">Python in Science Experiments using Phoenix</a></td></tr>
 <tr><td class="right">13:05-14:05</td><td class="left"></td><td class="left">Lunch</td></tr>
-<tr><td class="right">14:05-14:15</td><td class="left">Arun C. H.</td><td class="left"><a href="#sec-4_2">Usb Connectivity Using Python</a></td></tr>
+<tr><td class="right">14:05-14:15</td><td class="left">Harikrishna</td><td class="left"><a href="#sec-4_23">Python based Galaxy workflow integration on GARUDA Grid</a></td></tr>
 <tr><td class="right">14:15-14:25</td><td class="left">Arun C. H.</td><td class="left"><a href="#sec-4_3">Automation of an Optical Spectrometer</a></td></tr>
 <tr><td class="right">14:25-14:35</td><td class="left"></td><td class="left"><a href="#More==Lightning==Talks">More Lightning Talks</a></td></tr>
 <tr><td class="right">14:35-14:55</td><td class="left">Krishnakant Mane</td><td class="left"><a href="#sec-4_22">Convincing Universities to include Python</a></td></tr>
@@ -68,7 +68,7 @@
 <tr><td class="right">15:15-15:35</td><td class="left">Puneeth Chaganti</td><td class="left"><a href="#sec-4_21">Pictures, Songs and Python</a></td></tr>
 <tr><td class="right">15:35-15:55</td><td class="left">Hrishikesh Deshpande</td><td class="left"><a href="#sec-4_5">Wavelet based denoising of ECG using Python</a></td></tr>
 <tr><td class="right">15:55-16:10</td><td class="left"></td><td class="left">Tea-Break</td></tr>
-<tr><td class="right">16:10-16:40</td><td class="left">Jarrod Millman</td><td class="left"><b>Invited Talk</b>: <a href="#sec-3_8">Building an open development community for neuroimaging analysis</a></td></tr>
+<tr><td class="right">16:10-16:40</td><td class="left">Jarrod Millman</td><td class="left"><b>Invited Talk</b><a href="#sec-3_8">Building an open development community for neuroimaging analysis</a></td></tr>
 <tr><td class="right">16:40-17:00</td><td class="left">Ramakrishna Reddy Yekulla</td><td class="left"><a href="#sec-4_13">Building and Packaging your Scientific Python Application For Linux Distributions</a></td></tr>
 <tr><td class="right">17:00-17:20</td><td class="left">Yogesh Karpate</td><td class="left"><a href="#sec-4_16">Automatic Proteomic Finger Printing using Scipy</a></td></tr>
 <tr><td class="right">17:20-17:40</td><td class="left">Manjusha Joshi</td><td class="left"><a href="#sec-4_15">SAGE for Scientific computing and Education enhancement</a></td></tr>
@@ -313,10 +313,7 @@
 
 
 
-
-
-
-<h3 id="sec-3_8">Building an open development community for neuroimaging analysis </h3>
+<h3 id="sec-3_8">Building an open development community for neuroimaging analysis</h3>
 
 
 <p>Jarrod Millman
@@ -327,21 +324,20 @@
 <h4 id="sec-3_8_1">Talk/Paper Abstract </h4>
 
 
-<p>Programming is becoming increasingly important to scientific activity.
-As its importance grows, the need for better software tools becomes more
-and more central to scientific practice.  However, many fields of science
-rely on badly written, poorly documented, and insufficiently tested
-codebases. Moreover, scientific software packages often implement only the
-approaches and algorithms needed or promoted by the specific lab where the
-software was written.
+<p>Programming is becoming increasingly important to scientific activity.  As its
+importance grows, the need for better software tools becomes more and more
+central to scientific practice.  However, many fields of science rely on
+badly written, poorly documented, and insufficiently tested codebases.  
+Moreover, scientific software packages often implement only the approaches
+and algorithms needed or promoted by the specific lab where the software
+was written.</p>
 
-In this talk, I will illustrate this situation by discussing some of the
+<p>In this talk, I will illustrate this situation by discussing some of the
 weaknesses of the software ecosystem for neuroimaging analysis circa 2004.
 I will then describe how several of my colleagues and I are attempting
 to rectify this situation with a project called Neuroimaging in Python
-(<a href="http://nipy.org">http://nipy.org</a>).  Specifically, I will
-discuss the approach we've taken (e.g., using Python) and the lessons
-we've learned.
+(http://nipy.org).  Specifically, I will discuss the approach we've taken
+(e.g., using Python) and the lessons we've learned.
 </p>
 
 
@@ -358,10 +354,10 @@
 
 
 
-<h3 id="sec-4_1">Interactive interfaces and Gesture recognition using Python </h3>
+<h3 id="sec-4_1">Python as a Platform for Scientific Computing Literacy for 10+2 Students: Weighing the Balance </h3>
 
 
-<p>Asim Mittal 
+<p>Farhat Habib
 </p>
 
 
@@ -369,27 +365,31 @@
 <h4 id="sec-4_1_1">Talk/Paper Abstract </h4>
 
 
-<p>Gesture recognition has caught on in a big way, but methods of
-integrating it with intuitive control still remain largely
-expensive and closed source.
-</p>
-<p>
-This talk aims at combining the IR tracking ability of the
-Nintendo Wiimote along with a little scientific computing in
-Python (Linux) to create a means of intuitively controlling
-applications and the operating system, using gestures drawn in 2D
-space using your fingers.
-</p>
-<p>
-This talk is an extension of the work that I have done from my
-talk at PyCon India.
-</p>
-<p>
-You can find out more about my work and ongoing research on my
-blog: <a href="http://baniyakiduniya.blogspot.com">http://baniyakiduniya.blogspot.com</a>
+<p>The use of Python as a language for introducing computing is
+becoming increasingly widespread.  Here we report out findings
+from two years of running an introduction to computing course
+with Python as the programming language, and building upon it,
+using SciPy as a scientific computing language in a course on
+scientific computing.
 </p>
 
-
+<p>
+The course is designed as a general computing course for
+introducing computing to first year undergraduate students of
+science. We find that a large majority of our incoming students
+have no prior exposure to programming and none of the students
+had any exposure to Python. Thus, the design of the course is
+such that it allows everybody to be brought up to speed with
+general programming concepts.  Later, the students will later
+specialize in varied topics from Biology to pure Mathematics,
+thus, the course emphasizes general computing concepts over
+specialized techniques. At a second course in Scien- tific
+Computing numerical methods are introduced with the aid of
+Scipy. The introduction to computing course has been taught
+twice in Fall 2009 and 2010 to batches of around 100 students
+each. In this paper we report our experience with teaching
+Python and student and faculty feedback related to the course.
+</p>
 
 
 
@@ -1447,4 +1447,39 @@
 </li>
 </ul>
 
+
+
+
+
+
+
+
+<h3 id="sec-4_23">Python based Galaxy workflow integration on GARUDA Grid </h3>
+
+
+<p>Harikrishna
+</p>
+
+
+
+<h4 id="sec-4_23_1">Talk/Paper Abstract </h4>
+
+
+<p>Bioinformatics applications being complex problem involving
+multiple comparisons, alignment, mapping and analysis can be
+managed better using workflow solutions. Galaxy is an open web
+based platform developed in Python for genomic research. Python
+is a light weight dynamic language making Galaxy to be modular
+and expandable. Bioinformatics applications being compute and
+data intensive scale well in grid computing environments. In
+this paper we describe bringing the Galaxy workflow to the
+Garuda Grid computing infrastructure for enabling bioinformatics
+applications. GAURDA grid is an aggregation of heterogeneous
+resources and advanced capabilities for scientific
+applications. Here we present the integration of galaxy workflow
+tool with GARUDA grid middleware to enable computational
+biologists to perform complex problems on the grid environment
+through a web browser.
+</p>
+
 {% endblock content %}
--- a/project/urls.py	Fri Dec 24 15:54:25 2010 +0530
+++ b/project/urls.py	Fri Dec 24 16:02:21 2010 +0530
@@ -53,6 +53,8 @@
         'edit_registration', name='scipycon_edit_registration'),
     url(r'^%s/regstats/$'% (SCOPE_ARG_PATTERN),
         'regstats', name="scipycon_regstats"),
+    url(r'^%s/regstats/download$'% (SCOPE_ARG_PATTERN),
+        'regstats_download', name="scipycon_regstats_download"),
     url(r'^%s/manage_payments/$'% (SCOPE_ARG_PATTERN),
         'manage_payments', name="scipycon_manage_payments"),
     )
@@ -158,6 +160,8 @@
      url(r'^password-reset-complete/$', 'password_reset_complete'),
 )
 
+handler404 = 'django.views.defaults.page_not_found'
+
 # Serve static files in DEBUG = True mode
 if settings.DEBUG:
     urlpatterns += patterns('',
--- a/scripts/mails.py	Fri Dec 24 15:54:25 2010 +0530
+++ b/scripts/mails.py	Fri Dec 24 16:02:21 2010 +0530
@@ -10,11 +10,19 @@
 
 from django.template import loader
 from django.contrib.auth.models import User
+from django.utils.translation import ugettext
 
 from project.scipycon.registration.models import Registration
 from project.scipycon.talk.models import Talk
 
 
+DEF_REMAINDER_REGISTRATION_PAGE_SUBJECT = ugettext(
+  'SciPy.in 2010: Registration updates required for confirmation')
+
+DEF_REMAINDER_ACCO_CONTACT_SUBJECT = ugettext(
+   'SciPy.in 2010: Contact details, registration page and other updates')
+
+
 def speaker_accepted():
     """Sends a mail to each speaker whose talk has been accepted
     informing them about the same.
@@ -60,7 +68,7 @@
     regs = Registration.objects.all()
 
     for reg in regs:
-        subject = 'SciPy.in 2010: Registration updates required for confirmation'
+        subject = DEF_REMAINDER_ACCO_CONTACT_SUBJECT
         message = loader.render_to_string(
             template, dictionary={'name': reg.registrant.get_full_name()})