From bd5a374373581e16dc6489ba6216cd3743acc3e7 Mon Sep 17 00:00:00 2001 From: Weitian LI Date: Sat, 7 Jun 2014 13:06:21 +0800 Subject: Added fields 'sjtu_id' & 'sjtu_initpass' to UserProfile model * added fields 'sjtu_id' & 'sjtu_initpass' to UserProfile model * updated 'dump()' and 'dump_fieldnames()' method * updated 'UserProfileAdmin' to show these fields * added south migration 0004 for newly added two fields --- account/admin.py | 2 + ...e_sjtu_id__add_field_userprofile_sjtu_initpa.py | 96 ++++++++++++++++++++++ account/models.py | 9 ++ 3 files changed, 107 insertions(+) create mode 100644 account/migrations/0004_auto__add_field_userprofile_sjtu_id__add_field_userprofile_sjtu_initpa.py diff --git a/account/admin.py b/account/admin.py index abab07f..bab242b 100644 --- a/account/admin.py +++ b/account/admin.py @@ -48,6 +48,8 @@ class UserProfileAdmin(admin.ModelAdmin): 'is_approved_html', 'is_sponsored_html', 'is_checkin_html', + 'sjtu_id', + 'sjtu_initpass', ) # fields used to filter rows list_filter = ( diff --git a/account/migrations/0004_auto__add_field_userprofile_sjtu_id__add_field_userprofile_sjtu_initpa.py b/account/migrations/0004_auto__add_field_userprofile_sjtu_id__add_field_userprofile_sjtu_initpa.py new file mode 100644 index 0000000..e2e151b --- /dev/null +++ b/account/migrations/0004_auto__add_field_userprofile_sjtu_id__add_field_userprofile_sjtu_initpa.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as 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 'UserProfile.sjtu_id' + db.add_column(u'account_userprofile', 'sjtu_id', + self.gf('django.db.models.fields.CharField')(default='', max_length=15, blank=True), + keep_default=False) + + # Adding field 'UserProfile.sjtu_initpass' + db.add_column(u'account_userprofile', 'sjtu_initpass', + self.gf('django.db.models.fields.CharField')(default='', max_length=10, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'UserProfile.sjtu_id' + db.delete_column(u'account_userprofile', 'sjtu_id') + + # Deleting field 'UserProfile.sjtu_initpass' + db.delete_column(u'account_userprofile', 'sjtu_initpass') + + + models = { + u'account.userfile': { + 'Meta': {'ordering': "['user', 'id']", 'object_name': 'UserFile'}, + 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'file': ('account.extra.ContentTypeRestrictedFileField', [], {'content_types': "['application/gzip', 'application/msword', 'application/pdf', 'application/postscript', 'application/rar', 'application/vnd.ms-excel', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.presentation', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/wps-office.doc', 'application/wps-office.dps', 'application/wps-office.et', 'application/wps-office.ppt', 'application/wps-office.pptx', 'application/wps-office.wps', 'application/wps-office.xls', 'application/zip', 'application/x-7z-compressed', 'application/x-bzip2', 'application/x-dvi', 'application/x-latex', 'application/x-rar-compressed', 'application/x-tar', 'image/bmp', 'image/gif', 'image/jpeg', 'image/png', 'image/tiff', 'text/csv', 'text/plain', 'text/rtf', 'text/x-markdown', 'text/x-tex']", 'max_upload_size': '10485760', 'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}) + }, + u'account.userprofile': { + 'Meta': {'object_name': 'UserProfile'}, + 'gender': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'identity': ('django.db.models.fields.CharField', [], {'max_length': '2'}), + 'institute': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'is_approved': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '1'}), + 'is_checkin': ('django.db.models.fields.CharField', [], {'default': "'X'", 'max_length': '1'}), + 'is_sponsored': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '1'}), + 'realname': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'reason': ('django.db.models.fields.TextField', [], {}), + 'sjtu_id': ('django.db.models.fields.CharField', [], {'max_length': '15', 'blank': 'True'}), + 'sjtu_initpass': ('django.db.models.fields.CharField', [], {'max_length': '10', 'blank': 'True'}), + 'supplement': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'transcript': ('account.extra.ContentTypeRestrictedFileField', [], {'content_types': "['application/gzip', 'application/msword', 'application/pdf', 'application/postscript', 'application/rar', 'application/vnd.ms-excel', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.presentation', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/wps-office.doc', 'application/wps-office.dps', 'application/wps-office.et', 'application/wps-office.ppt', 'application/wps-office.pptx', 'application/wps-office.wps', 'application/wps-office.xls', 'application/zip', 'application/x-7z-compressed', 'application/x-bzip2', 'application/x-dvi', 'application/x-latex', 'application/x-rar-compressed', 'application/x-tar', 'image/bmp', 'image/gif', 'image/jpeg', 'image/png', 'image/tiff', 'text/csv', 'text/plain', 'text/rtf', 'text/x-markdown', 'text/x-tex']", 'max_upload_size': '10485760', 'null': 'True', 'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'unique': 'True'}) + }, + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'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'}), + u'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'}) + } + } + + complete_apps = ['account'] \ No newline at end of file diff --git a/account/models.py b/account/models.py index 0565731..62276b8 100644 --- a/account/models.py +++ b/account/models.py @@ -91,6 +91,11 @@ class UserProfile(models.Model): choices=SPONSORED_STATUS, default='C') is_checkin = models.CharField(_("Is checkin"), max_length=1, choices=CHECKIN_STATUS, default='X') + # student id & initial password provided by sjtu jwc + sjtu_id = models.CharField(_("SJTU student ID"), + max_length=15, blank=True) + sjtu_initpass = models.CharField(_("SJTU initial password"), + max_length=10, blank=True) class Meta: verbose_name = _('user profile') @@ -202,6 +207,8 @@ class UserProfile(models.Model): 'reason': self._meta.get_field_by_name('reason')[0].verbose_name, 'transcript': self._meta.get_field_by_name('transcript')[0].verbose_name, 'supplement': self._meta.get_field_by_name('supplement')[0].verbose_name, + 'sjtu_id': self._meta.get_field_by_name('sjtu_id')[0].verbose_name, + 'sjtu_initpass': self._meta.get_field_by_name('sjtu_initpass')[0].verbose_name, 'is_approved': self._meta.get_field_by_name('is_approved')[0].verbose_name, 'is_sponsored': self._meta.get_field_by_name('is_sponsored')[0].verbose_name, 'is_checkin': self._meta.get_field_by_name('is_checkin')[0].verbose_name, @@ -229,6 +236,8 @@ class UserProfile(models.Model): 'reason': self.reason, 'transcript': transcript, 'supplement': self.supplement, + 'sjtu_id': self.sjtu_id, + 'sjtu_initpass': self.sjtu_initpass, 'is_approved': self.get_approved_value(), 'is_sponsored': self.get_sponsored_value(), 'is_checkin': self.get_checkin_value(), -- cgit v1.2.2