' +
'' +
@@ -141,7 +149,7 @@
$("#c_filter input[type='text']").add("#c_filter select").addClass('c_filter_field') ;
- $("#filter_name").add("#filter_date").add("#filter_tag").add("#filter_state").change(function() {
+ $("#filter_name").add("#filter_date").add("#filter_tag").add("#filter_cat").add("#filter_state").change(function() {
if (frames['text_view_comments'].readyForAction()) {
var elt = $(this) ;
frames['text_view_comments'].checkForOpenedDialog(null, function() {
@@ -546,8 +554,9 @@
var date_str = $('#filter_date').val(); ;
var text = $('#filter_text').val(); ;
var tag = $('#filter_tag').val(); ;
+ var cat = $('#filter_cat').val(); ;
var state = $('#filter_state').val(); ;
- return {'name':name, 'date':date_str, 'text':text, 'tag':tag, 'state':state} ;
+ return {'name':name, 'date':date_str, 'text':text, 'tag':tag, 'cat':cat, 'state':state} ;
}
f_setFilterValue = function (obj) {
@@ -658,6 +667,25 @@
}
$("#filter_tag option[name="+selectedTagOption+"]").attr("selected", true);
+ // categories
+ var selectedCatOption = $("#filter_cat option:selected").attr("cat") ;
+
+ $("#filter_cat option").remove() ;
+
+ categories = frames['text_view_comments'].CY.JSON.parse(frames['text_view_comments'].sv_categories);
+ if (categories.hasOwnProperty('0')) {
+ $("#filter_cat").append($("" + all + " ")) ;
+ for (var i=0, ilen=newFilterData['categories'].length; i < ilen ; i++) {
+ var item = newFilterData['categories'][i] ;
+ $("#filter_cat").append($("" + categories[item.cat] +" ("+item.nb_comments+") ")) ;
+ }
+ $("#filter_cat option[name="+selectedCatOption+"]").attr("selected", true);
+ }
+ else {
+ $("#filter_cat").remove()
+ $("#filter_cat_label").remove()
+ }
+
// states
var selectedStateOption = $("#filter_state option:selected").attr("state") ;
diff -r 8ec189cc214d -r b2e0186daa5b src/cm/migrations/0009_auto__chg_field_attachment_text_version.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/migrations/0009_auto__chg_field_attachment_text_version.py Tue Jun 25 11:56:01 2013 +0200
@@ -0,0 +1,199 @@
+# 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 'Attachment.text_version'
+ db.alter_column('cm_attachment', 'text_version_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['cm.TextVersion'], null=True))
+
+
+ def backwards(self, orm):
+
+ # Changing field 'Attachment.text_version'
+ db.alter_column('cm_attachment', 'text_version_id', self.gf('django.db.models.fields.related.ForeignKey')(default=None, to=orm['cm.TextVersion']))
+
+
+ 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': '75'})
+ },
+ 'cm.activity': {
+ 'Meta': {'object_name': 'Activity'},
+ 'comment': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.Comment']", 'null': 'True', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ip': ('django.db.models.fields.IPAddressField', [], {'default': 'None', 'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'originator_user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'originator_activity'", 'null': 'True', 'blank': 'True', 'to': "orm['auth.User']"}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.TextVersion']", 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.attachment': {
+ 'Meta': {'object_name': 'Attachment'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'data': ('django.db.models.fields.files.FileField', [], {'max_length': '1000'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.TextVersion']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.comment': {
+ 'Meta': {'object_name': 'Comment'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'content_html': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
+ 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'end_offset': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_wrapper': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'format': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_key': ('django.db.models.fields.CharField', [], {'default': "'QYwLbYEYNE8'", 'max_length': '20', 'db_index': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'reply_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Comment']", 'null': 'True', 'blank': 'True'}),
+ 'start_offset': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'start_wrapper': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'state': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'tags': ('tagging.fields.TagField', [], {}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.TextVersion']"}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.configuration': {
+ 'Meta': {'object_name': 'Configuration'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.TextField', [], {}),
+ 'raw_value': ('django.db.models.fields.TextField', [], {})
+ },
+ 'cm.email': {
+ 'Meta': {'object_name': 'Email'},
+ 'bcc': ('django.db.models.fields.TextField', [], {}),
+ 'body': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'from_email': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'message': ('django.db.models.fields.TextField', [], {}),
+ 'subject': ('django.db.models.fields.TextField', [], {}),
+ 'to': ('django.db.models.fields.TextField', [], {})
+ },
+ 'cm.notification': {
+ 'Meta': {'object_name': 'Notification'},
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.role': {
+ 'Meta': {'object_name': 'Role'},
+ 'anon': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {}),
+ 'global_scope': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"})
+ },
+ 'cm.text': {
+ 'Meta': {'object_name': 'Text'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'last_text_version': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'related_text'", 'null': 'True', 'to': "orm['cm.TextVersion']"}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'private_feed_key': ('django.db.models.fields.CharField', [], {'null': 'True', 'default': 'None', 'max_length': '20', 'blank': 'True', 'unique': 'True', 'db_index': 'True'}),
+ 'state': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.textversion': {
+ 'Meta': {'object_name': 'TextVersion'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'format': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'mod_posteriori': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'note': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'tags': ('tagging.fields.TagField', [], {'max_length': '1000'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']"}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.userprofile': {
+ 'Meta': {'object_name': 'UserProfile'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'allow_contact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_email_error': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_suspended': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_temp': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'preferred_language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '2'}),
+ 'tags': ('tagging.fields.TagField', [], {'max_length': '1000'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'})
+ },
+ 'cm.userrole': {
+ 'Meta': {'unique_together': "(('role', 'user', 'text'),)", 'object_name': 'UserRole'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Role']", 'null': 'True', 'blank': 'True'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ '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'})
+ }
+ }
+
+ complete_apps = ['cm']
diff -r 8ec189cc214d -r b2e0186daa5b src/cm/migrations/0010_auto__add_field_textversion_category_1__add_field_textversion_category.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/migrations/0010_auto__add_field_textversion_category_1__add_field_textversion_category.py Tue Jun 25 11:56:01 2013 +0200
@@ -0,0 +1,228 @@
+# 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 'TextVersion.category_1'
+ db.add_column('cm_textversion', 'category_1', self.gf('django.db.models.fields.CharField')(default=u'platinium', max_length=20, null=True, blank=True), keep_default=False)
+
+ # Adding field 'TextVersion.category_2'
+ db.add_column('cm_textversion', 'category_2', self.gf('django.db.models.fields.CharField')(default=u'gold', max_length=20, null=True, blank=True), keep_default=False)
+
+ # Adding field 'TextVersion.category_3'
+ db.add_column('cm_textversion', 'category_3', self.gf('django.db.models.fields.CharField')(default=u'silver', max_length=20, null=True, blank=True), keep_default=False)
+
+ # Adding field 'TextVersion.category_4'
+ db.add_column('cm_textversion', 'category_4', self.gf('django.db.models.fields.CharField')(default=u'bronze', max_length=20, null=True, blank=True), keep_default=False)
+
+ # Adding field 'TextVersion.category_5'
+ db.add_column('cm_textversion', 'category_5', self.gf('django.db.models.fields.CharField')(default=u'iron', max_length=20, null=True, blank=True), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'TextVersion.category_1'
+ db.delete_column('cm_textversion', 'category_1')
+
+ # Deleting field 'TextVersion.category_2'
+ db.delete_column('cm_textversion', 'category_2')
+
+ # Deleting field 'TextVersion.category_3'
+ db.delete_column('cm_textversion', 'category_3')
+
+ # Deleting field 'TextVersion.category_4'
+ db.delete_column('cm_textversion', 'category_4')
+
+ # Deleting field 'TextVersion.category_5'
+ db.delete_column('cm_textversion', 'category_5')
+
+
+ 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': '75'})
+ },
+ 'cm.activity': {
+ 'Meta': {'object_name': 'Activity'},
+ 'comment': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.Comment']", 'null': 'True', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ip': ('django.db.models.fields.IPAddressField', [], {'default': 'None', 'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'originator_user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'originator_activity'", 'null': 'True', 'blank': 'True', 'to': "orm['auth.User']"}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.TextVersion']", 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.attachment': {
+ 'Meta': {'object_name': 'Attachment'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'data': ('django.db.models.fields.files.FileField', [], {'max_length': '1000'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.TextVersion']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.comment': {
+ 'Meta': {'object_name': 'Comment'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'content_html': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
+ 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'end_offset': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_wrapper': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'format': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_key': ('django.db.models.fields.CharField', [], {'default': "'pDtCnVJJPgf'", 'max_length': '20', 'db_index': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'reply_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Comment']", 'null': 'True', 'blank': 'True'}),
+ 'start_offset': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'start_wrapper': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'state': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'tags': ('tagging.fields.TagField', [], {}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.TextVersion']"}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.configuration': {
+ 'Meta': {'object_name': 'Configuration'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.TextField', [], {}),
+ 'raw_value': ('django.db.models.fields.TextField', [], {})
+ },
+ 'cm.email': {
+ 'Meta': {'object_name': 'Email'},
+ 'bcc': ('django.db.models.fields.TextField', [], {}),
+ 'body': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'from_email': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'message': ('django.db.models.fields.TextField', [], {}),
+ 'subject': ('django.db.models.fields.TextField', [], {}),
+ 'to': ('django.db.models.fields.TextField', [], {})
+ },
+ 'cm.notification': {
+ 'Meta': {'object_name': 'Notification'},
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.role': {
+ 'Meta': {'object_name': 'Role'},
+ 'anon': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {}),
+ 'global_scope': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"})
+ },
+ 'cm.text': {
+ 'Meta': {'object_name': 'Text'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'last_text_version': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'related_text'", 'null': 'True', 'to': "orm['cm.TextVersion']"}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'private_feed_key': ('django.db.models.fields.CharField', [], {'null': 'True', 'default': 'None', 'max_length': '20', 'blank': 'True', 'unique': 'True', 'db_index': 'True'}),
+ 'state': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.textversion': {
+ 'Meta': {'object_name': 'TextVersion'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'category_1': ('django.db.models.fields.CharField', [], {'default': "u'platinium'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'category_2': ('django.db.models.fields.CharField', [], {'default': "u'gold'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'category_3': ('django.db.models.fields.CharField', [], {'default': "u'silver'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'category_4': ('django.db.models.fields.CharField', [], {'default': "u'bronze'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'category_5': ('django.db.models.fields.CharField', [], {'default': "u'iron'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'format': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'mod_posteriori': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'note': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'tags': ('tagging.fields.TagField', [], {'max_length': '1000'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']"}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.userprofile': {
+ 'Meta': {'object_name': 'UserProfile'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'allow_contact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_email_error': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_suspended': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_temp': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'preferred_language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '2'}),
+ 'tags': ('tagging.fields.TagField', [], {'max_length': '1000'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'})
+ },
+ 'cm.userrole': {
+ 'Meta': {'unique_together': "(('role', 'user', 'text'),)", 'object_name': 'UserRole'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Role']", 'null': 'True', 'blank': 'True'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ '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'})
+ }
+ }
+
+ complete_apps = ['cm']
diff -r 8ec189cc214d -r b2e0186daa5b src/cm/migrations/0011_auto__add_field_comment_category.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/migrations/0011_auto__add_field_comment_category.py Tue Jun 25 11:56:01 2013 +0200
@@ -0,0 +1,205 @@
+# 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 'Comment.category'
+ db.add_column('cm_comment', 'category', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'Comment.category'
+ db.delete_column('cm_comment', 'category')
+
+
+ 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': '75'})
+ },
+ 'cm.activity': {
+ 'Meta': {'object_name': 'Activity'},
+ 'comment': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.Comment']", 'null': 'True', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ip': ('django.db.models.fields.IPAddressField', [], {'default': 'None', 'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'originator_user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'originator_activity'", 'null': 'True', 'blank': 'True', 'to': "orm['auth.User']"}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.TextVersion']", 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.attachment': {
+ 'Meta': {'object_name': 'Attachment'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'data': ('django.db.models.fields.files.FileField', [], {'max_length': '1000'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['cm.TextVersion']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.comment': {
+ 'Meta': {'object_name': 'Comment'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'category': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'content_html': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {}),
+ 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'end_offset': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_wrapper': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'format': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_key': ('django.db.models.fields.CharField', [], {'default': "'gDcMRuTvHtD'", 'max_length': '20', 'db_index': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'reply_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Comment']", 'null': 'True', 'blank': 'True'}),
+ 'start_offset': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'start_wrapper': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'state': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'tags': ('tagging.fields.TagField', [], {}),
+ 'text_version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.TextVersion']"}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.configuration': {
+ 'Meta': {'object_name': 'Configuration'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.TextField', [], {}),
+ 'raw_value': ('django.db.models.fields.TextField', [], {})
+ },
+ 'cm.email': {
+ 'Meta': {'object_name': 'Email'},
+ 'bcc': ('django.db.models.fields.TextField', [], {}),
+ 'body': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'from_email': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'message': ('django.db.models.fields.TextField', [], {}),
+ 'subject': ('django.db.models.fields.TextField', [], {}),
+ 'to': ('django.db.models.fields.TextField', [], {})
+ },
+ 'cm.notification': {
+ 'Meta': {'object_name': 'Notification'},
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.role': {
+ 'Meta': {'object_name': 'Role'},
+ 'anon': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {}),
+ 'global_scope': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"})
+ },
+ 'cm.text': {
+ 'Meta': {'object_name': 'Text'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'last_text_version': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'related_text'", 'null': 'True', 'to': "orm['cm.TextVersion']"}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'private_feed_key': ('django.db.models.fields.CharField', [], {'null': 'True', 'default': 'None', 'max_length': '20', 'blank': 'True', 'unique': 'True', 'db_index': 'True'}),
+ 'state': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.textversion': {
+ 'Meta': {'object_name': 'TextVersion'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'category_1': ('django.db.models.fields.CharField', [], {'default': "u'platinium'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'category_2': ('django.db.models.fields.CharField', [], {'default': "u'gold'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'category_3': ('django.db.models.fields.CharField', [], {'default': "u'silver'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'category_4': ('django.db.models.fields.CharField', [], {'default': "u'bronze'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'category_5': ('django.db.models.fields.CharField', [], {'default': "u'iron'", 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'content': ('django.db.models.fields.TextField', [], {}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'format': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'mod_posteriori': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'note': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'tags': ('tagging.fields.TagField', [], {'max_length': '1000'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']"}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'cm.userprofile': {
+ 'Meta': {'object_name': 'UserProfile'},
+ 'adminkey': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'allow_contact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_email_error': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_suspended': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_temp': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20', 'db_index': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'preferred_language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '2'}),
+ 'tags': ('tagging.fields.TagField', [], {'max_length': '1000'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'})
+ },
+ 'cm.userrole': {
+ 'Meta': {'unique_together': "(('role', 'user', 'text'),)", 'object_name': 'UserRole'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Role']", 'null': 'True', 'blank': 'True'}),
+ 'text': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cm.Text']", 'null': 'True', 'blank': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ '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'})
+ }
+ }
+
+ complete_apps = ['cm']
diff -r 8ec189cc214d -r b2e0186daa5b src/cm/models.py
--- a/src/cm/models.py Wed Mar 27 17:51:18 2013 +0100
+++ b/src/cm/models.py Tue Jun 25 11:56:01 2013 +0200
@@ -26,6 +26,75 @@
from django.db import connection
from datetime import datetime
+# default conf values
+DEFAULT_CONF = {
+ 'workspace_name' : 'Workspace',
+ 'site_url' : settings.SITE_URL,
+ 'email_from' : settings.DEFAULT_FROM_EMAIL,
+ }
+
+from cm.role_models import change_role_model
+
+class ConfigurationManager(models.Manager):
+ def set_workspace_name(self, workspace_name):
+ if workspace_name:
+ self.set_key('workspace_name', workspace_name)
+
+ def get_key(self, key, default_value=None):
+ try:
+ return self.get(key=key).value
+ except Configuration.DoesNotExist:
+ return DEFAULT_CONF.get(key, default_value)
+
+ def del_key(self, key):
+ try:
+ self.get(key=key).delete()
+ except Configuration.DoesNotExist:
+ return None
+
+ def set_key(self, key, value):
+ conf, created = self.get_or_create(key=key)
+ if created or conf.value != value:
+ conf.value = value
+ conf.save()
+ if key == 'workspace_role_model':
+ change_role_model(value)
+
+ def __getitem__(self, key):
+ if not key.startswith('f_'):
+ return self.get_key(key, None)
+ else:
+ return getattr(self,key)()
+
+ def f_get_logo_url(self):
+ key = self.get_key('workspace_logo_file_key', None)
+ if key:
+ attach = Attachment.objects.get(key=key)
+ return attach.data.url
+ else:
+ return None
+
+import base64
+
+class Configuration(models.Model):
+ key = models.TextField(blank=False) # , unique=True cannot be added: creates error on mysql (?)
+ raw_value = models.TextField(blank=False)
+
+ def get_value(self):
+ return pickle.loads(base64.b64decode(self.raw_value.encode('utf8')))
+
+ def set_value(self, value):
+ self.raw_value = base64.b64encode(pickle.dumps(value, 0)).encode('utf8')
+
+ value = property(get_value, set_value)
+
+ objects = ConfigurationManager()
+
+ def __unicode__(self):
+ return '%s: %s' % (self.key, self.value)
+
+ApplicationConfiguration = Configuration.objects
+
class TextManager(Manager):
def create_text(self, title, format, content, note, name, email, tags, user=None, state='approved', **kwargs):
content = on_content_receive(content, format)
@@ -192,6 +261,14 @@
mod_posteriori = models.BooleanField(ugettext_lazy('Moderation a posteriori?'), default=True)
+ from django.utils.safestring import mark_safe
+
+ category_1 = models.CharField(ugettext_lazy("Label for the first category of comments"), help_text=mark_safe(_("Paragraphs including at least one comment of this category will have a vertical bar with this color: ") + ' ' + _("Leave blank to use the value configured for the workspace.") + ' ' + _("To disable this category for this text whatever the configuration for the workspace, enter: ") + 'none '), max_length=20, null=True, blank=True, default=ApplicationConfiguration['workspace_category_1'])
+ category_2 = models.CharField(ugettext_lazy("Label for the second category of comments"), help_text=mark_safe(_("Paragraphs including at least one comment of this category will have a vertical bar with this color: ") + ' ' + _("Leave blank to use the value configured for the workspace. ") + ' ' + _("To disable this category for this text whatever the configuration for the workspace, enter: ") + 'none '), max_length=20, null=True, blank=True, default=ApplicationConfiguration['workspace_category_2'])
+ category_3 = models.CharField(ugettext_lazy("Label for the third category of comments"), help_text=mark_safe(_("Paragraphs including at least one comment of this category will have a vertical bar with this color: ") + ' ' + _("Leave blank to use the value configured for the workspace. ") + ' ' + _("To disable this category for this text whatever the configuration for the workspace, enter: ") + 'none '), max_length=20, null=True, blank=True, default=ApplicationConfiguration['workspace_category_3'])
+ category_4 = models.CharField(ugettext_lazy("Label for the fourth category of comments"), help_text=mark_safe(_("Paragraphs including at least one comment of this category will have a vertical bar with this color: ") + ' ' + _("Leave blank to use the value configured for the workspace. ") + ' ' + _("To disable this category for this text whatever the configuration for the workspace, enter: ") + 'none '), max_length=20, null=True, blank=True, default=ApplicationConfiguration['workspace_category_4'])
+ category_5 = models.CharField(ugettext_lazy("Label for the fifth category of comments"), help_text=mark_safe(_("Paragraphs including at least one comment of this category will have a vertical bar with this color: ") + ' ' + _("Leave blank to use the value configured for the workspace. ") + ' ' + _("To disable this category for this text whatever the configuration for the workspace, enter: ") + 'none '), max_length=20, null=True, blank=True, default=ApplicationConfiguration['workspace_category_5'])
+
text = models.ForeignKey("Text")
objects = TextVersionManager()
@@ -279,6 +356,8 @@
format = models.CharField(_("Format:"), max_length=20, blank=False, default=DEFAULT_INPUT_FORMAT, choices=CHOICES_INPUT_FORMATS)
tags = TagField()
+
+ category = models.PositiveSmallIntegerField(default=0)
start_wrapper = models.IntegerField(null=True, blank=True)
end_wrapper = models.IntegerField(null=True, blank=True)
@@ -340,75 +419,6 @@
# http://docs.djangoproject.com/en/dev/topics/files/#topics-files
-# default conf values
-DEFAULT_CONF = {
- 'workspace_name' : 'Workspace',
- 'site_url' : settings.SITE_URL,
- 'email_from' : settings.DEFAULT_FROM_EMAIL,
- }
-
-from cm.role_models import change_role_model
-
-class ConfigurationManager(models.Manager):
- def set_workspace_name(self, workspace_name):
- if workspace_name:
- self.set_key('workspace_name', workspace_name)
-
- def get_key(self, key, default_value=None):
- try:
- return self.get(key=key).value
- except Configuration.DoesNotExist:
- return DEFAULT_CONF.get(key, default_value)
-
- def del_key(self, key):
- try:
- self.get(key=key).delete()
- except Configuration.DoesNotExist:
- return None
-
- def set_key(self, key, value):
- conf, created = self.get_or_create(key=key)
- if created or conf.value != value:
- conf.value = value
- conf.save()
- if key == 'workspace_role_model':
- change_role_model(value)
-
- def __getitem__(self, key):
- if not key.startswith('f_'):
- return self.get_key(key, None)
- else:
- return getattr(self,key)()
-
- def f_get_logo_url(self):
- key = self.get_key('workspace_logo_file_key', None)
- if key:
- attach = Attachment.objects.get(key=key)
- return attach.data.url
- else:
- return None
-
-import base64
-
-class Configuration(models.Model):
- key = models.TextField(blank=False) # , unique=True cannot be added: creates error on mysql (?)
- raw_value = models.TextField(blank=False)
-
- def get_value(self):
- return pickle.loads(base64.b64decode(self.raw_value.encode('utf8')))
-
- def set_value(self, value):
- self.raw_value = base64.b64encode(pickle.dumps(value, 0)).encode('utf8')
-
- value = property(get_value, set_value)
-
- objects = ConfigurationManager()
-
- def __unicode__(self):
- return '%s: %s' % (self.key, self.value)
-
-ApplicationConfiguration = Configuration.objects
-
class AttachmentManager(KeyManager):
def create_attachment(self, text_version, filename, data):
attach = self.create(text_version=text_version)
@@ -418,7 +428,7 @@
class Attachment(KeyModel):
data = models.FileField(upload_to="attachments/%Y/%m/%d/", max_length=1000)
- text_version = models.ForeignKey(TextVersion, null=True)
+ text_version = models.ForeignKey(TextVersion, null=True, blank=True, default=None)
objects = AttachmentManager()
diff -r 8ec189cc214d -r b2e0186daa5b src/cm/monkey_patches.py
--- a/src/cm/monkey_patches.py Wed Mar 27 17:51:18 2013 +0100
+++ b/src/cm/monkey_patches.py Tue Jun 25 11:56:01 2013 +0200
@@ -1,4 +1,4 @@
-from south.management.commands.migrate import Command
+from south.management.commands.migrate import Command, list_migrations
from south.db import DEFAULT_DB_ALIAS
from south import migration
import sys
diff -r 8ec189cc214d -r b2e0186daa5b src/cm/templates/site/text_view_comments.html
--- a/src/cm/templates/site/text_view_comments.html Wed Mar 27 17:51:18 2013 +0100
+++ b/src/cm/templates/site/text_view_comments.html Tue Jun 25 11:56:01 2013 +0200
@@ -80,6 +80,7 @@
sv_key = "{{ text.key|escapejs }}";
sv_version_key = "{{ text_version.key|escapejs }}";
sv_format = "{{ text_version.format }}";
+sv_categories = "{{ categories|escapejs }}";
sv_withComments = true ; // TODO will bug when false (!)
c_yui_base = "{{ YUI_VERSION }}" ;
@@ -119,7 +120,7 @@
{% else %}
-
+
{% endif %}
diff -r 8ec189cc214d -r b2e0186daa5b src/cm/templates/site/text_view_frame.html
--- a/src/cm/templates/site/text_view_frame.html Wed Mar 27 17:51:18 2013 +0100
+++ b/src/cm/templates/site/text_view_frame.html Tue Jun 25 11:56:01 2013 +0200
@@ -37,7 +37,7 @@
{% else %}
-
+
{% endif %}