diff options
author | Amit Sethi | 2010-12-24 16:02:21 +0530 |
---|---|---|
committer | Amit Sethi | 2010-12-24 16:02:21 +0530 |
commit | 8ef01f45ff2ed4a13bf00d97103ddf94872cdadb (patch) | |
tree | ccceced26891a3703ebd844d691101235f3fbc20 | |
parent | 90a83c1bd2b6c6be1300ab850916a587c2e6c3a2 (diff) | |
parent | 85947db58ea7cbe9101ac13cff1e438f3968c150 (diff) | |
download | scipycon-8ef01f45ff2ed4a13bf00d97103ddf94872cdadb.tar.gz scipycon-8ef01f45ff2ed4a13bf00d97103ddf94872cdadb.tar.bz2 scipycon-8ef01f45ff2ed4a13bf00d97103ddf94872cdadb.zip |
Merging heads
42 files changed, 2916 insertions, 184 deletions
diff --git a/buildout.cfg b/buildout.cfg index 57fd230..3d82a4c 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -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} diff --git a/development.cfg b/development.cfg index 25c67ba..f2e88bf 100644 --- a/development.cfg +++ b/development.cfg @@ -5,4 +5,6 @@ eggs += pysqlite [django] settings = development -eggs = ${buildout:eggs} +eggs = + ${buildout:eggs} + ${reportlab:eggs} diff --git a/project/scipycon/registration/admin.py b/project/scipycon/registration/admin.py index 3f18abf..fc79f9b 100644 --- a/project/scipycon/registration/admin.py +++ b/project/scipycon/registration/admin.py @@ -11,10 +11,11 @@ from .models import Registration 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', diff --git a/project/scipycon/registration/migrations/0002_auto__add_field_payment_acco_confirmed.py b/project/scipycon/registration/migrations/0002_auto__add_field_payment_acco_confirmed.py new file mode 100644 index 0000000..13bb22f --- /dev/null +++ b/project/scipycon/registration/migrations/0002_auto__add_field_payment_acco_confirmed.py @@ -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'] diff --git a/project/scipycon/registration/migrations/0003_auto__add_field_payment_date_confirmed.py b/project/scipycon/registration/migrations/0003_auto__add_field_payment_date_confirmed.py new file mode 100644 index 0000000..052a1ac --- /dev/null +++ b/project/scipycon/registration/migrations/0003_auto__add_field_payment_date_confirmed.py @@ -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'] diff --git a/project/scipycon/registration/migrations/0004_auto__chg_field_payment_date_confirmed.py b/project/scipycon/registration/migrations/0004_auto__chg_field_payment_date_confirmed.py new file mode 100644 index 0000000..6ef942b --- /dev/null +++ b/project/scipycon/registration/migrations/0004_auto__chg_field_payment_date_confirmed.py @@ -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'] diff --git a/project/scipycon/registration/migrations/0005_auto__add_field_payment_confirmed_mail__add_field_payment_acco_confirm.py b/project/scipycon/registration/migrations/0005_auto__add_field_payment_confirmed_mail__add_field_payment_acco_confirm.py new file mode 100644 index 0000000..d7aee62 --- /dev/null +++ b/project/scipycon/registration/migrations/0005_auto__add_field_payment_confirmed_mail__add_field_payment_acco_confirm.py @@ -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'] diff --git a/project/scipycon/registration/migrations/0006_auto__add_field_accommodation_accommodation_on_1st__add_field_accommod.py b/project/scipycon/registration/migrations/0006_auto__add_field_accommodation_accommodation_on_1st__add_field_accommod.py new file mode 100644 index 0000000..60df42a --- /dev/null +++ b/project/scipycon/registration/migrations/0006_auto__add_field_accommodation_accommodation_on_1st__add_field_accommod.py @@ -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'] diff --git a/project/scipycon/registration/views.py b/project/scipycon/registration/views.py index 93a6233..75f0562 100644 --- a/project/scipycon/registration/views.py +++ b/project/scipycon/registration/views.py @@ -1,3 +1,4 @@ +import csv import datetime import time @@ -8,6 +9,8 @@ from django.contrib.auth.forms import AuthenticationForm 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 @@ def regstats(request, scope, 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, diff --git a/project/scipycon/user/views.py b/project/scipycon/user/views.py index 7d294d4..d46e77d 100644 --- a/project/scipycon/user/views.py +++ b/project/scipycon/user/views.py @@ -329,6 +329,9 @@ def get_user_dump(request, scope,template_name='user/dump.html'): @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 @@ def badge(request,scope): # 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') diff --git a/project/static/css/jquery-ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png b/project/static/css/jquery-ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png Binary files differnew file mode 100644 index 0000000..5b5dab2 --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png b/project/static/css/jquery-ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png Binary files differnew file mode 100644 index 0000000..ac8b229 --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-bg_glass_55_fbf9ee_1x400.png b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_55_fbf9ee_1x400.png Binary files differnew file mode 100644 index 0000000..ad3d634 --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png Binary files differnew file mode 100644 index 0000000..42ccba2 --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-bg_glass_75_dadada_1x400.png b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_75_dadada_1x400.png Binary files differnew file mode 100644 index 0000000..5a46b47 --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_75_dadada_1x400.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-bg_glass_75_e6e6e6_1x400.png b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_75_e6e6e6_1x400.png Binary files differnew file mode 100644 index 0000000..86c2baa --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-bg_glass_95_fef1ec_1x400.png b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_95_fef1ec_1x400.png Binary files differnew file mode 100644 index 0000000..4443fdc --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/project/static/css/jquery-ui-lightness/images/ui-bg_highlight-soft_75_cccccc_1x100.png Binary files differnew file mode 100644 index 0000000..7c9fa6c --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-icons_222222_256x240.png b/project/static/css/jquery-ui-lightness/images/ui-icons_222222_256x240.png Binary files differnew file mode 100644 index 0000000..b273ff1 --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-icons_222222_256x240.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-icons_2e83ff_256x240.png b/project/static/css/jquery-ui-lightness/images/ui-icons_2e83ff_256x240.png Binary files differnew file mode 100644 index 0000000..09d1cdc --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-icons_2e83ff_256x240.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-icons_454545_256x240.png b/project/static/css/jquery-ui-lightness/images/ui-icons_454545_256x240.png Binary files differnew file mode 100644 index 0000000..59bd45b --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-icons_454545_256x240.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-icons_888888_256x240.png b/project/static/css/jquery-ui-lightness/images/ui-icons_888888_256x240.png Binary files differnew file mode 100644 index 0000000..6d02426 --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-icons_888888_256x240.png diff --git a/project/static/css/jquery-ui-lightness/images/ui-icons_cd0a0a_256x240.png b/project/static/css/jquery-ui-lightness/images/ui-icons_cd0a0a_256x240.png Binary files differnew file mode 100644 index 0000000..2ab019b --- /dev/null +++ b/project/static/css/jquery-ui-lightness/images/ui-icons_cd0a0a_256x240.png diff --git a/project/static/img/jubilee_html_19fded16.png b/project/static/img/jubilee_html_19fded16.png Binary files differnew file mode 100644 index 0000000..f6d09f2 --- /dev/null +++ b/project/static/img/jubilee_html_19fded16.png diff --git a/project/static/img/mgbs_html_19fded16.png b/project/static/img/mgbs_html_19fded16.png Binary files differnew file mode 100644 index 0000000..f6d09f2 --- /dev/null +++ b/project/static/img/mgbs_html_19fded16.png diff --git a/project/static/img/nampally_html_19fded16.png b/project/static/img/nampally_html_19fded16.png Binary files differnew file mode 100644 index 0000000..f6d09f2 --- /dev/null +++ b/project/static/img/nampally_html_19fded16.png diff --git a/project/static/img/secunderabad_html_19fded16.png b/project/static/img/secunderabad_html_19fded16.png Binary files differnew file mode 100644 index 0000000..f6d09f2 --- /dev/null +++ b/project/static/img/secunderabad_html_19fded16.png diff --git a/project/templates/_menu.html b/project/templates/_menu.html index 715f051..d869067 100644 --- a/project/templates/_menu.html +++ b/project/templates/_menu.html @@ -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> diff --git a/project/templates/_right_menu.html b/project/templates/_right_menu.html index 97f67b0..3135b25 100644 --- a/project/templates/_right_menu.html +++ b/project/templates/_right_menu.html @@ -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> -</div> + <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> + <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 diff --git a/project/templates/about/accommodation.html b/project/templates/about/accommodation.html index 0a8c755..909d431 100644 --- a/project/templates/about/accommodation.html +++ b/project/templates/about/accommodation.html @@ -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> diff --git a/project/templates/about/food.html b/project/templates/about/food.html index f0205f2..4653d4f 100644 --- a/project/templates/about/food.html +++ b/project/templates/about/food.html @@ -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 diff --git a/project/templates/about/important_dates.html b/project/templates/about/important_dates.html index 3af10f1..91146c9 100644 --- a/project/templates/about/important_dates.html +++ b/project/templates/about/important_dates.html @@ -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 diff --git a/project/templates/about/organizers.html b/project/templates/about/organizers.html index 0806562..f9d6230 100644 --- a/project/templates/about/organizers.html +++ b/project/templates/about/organizers.html @@ -61,7 +61,7 @@ FOSSEE, IIT Bombay <ul> <li> -Prabhu Ramachandran (co-chair) +Prabhu Ramachandran </li> <li> Anoop Jacob Thomas @@ -97,7 +97,7 @@ Thomas Stephen Lee <ul> <li> -Sandhya Kode (co-chair) +Sandhya Kode </li> <li> Venkatesh Choppella diff --git a/project/templates/about/reaching.html b/project/templates/about/reaching.html index ae8de98..09edc19 100644 --- a/project/templates/about/reaching.html +++ b/project/templates/about/reaching.html @@ -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> - -<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 class="noindent">Air conditioned volvo buses to Technopark are available from East fort -which is approximately 1km from Trivandrum Central Railway Station.</p> - -<p class="noindent">Timings of KSRTC volvo A/C buses from East fort that reaches Technopark -are at:</p> - -<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> - -<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> - -<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> - -<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> - --> +<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> +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) -> Airport Rd-> Kishanguda -> Himayat Saagar +Jn -> AP Police academy -> Narsing Jn -> Gachibowli -> 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 & 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 & 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 & 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> + + + + + + + +<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 + +</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&source=s_d&saddr=Secunderabad+Railway+Station,+Regimental+Bazaar,+Hyderabad,+Andhra+Pradesh,+India&daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&geocode=FVwECgEdPNitBCnjlGVpIZrLOzEi59cLO05sXw%3BFflLCgEdROKrBCFLVFsjCtNn_w&hl=en&mra=pd&mrcr=0&dirflg=h&sll=17.442828,78.437696&sspn=0.075824,0.154324&ie=UTF8&ll=17.455145,78.436031&spn=0.075819,0.154324&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&source=embed&saddr=Secunderabad+Railway+Station,+Regimental+Bazaar,+Hyderabad,+Andhra+Pradesh,+India&daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&geocode=FVwECgEdPNitBCnjlGVpIZrLOzEi59cLO05sXw%3BFflLCgEdROKrBCFLVFsjCtNn_w&hl=en&mra=pd&mrcr=0&dirflg=h&sll=17.442828,78.437696&sspn=0.075824,0.154324&ie=UTF8&ll=17.455145,78.436031&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><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&source=s_d&saddr=Railway+Station,+Nampally,+Hyderabad,+Andhra+Pradesh,+India&daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&geocode=FY1oCQEdl1KtBCnv_MDuZJfLOzE2PszjKfdDUw%3BFflLCgEdROKrBCFLVFsjCtNn_w&hl=en&mra=ls&dirflg=h&sll=17.416995,78.43572&sspn=0.075835,0.154324&ie=UTF8&ll=17.39328,78.46662&spn=0.037923,0.077162&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&source=embed&saddr=Railway+Station,+Nampally,+Hyderabad,+Andhra+Pradesh,+India&daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&geocode=FY1oCQEdl1KtBCnv_MDuZJfLOzE2PszjKfdDUw%3BFflLCgEdROKrBCFLVFsjCtNn_w&hl=en&mra=ls&dirflg=h&sll=17.416995,78.43572&sspn=0.075835,0.154324&ie=UTF8&ll=17.39328,78.46662&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> + + + + + +<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 & 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&source=s_d&saddr=Jubilee+Bus+Station,+Picket,+West+Marredpally,+Hyderabad,+Andhra+Pradesh,+India&daddr=17.4795245,78.4180255+to:Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&geocode=FYA7CgEdNsmtBCnFZ5MiPprLOzHGaTHRIuvQpg%3BFWS3CgEdaZCsBCnx1ht_pZHLOzEV36JjwjFnIA%3BFflLCgEdROKrBCFLVFsjCtNn_w&hl=en&mra=pd&mrcr=0&dirflg=h&sll=17.449916,78.435773&sspn=0.075822,0.154324&ie=UTF8&via=1&ll=17.458093,78.433628&spn=0.075818,0.154324&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&source=embed&saddr=Jubilee+Bus+Station,+Picket,+West+Marredpally,+Hyderabad,+Andhra+Pradesh,+India&daddr=17.4795245,78.4180255+to:Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&geocode=FYA7CgEdNsmtBCnFZ5MiPprLOzHGaTHRIuvQpg%3BFWS3CgEdaZCsBCnx1ht_pZHLOzEV36JjwjFnIA%3BFflLCgEdROKrBCFLVFsjCtNn_w&hl=en&mra=pd&mrcr=0&dirflg=h&sll=17.449916,78.435773&sspn=0.075822,0.154324&ie=UTF8&via=1&ll=17.458093,78.433628&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&source=s_d&saddr=MGBS,+Hyderabad&daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&geocode=FQcrCQEdMJWtBCmXAZygLZjLOzFe_PFRMuSc3g%3BFflLCgEdROKrBCFLVFsjCtNn_w&hl=en&mra=ls&dirflg=h&sll=17.455145,78.436031&sspn=0.075819,0.154324&ie=UTF8&ll=17.412635,78.429385&spn=0.07879,0.11389&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&source=embed&saddr=MGBS,+Hyderabad&daddr=Mahindra+Satyam+Learning+World,+Andhra+Pradesh,+India&geocode=FQcrCQEdMJWtBCmXAZygLZjLOzFe_PFRMuSc3g%3BFflLCgEdROKrBCFLVFsjCtNn_w&hl=en&mra=ls&dirflg=h&sll=17.455145,78.436031&sspn=0.075819,0.154324&ie=UTF8&ll=17.412635,78.429385&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 + +</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&source=s_d&saddr=Regimental+Bazaar,+Andhra+Pradesh,+India+(Secunderabad+Railway+Station)&daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&geocode=FSYACgEd8NutBCFj3hhEwO0zbg%3BFZEKCgEdpl-rBCES9IXyMBWGHA&hl=en&mra=ls&dirflg=h&sll=17.430744,78.362045&sspn=0.075829,0.154324&ie=UTF8&ll=17.419443,78.42247&spn=0.151668,0.308647&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&source=embed&saddr=Regimental+Bazaar,+Andhra+Pradesh,+India+(Secunderabad+Railway+Station)&daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&geocode=FSYACgEd8NutBCFj3hhEwO0zbg%3BFZEKCgEdpl-rBCES9IXyMBWGHA&hl=en&mra=ls&dirflg=h&sll=17.430744,78.362045&sspn=0.075829,0.154324&ie=UTF8&ll=17.419443,78.42247&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&source=s_d&saddr=Railway+Station,+Nampally,+Hyderabad,+Andhra+Pradesh,+India&daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&geocode=FY1oCQEdl1KtBCnv_MDuZJfLOzE2PszjKfdDUw%3BFZEKCgEdpl-rBCES9IXyMBWGHA&hl=en&mra=ls&dirflg=h&sll=17.413546,78.402729&sspn=0.075837,0.154324&ie=UTF8&ll=17.422555,78.382902&spn=0.037916,0.077162&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&source=embed&saddr=Railway+Station,+Nampally,+Hyderabad,+Andhra+Pradesh,+India&daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&geocode=FY1oCQEdl1KtBCnv_MDuZJfLOzE2PszjKfdDUw%3BFZEKCgEdpl-rBCES9IXyMBWGHA&hl=en&mra=ls&dirflg=h&sll=17.413546,78.402729&sspn=0.075837,0.154324&ie=UTF8&ll=17.422555,78.382902&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 + +</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&source=s_d&saddr=MGBS,+Hyderabad&daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&geocode=FQcrCQEdMJWtBCmXAZygLZjLOzFe_PFRMuSc3g%3BFZEKCgEdpl-rBCES9IXyMBWGHA&hl=en&mra=pd&mrcr=0&dirflg=h&sll=17.40896,78.410797&sspn=0.151677,0.308647&ie=UTF8&ll=17.40905,78.41241&spn=0.07162,0.14784&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&source=embed&saddr=MGBS,+Hyderabad&daddr=Gachibowli,+Hyderabad,+Andhra+Pradesh,+India+(ISB+Learning+Resource+Centre)&geocode=FQcrCQEdMJWtBCmXAZygLZjLOzFe_PFRMuSc3g%3BFZEKCgEdpl-rBCES9IXyMBWGHA&hl=en&mra=pd&mrcr=0&dirflg=h&sll=17.40896,78.410797&sspn=0.151677,0.308647&ie=UTF8&ll=17.40905,78.41241&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&source=s_d&saddr=Jubilee+Bus+Station,+Picket,+West+Marredpally,+Hyderabad,+Andhra+Pradesh,+India&daddr=Isb+Campus,+Gachibowli,+Hyderabad,+Andhra+Pradesh+500032,+India+(Indian+School+of+Business(ISB))&geocode=FYA7CgEdNsmtBCnFZ5MiPprLOzHGaTHRIuvQpg%3BFasaCgEdGqWrBCEiH8n2wfqalw&hl=en&mra=pd&mrcr=0&dirflg=h&sll=17.416494,78.416634&sspn=0.151671,0.308647&ie=UTF8&ll=17.438932,78.3711&spn=0.018957,0.038581&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&source=embed&saddr=Jubilee+Bus+Station,+Picket,+West+Marredpally,+Hyderabad,+Andhra+Pradesh,+India&daddr=Isb+Campus,+Gachibowli,+Hyderabad,+Andhra+Pradesh+500032,+India+(Indian+School+of+Business(ISB))&geocode=FYA7CgEdNsmtBCnFZ5MiPprLOzHGaTHRIuvQpg%3BFasaCgEdGqWrBCEiH8n2wfqalw&hl=en&mra=pd&mrcr=0&dirflg=h&sll=17.416494,78.416634&sspn=0.151671,0.308647&ie=UTF8&ll=17.438932,78.3711&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 diff --git a/project/templates/about/sprints.html b/project/templates/about/sprints.html index 2a67cec..4f27392 100644 --- a/project/templates/about/sprints.html +++ b/project/templates/about/sprints.html @@ -60,8 +60,7 @@ available. </p> <p> Participants of Sprints who make a significant contribution will be -given swag. The sprint lead, will choose the participants who are -eligible for the swag. +given swag. The sprint lead will choose the participants eligible for swag. </p> {% endblock content %} diff --git a/project/templates/about/tutorial.html b/project/templates/about/tutorial.html index 7efc11a..216108f 100644 --- a/project/templates/about/tutorial.html +++ b/project/templates/about/tutorial.html @@ -45,85 +45,337 @@ They will be able to incorporate and adapt Python in their lessons <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> +basic calculus +</li> +<li> +basic algebra +</li> +<li> +basic plotting +</li> +</ul> +</li> +</ul> +</li> +<li> +symbolics & calculus & 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> +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> +appending +</li> +</ul> +</li> +</ul> +</li> +<li> +loading data from files using loadtxt +</li> +<li> +using for loop with lists +<ul> +<li> +pendulum example +</li> +</ul> +</li> +</ul> +</li> +</ul> + + + + + + + +<h4 id="sec-2">Day 4 </h4> + + +<ul> +<li> +Arrays (1 hr) (<b>Perry</b>) +<ul> +<li> +Why use arrays <ul> <li> -<a href="http://www.sagemath.org" >Sage</a> +finding sine of a list of million numbers +</li> +</ul> +</li> +<li> +getting started with arrays +</li> +<li> +accessing parts of arrays <ul> <li> -basic usage +1d slicing +</li> +<li> +1d striding +</li> +<li> +2d slicing +</li> +<li> +2d striding +</li> +</ul> </li> <li> -symbolic computing +lena example of above </li> <li> -numeric computing +element wise operations </li> <li> -basic plotting +matrices +<ul> +<li> +operations on matrices like det, inv, norm. +</li> +</ul> </li> </ul> </li> <li> -Basic Scientific Computing with Python covering the following +Scipy (1 hr 30 min) (<b>John</b>) <ul> <li> -ipython +least square fit </li> <li> -pylab +Roots +<ul> +<li> +introduction to functions +</li> +</ul> </li> <li> -numpy +Solving Equations </li> <li> -scipy +ODE +<ul> +<li> +revisiting functions +</li> +</ul> </li> <li> -basic use of Mayavi +FFT </li> </ul> </li> <li> -Basic Python +Python Language: Basics (1 hr) (<b>Asokan</b>) +<ul> +<li> +basic data-types <ul> <li> -data-types +strings +</li> +</ul> +</li> +<li> +Operators +</li> +<li> +I/O +</li> +<li> +conditionals </li> <li> -conditionals & looping +loops +<ul> +<li> +while </li> <li> -functions & modules +for loop and its usage with range +</li> +</ul> </li> </ul> </li> <li> -Advanced topics +Python Language: Data structures (1hr 30 min) (<b>Asokan</b>) <ul> <li> -Cython +manipulating lists +</li> +<li> +dictionaries </li> <li> -More Ipython +manipulating strings </li> <li> -More Mayavi +getting started with tuples </li> <li> -More matplotlib +sets </li> <li> -More Sage? +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…) (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 & 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>. diff --git a/project/templates/about/venue.html b/project/templates/about/venue.html index de2c37f..6638897 100644 --- a/project/templates/about/venue.html +++ b/project/templates/about/venue.html @@ -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 %} diff --git a/project/templates/notifications/contactdetails2010.html b/project/templates/notifications/contactdetails2010.html new file mode 100644 index 0000000..0a8b9bb --- /dev/null +++ b/project/templates/notifications/contactdetails2010.html @@ -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 diff --git a/project/templates/registration/regstats.html b/project/templates/registration/regstats.html index f73a36f..a0b3786 100644 --- a/project/templates/registration/regstats.html +++ b/project/templates/registration/regstats.html @@ -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 %} diff --git a/project/templates/talk/conf_schedule.html b/project/templates/talk/conf_schedule.html index 446d654..d6dcf4b 100644 --- a/project/templates/talk/conf_schedule.html +++ b/project/templates/talk/conf_schedule.html @@ -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 @@ bit about my PhD on super-resolution imaging! - - - -<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 @@ bit about my PhD on super-resolution imaging! <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 @@ we've learned. -<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,24 +365,30 @@ we've learned. <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>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> -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> +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> @@ -394,8 +396,6 @@ blog: <a href="http://baniyakiduniya.blogspot.com">http://baniyakiduniya.blogspo - - <h3 id="sec-4_2">Usb Connectivity Using Python </h3> @@ -1447,4 +1447,39 @@ clear the FUD regarding jobs </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 %} diff --git a/project/urls.py b/project/urls.py index b404d4c..4559856 100644 --- a/project/urls.py +++ b/project/urls.py @@ -53,6 +53,8 @@ urlpatterns += patterns('project.scipycon.registration.views', '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 @@ urlpatterns += patterns('django.contrib.auth.views', 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('', diff --git a/scripts/mails.py b/scripts/mails.py index 5e263a7..a15baa8 100644 --- a/scripts/mails.py +++ b/scripts/mails.py @@ -10,11 +10,19 @@ __authors__ = [ 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 @@ def delegate_remainder(template=None): 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()}) |