--- /dev/null
+# 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 'Category.image'
+ db.add_column('cloudcmsfaq_category', 'image', self.gf('feincms.module.medialibrary.fields.MediaFileForeignKey')(to=orm['medialibrary.MediaFile'], null=True, blank=True), keep_default=False)
+
+ # Adding field 'Category.class_name'
+ db.add_column('cloudcmsfaq_category', 'class_name', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'Category.image'
+ db.delete_column('cloudcmsfaq_category', 'image_id')
+
+ # Deleting field 'Category.class_name'
+ db.delete_column('cloudcmsfaq_category', 'class_name')
+
+
+ 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'})
+ },
+ 'cloudcms.application': {
+ 'Meta': {'object_name': 'Application'},
+ 'app_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'extra_styles': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'facebook_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'favicon': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_favicon'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'footer_bottom': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'footer_top': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'index_url': ('django.db.models.fields.CharField', [], {'default': "'/'", 'max_length': '255'}),
+ 'linked_in_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'logo': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'show_twitter_feed_on_top': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'twitter_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'cloudcms.service': {
+ 'Meta': {'ordering': "['-ordering']", 'object_name': 'Service'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_faq': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'ordering': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+ 'title_faq': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'title_userguide': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'cloudcmsfaq.category': {
+ 'Meta': {'ordering': "['-ordering']", 'object_name': 'Category'},
+ 'class_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'display_on_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'ordering': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+ },
+ 'cloudcmsfaq.categorytranslation': {
+ 'Meta': {'ordering': "['title']", 'object_name': 'CategoryTranslation'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language_code': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['cloudcmsfaq.Category']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'cloudcmsfaq.imagecontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'ImageContent', 'db_table': "'cloudcmsfaq_question_imagecontent'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'imagecontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'position': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '10'}),
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'cloudcmsfaq.question': {
+ 'Meta': {'ordering': "['service', 'category', '-published_on']", 'object_name': 'Question'},
+ 'application': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'faqs'", 'symmetrical': 'False', 'to': "orm['cloudcms.Application']"}),
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faqs'", 'to': "orm['auth.User']"}),
+ 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faqs'", 'to': "orm['cloudcmsfaq.Category']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'last_changed': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'published_on': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'null': 'True', 'blank': 'True'}),
+ 'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faqs'", 'null': 'True', 'to': "orm['cloudcms.Service']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'cloudcmsfaq.rawcontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'RawContent', 'db_table': "'cloudcmsfaq_question_rawcontent'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rawcontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ 'cloudcmsfaq.richtextcontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'RichTextContent', 'db_table': "'cloudcmsfaq_question_richtextcontent'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'richtextcontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ 'cloudcmsfaq.sectioncontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'SectionContent', 'db_table': "'cloudcmsfaq_question_sectioncontent'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mediafile': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cloudcmsfaq_sectioncontent_set'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sectioncontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'richtext': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'default': "'block'", 'max_length': '10'})
+ },
+ 'cloudcmsfaq.templatecontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'TemplateContent', 'db_table': "'cloudcmsfaq_question_templatecontent'"},
+ 'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'templatecontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'region': ('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'})
+ },
+ 'medialibrary.category': {
+ 'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'medialibrary.mediafile': {
+ 'Meta': {'object_name': 'MediaFile'},
+ 'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}),
+ 'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '12'})
+ },
+ 'sites.site': {
+ 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+ 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ }
+ }
+
+ complete_apps = ['cloudcmsfaq']
--- /dev/null
+# 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 'Question.published_on'
+ db.alter_column('cloudcmsfaq_question', 'published_on', self.gf('django.db.models.fields.DateTimeField')())
+
+
+ def backwards(self, orm):
+
+ # Changing field 'Question.published_on'
+ db.alter_column('cloudcmsfaq_question', 'published_on', self.gf('django.db.models.fields.DateTimeField')(null=True))
+
+
+ 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'})
+ },
+ 'cloudcms.application': {
+ 'Meta': {'object_name': 'Application'},
+ 'app_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'extra_styles': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'facebook_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'favicon': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_favicon'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'footer_bottom': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'footer_top': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'index_url': ('django.db.models.fields.CharField', [], {'default': "'/'", 'max_length': '255'}),
+ 'linked_in_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'logo': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'show_twitter_feed_on_top': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'twitter_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'cloudcms.service': {
+ 'Meta': {'ordering': "['-ordering']", 'object_name': 'Service'},
+ 'class_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_faq': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'image_faq'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'image_userguide': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'image_userguide'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'ordering': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+ },
+ 'cloudcmsfaq.category': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'Category'},
+ 'class_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'display_on_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'ordering': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+ },
+ 'cloudcmsfaq.categorytranslation': {
+ 'Meta': {'ordering': "['title']", 'object_name': 'CategoryTranslation'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language_code': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['cloudcmsfaq.Category']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'cloudcmsfaq.imagecontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'ImageContent', 'db_table': "'cloudcmsfaq_question_imagecontent'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'imagecontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'position': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '10'}),
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'cloudcmsfaq.question': {
+ 'Meta': {'ordering': "['service', 'category__ordering', '-published_on']", 'object_name': 'Question'},
+ 'application': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'faqs'", 'symmetrical': 'False', 'to': "orm['cloudcms.Application']"}),
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faqs'", 'to': "orm['auth.User']"}),
+ 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faqs'", 'to': "orm['cloudcmsfaq.Category']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'last_changed': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'published_on': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}),
+ 'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'faqs'", 'null': 'True', 'to': "orm['cloudcms.Service']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'cloudcmsfaq.rawcontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'RawContent', 'db_table': "'cloudcmsfaq_question_rawcontent'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rawcontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ 'cloudcmsfaq.richtextcontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'RichTextContent', 'db_table': "'cloudcmsfaq_question_richtextcontent'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'richtextcontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ 'cloudcmsfaq.sectioncontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'SectionContent', 'db_table': "'cloudcmsfaq_question_sectioncontent'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mediafile': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cloudcmsfaq_sectioncontent_set'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sectioncontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'richtext': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'default': "'block'", 'max_length': '10'})
+ },
+ 'cloudcmsfaq.templatecontent': {
+ 'Meta': {'ordering': "['ordering']", 'object_name': 'TemplateContent', 'db_table': "'cloudcmsfaq_question_templatecontent'"},
+ 'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'templatecontent_set'", 'to': "orm['cloudcmsfaq.Question']"}),
+ 'region': ('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'})
+ },
+ 'medialibrary.category': {
+ 'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'medialibrary.mediafile': {
+ 'Meta': {'object_name': 'MediaFile'},
+ 'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}),
+ 'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '12'})
+ },
+ 'sites.site': {
+ 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+ 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ }
+ }
+
+ complete_apps = ['cloudcmsfaq']
--- /dev/null
+# 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 'ClientVersionSource.default'
+ db.add_column('cloudcms_clientversionsource', 'default', self.gf('django.db.models.fields.BooleanField')(default=True), keep_default=False)
+
+ # Adding field 'Service.title_faq'
+ db.add_column('cloudcms_service', 'title_faq', self.gf('django.db.models.fields.CharField')(default='', max_length=100), keep_default=False)
+
+ # Adding field 'Service.title_userguide'
+ db.add_column('cloudcms_service', 'title_userguide', self.gf('django.db.models.fields.CharField')(default='', max_length=100), keep_default=False)
+
+ # Adding field 'Service.image_faq'
+ db.add_column('cloudcms_service', 'image_faq', self.gf('feincms.module.medialibrary.fields.MediaFileForeignKey')(blank=True, related_name='image_faq', null=True, to=orm['medialibrary.MediaFile']), keep_default=False)
+
+ # Adding field 'Service.image_userguide'
+ db.add_column('cloudcms_service', 'image_userguide', self.gf('feincms.module.medialibrary.fields.MediaFileForeignKey')(blank=True, related_name='image_userguide', null=True, to=orm['medialibrary.MediaFile']), keep_default=False)
+
+ # Adding field 'Service.class_name'
+ db.add_column('cloudcms_service', 'class_name', self.gf('django.db.models.fields.CharField')(default='', max_length=100), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'ClientVersionSource.default'
+ db.delete_column('cloudcms_clientversionsource', 'default')
+
+ # Deleting field 'Service.title_faq'
+ db.delete_column('cloudcms_service', 'title_faq')
+
+ # Deleting field 'Service.title_userguide'
+ db.delete_column('cloudcms_service', 'title_userguide')
+
+ # Deleting field 'Service.image_faq'
+ db.delete_column('cloudcms_service', 'image_faq_id')
+
+ # Deleting field 'Service.image_userguide'
+ db.delete_column('cloudcms_service', 'image_userguide_id')
+
+ # Deleting field 'Service.class_name'
+ db.delete_column('cloudcms_service', 'class_name')
+
+
+ models = {
+ 'cloudcms.application': {
+ 'Meta': {'object_name': 'Application'},
+ 'app_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'extra_styles': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'facebook_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'favicon': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_favicon'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'footer_bottom': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'footer_top': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'index_url': ('django.db.models.fields.CharField', [], {'default': "'/'", 'max_length': '255'}),
+ 'linked_in_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'logo': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'show_twitter_feed_on_top': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'twitter_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'cloudcms.client': {
+ 'Meta': {'object_name': 'Client'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'uid': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'cloudcms.clientversionsource': {
+ 'Meta': {'object_name': 'ClientVersionSource'},
+ 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'client': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cloudcms.Client']"}),
+ 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'file_regex': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'link': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'logo': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'os': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'source_type': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
+ 'version_regex': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ 'cloudcms.service': {
+ 'Meta': {'ordering': "['-ordering']", 'object_name': 'Service'},
+ 'class_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_faq': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'image_faq'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'image_userguide': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'image_userguide'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'ordering': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
+ 'title_faq': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'title_userguide': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'cloudcms.servicetranslation': {
+ 'Meta': {'ordering': "['title']", 'object_name': 'ServiceTranslation'},
+ 'cms_page': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['page.Page']", 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language_code': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['cloudcms.Service']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'medialibrary.category': {
+ 'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'medialibrary.mediafile': {
+ 'Meta': {'object_name': 'MediaFile'},
+ 'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}),
+ 'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '12'})
+ },
+ 'page.page': {
+ 'Meta': {'ordering': "['tree_id', 'lft']", 'object_name': 'Page'},
+ '_cached_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '300', 'db_index': 'True', 'blank': 'True'}),
+ '_content_title': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ '_page_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'meta_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'meta_keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'modification_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+ 'navigation_extension': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'override_url': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['page.Page']"}),
+ 'publication_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 7, 10, 12, 30)'}),
+ 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'redirect_to': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'site': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['sites.Site']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+ 'symlinked_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'page_page_symlinks'", 'null': 'True', 'to': "orm['page.Page']"}),
+ 'template_key': ('django.db.models.fields.CharField', [], {'default': "'twocolwide'", 'max_length': '255'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'translation_of': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'translations'", 'null': 'True', 'to': "orm['page.Page']"}),
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
+ },
+ 'sites.site': {
+ 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+ 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ }
+ }
+
+ complete_apps = ['cloudcms']
--- /dev/null
+# 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):
+
+ # Deleting field 'Service.title_faq'
+ db.delete_column('cloudcms_service', 'title_faq')
+
+ # Deleting field 'Service.title_userguide'
+ db.delete_column('cloudcms_service', 'title_userguide')
+
+ # Adding field 'ServiceTranslation.title_faq'
+ db.add_column('cloudcms_servicetranslation', 'title_faq', self.gf('django.db.models.fields.CharField')(default='', max_length=100), keep_default=False)
+
+ # Adding field 'ServiceTranslation.title_userguide'
+ db.add_column('cloudcms_servicetranslation', 'title_userguide', self.gf('django.db.models.fields.CharField')(default='', max_length=100), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Adding field 'Service.title_faq'
+ db.add_column('cloudcms_service', 'title_faq', self.gf('django.db.models.fields.CharField')(default='', max_length=100), keep_default=False)
+
+ # Adding field 'Service.title_userguide'
+ db.add_column('cloudcms_service', 'title_userguide', self.gf('django.db.models.fields.CharField')(default='', max_length=100), keep_default=False)
+
+ # Deleting field 'ServiceTranslation.title_faq'
+ db.delete_column('cloudcms_servicetranslation', 'title_faq')
+
+ # Deleting field 'ServiceTranslation.title_userguide'
+ db.delete_column('cloudcms_servicetranslation', 'title_userguide')
+
+
+ models = {
+ 'cloudcms.application': {
+ 'Meta': {'object_name': 'Application'},
+ 'app_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'extra_styles': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'facebook_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'favicon': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_favicon'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'footer_bottom': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'footer_top': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'index_url': ('django.db.models.fields.CharField', [], {'default': "'/'", 'max_length': '255'}),
+ 'linked_in_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'logo': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'show_twitter_feed_on_top': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'twitter_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'cloudcms.client': {
+ 'Meta': {'object_name': 'Client'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'uid': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'cloudcms.clientversionsource': {
+ 'Meta': {'object_name': 'ClientVersionSource'},
+ 'architecture': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'client': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cloudcms.Client']"}),
+ 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'file_regex': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'link': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'logo': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+ 'os': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'source_type': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
+ 'version_regex': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ 'cloudcms.service': {
+ 'Meta': {'ordering': "['-ordering']", 'object_name': 'Service'},
+ 'class_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image_faq': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'image_faq'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'image_userguide': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'image_userguide'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+ 'ordering': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
+ },
+ 'cloudcms.servicetranslation': {
+ 'Meta': {'ordering': "['title']", 'object_name': 'ServiceTranslation'},
+ 'cms_page': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['page.Page']", 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language_code': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['cloudcms.Service']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'title_faq': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'title_userguide': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'medialibrary.category': {
+ 'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'medialibrary.mediafile': {
+ 'Meta': {'object_name': 'MediaFile'},
+ 'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}),
+ 'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
+ 'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '12'})
+ },
+ 'page.page': {
+ 'Meta': {'ordering': "['tree_id', 'lft']", 'object_name': 'Page'},
+ '_cached_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '300', 'db_index': 'True', 'blank': 'True'}),
+ '_content_title': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ '_page_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'meta_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'meta_keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'modification_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+ 'navigation_extension': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'override_url': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['page.Page']"}),
+ 'publication_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 7, 10, 12, 35)'}),
+ 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'redirect_to': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'site': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['sites.Site']"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+ 'symlinked_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'page_page_symlinks'", 'null': 'True', 'to': "orm['page.Page']"}),
+ 'template_key': ('django.db.models.fields.CharField', [], {'default': "'twocolwide'", 'max_length': '255'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'translation_of': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'translations'", 'null': 'True', 'to': "orm['page.Page']"}),
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
+ },
+ 'sites.site': {
+ 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+ 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ }
+ }
+
+ complete_apps = ['cloudcms']
"""
ordering = models.SmallIntegerField(_('ordering'), default=0)
-
+ image_faq = MediaFileForeignKey(MediaFile, blank=True, null=True, related_name='image_faq')
+ image_userguide = MediaFileForeignKey(MediaFile, blank=True, null=True,related_name='image_userguide')
+ class_name = models.CharField(_('class name'), max_length=100, blank=True)
+
+
class Meta:
verbose_name = _('service')
verbose_name_plural = _('services')
objects = translations.TranslatedObjectManager()
+ def get_first_question(self):
+ try:
+ return self.faqs.filter(is_active=True)[0]
+ except:
+ return None
+
def __unicode__(self):
trans = translations.TranslatedObjectMixin.__unicode__(self)
return trans or _('Unnamed category')
slug = models.SlugField(_('slug'), unique=True)
description = models.CharField(_('description'), max_length=250, blank=True)
cms_page = models.ForeignKey(Page, null=True, blank=True)
-
+ title_faq = models.CharField(_('service title (faq section)'), max_length=100, blank=True)
+ title_userguide = models.CharField(_('service title (userguide section)'), max_length=100, blank=True)
+
class Meta:
verbose_name = _('service translation')
verbose_name_plural = _('service translations')
form input[type="text"]:focus label,\r
form input[type="password"]:focus label { z-index: 300;}\r
form input.submit, \r
-form input[type="submit"] {font-family: 'Antic', sans-serif;font-size: 14px; font-weight: normal; line-height: 22px; letter-spacing:1px; background-color: #f89a1c;color: #ffffff; border: none; padding: 10px 22px;font-size: 1em; margin:15px 0 0 223px; height:43px; }\r
+form input[type="submit"],\r
+a.submit {font-family: 'Antic', sans-serif;font-size: 14px; font-weight: normal; line-height: 22px; letter-spacing:1px; background-color: #f89a1c;color: #ffffff; border: none; padding: 10px 22px;font-size: 1em; margin:15px 0 0 223px; height:43px; }\r
form.innerlabels input.submit, \r
form.innerlabels input[type="submit"] {margin-left:0;}\r
form input.submit:hover, \r
-form input[type="submit"]:hover { background-color:#3582ac;border-color:#3582ac;}\r
+form input[type="submit"]:hover,\r
+a.submit:hover { background-color:#3582ac;border-color:#3582ac; text-decoration:none;}\r
form input.submit.back, \r
form input[type="submit"].back { text-decoration: none; bottom: 0; float: right; z-index: 500; }\r
form input.submit.back.right, \r
@media screen and ( width : 320px) { \r
#okeanos_recaptcha { width:259px }\r
\r
-}
\ No newline at end of file
+}\r
+\r
+p+ form { margin:2em 0; }
\ No newline at end of file
.documentation img { max-width:100%; }
/* forms */
form input.submit, form input[type="submit"] { margin:0; }
-form .form-row .extra-link { padding-top:0; }
\ No newline at end of file
+form .form-row .extra-link { padding-top:0; }
+.faq .two-cols .rt { width:auto; }
+.faq .two-cols .lt { width:auto; }
\ No newline at end of file
.two-cols .rt img { max-width:100%; }
.two-cols .lt { width:45%; }
.two-cols-blog .rt { width:25%; padding-right:0; margin-left:30px;}
-.top-msg { margin-left:-9%; margin-right:-9%; padding-left:20%; padding-right:20%; }
\ No newline at end of file
+.top-msg { margin-left:-9%; margin-right:-9%; padding-left:20%; padding-right:20%; }
+.faq .two-cols .rt { width:35%; }
+.faq .two-cols .lt { width:55%; }
.container .extra ul.options { font-size:1em; margin:0 ; padding:15px; }\r
.landing h2, .landing a:hover { color:#01A1AE;}\r
.faq h2, .faq a:hover, .faq .current a { color:#EF4F54; border:0 none;}\r
-.content .question h2 { color:#EF4F54 }\r
+.question h2 { color:#EF4F54 }\r
.content .backlink { margin:1em 0; }\r
-.content .question .backlink a:hover { border-bottom:1px solid #F89A1C }\r
.faq h3 { color:#4085a6; margin:0;}\r
.faq ul { padding:0; margin:0; }\r
.faq ul li { list-style:none outside; padding:0; margin:0; }\r
#animation p img { display:inline-block; width:65%; }\r
\r
/* Weird bug in pages that contain captcha. An extra iframe appears in chrome :S*/\r
-.container +iframe { display:none; }
\ No newline at end of file
+.container +iframe { display:none; }\r
+\r
+/* Style for im/projects */\r
+table.alt-style { color:#000; width:100%; }\r
+table.alt-style caption { font-weight:normal; font-size:1.154em; }\r
+table.alt-style tr th { font-weight:normal; color:#3582AC }\r
+table.alt-style tr td { color:#222; }\r
+table.alt-style tr td:first-child,\r
+table.alt-style tr th:first-child { padding-left:5px; }\r
+.content a.submit { margin:0; display:inline-block; margin:10px 0 ; height:auto;}\r
+table.alt-style tr:nth-child(2n) td { background:#F2F2F2 }\r
+dl.alt-style { width:500px; }\r
+dl.alt-style dt { width:50%; float:left; color:#3582AC; font-weight:normal;}\r
+dl.alt-style dt:nth-child(2n) { background:black; }\r
+.projects { padding-bottom:30px; }\r
+.projects h2 span { color:#3582AC;}\r
+.projects h2 em { float:right; }\r
+.projects h3 { font-size:1.154em; }\r
+.projects .submit-rt { margin:0; text-align:right; }\r
+.projects +.buttons-list.fixpos { left:0; right:auto; }\r
+\r
+/* new faq-userguide styles */\r
+\r
+.faq .two-cols .lt { width:460px; }\r
+.faq .two-cols .rt { width:340px; }\r
+.lt-small .rt { width:520px; }\r
+.lt-small .lt { width:280px; }\r
+.unequal-dotted { background:url(../images/double-dots-unequal.jpg) no-repeat top center; padding: 30px 0 0 ; margin-top:30px;}\r
+.unequal-dotted:first-child { background:none; padding-top:0; margin-top:0; }\r
+.tirkouaz h2,\r
+.tirkouaz h2 a,\r
+.tirkouaz h3,\r
+.tirkouaz a:hover { color:#00A1B0; }\r
+.yellow h2,\r
+.yellow h2 a,\r
+.yellow h3,\r
+.yellow a:hover { color:#F6921E; }\r
+.purple h2,\r
+.purple h2 a,\r
+.purple h3,\r
+.purple a:hover { color:#7B499C; }\r
+\r
+.details ul li a,\r
+.details ul li a:hover,\r
+.question .content a:hover { color:#F6921E }\r
+.details .extra-menu { border-top: 1px dashed #000; padding-top:20px; margin-top:20px; }\r
+.question .next-prev { margin:10px 0; }\r
+.question .next { float:right; }
\ No newline at end of file
\r
/*$('#animation a').hover(\r
function () {\r
- var src = $(this).find('img').attr('src').replace('.png', '_top.png')\r
- $(this).find('img').attr("src", src);\r
+ \r
$(this).animate({\r
top: '+=-10' \r
- }, 600, function() {\r
- // action to do when animation is finished\r
- });\r
+ }, 600);\r
$(this).siblings('p').find('img').animate({\r
width: '60%' \r
});\r
}, \r
function () {\r
- \r
- $(this).animate({\r
- top: '0' \r
- \r
- }, 600, function() {\r
- var src = $(this).find('img').attr('src').replace('_top.png', '.png')\r
- $(this).find('img').attr("src", src);\r
- });\r
+\r
+ $(this).animate({top: '0'}, 600);\r
$(this).siblings('p').find('img').animate({\r
width: '65%' \r
});\r
{% endblock favicons %}
{% block css %}
- <link href='https://fonts.googleapis.com/css?family=Antic' rel='stylesheet' type='text/css'>
+ <link href="https://fonts.googleapis.com/css?family=Antic" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}cloudcms/css/global.css">
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}cloudcms/css/print.css" media="print">
<!--[if lte IE 7]>
from django import template
from cloudcmsfaq.models import Question
+from collections import OrderedDict
register = template.Library()
"""
Retrun service faqs grouped by category
"""
- grouped = {}
+ grouped = OrderedDict()
for q in Question.objects.active().filter(service=service, is_active=True):
if q.category not in grouped:
class CategoryAdmin(admin.ModelAdmin):
inlines = [CategoryTranslationInline]
- list_display = ['__unicode__', 'faqs']
+ list_display = ['__unicode__', 'faqs', 'ordering']
+ list_editable = ['ordering']
search_fields = ['translations__title']
def faqs(self, obj):
ordering = models.SmallIntegerField(_('ordering'), default=0)
display_on_menu = models.BooleanField(default=False)
+ image = MediaFileForeignKey(MediaFile, blank=True, null=True)
+ class_name = models.CharField(_('class_name'), max_length=200, blank=True, null=True)
class Meta:
verbose_name = _('category')
verbose_name_plural = _('categories')
- ordering = ['-ordering',]
+ ordering = ['ordering',]
objects = translations.TranslatedObjectManager()
-
+
+
def __unicode__(self):
trans = translations.TranslatedObjectMixin.__unicode__(self)
return trans or _('Unnamed category')
related_name="faqs",
verbose_name=_('application'))
- published_on = models.DateTimeField(_('published on'), blank=True, null=True, default=datetime.now,
+ published_on = models.DateTimeField(_('published on'), blank=True, null=False, default=datetime.now,
help_text=_('Will be filled in automatically when question gets published.'))
last_changed = models.DateTimeField(_('last change'), auto_now=True, editable=False)
objects = QuestionManager()
+
class Meta:
get_latest_by = 'published_on'
- ordering = ['service', 'category', '-published_on']
+ ordering = ['service', 'category__ordering', 'published_on']
verbose_name = _('faq')
verbose_name_plural = _('faqs')
def __unicode__(self):
return self.title
+ def get_next(self):
+ return self.get_next_by_published_on(category=self.category, service=self.service)
+
+ def get_previous(self):
+ return self.get_previous_by_published_on(category=self.category, service=self.service)
+
def get_absolute_url(self):
try:
r = reverse('cloudcmsfaq_question_detail', 'cloudcmsfaq.urls', (),
{% load applicationcontent_tags pagination_tags i18n cloudcms_tags %}
<div class="faq">
- {% for service in services %}
- <div class="faq-category">
- <h2>{{ service.translation.title|upper }}</h2>
- <ul>
- <li class="category">
- {% for category, questions in service|get_service_faqs %}
- <h3>{{ category.translation.title|upper }}</h3>
- <ul>
- {% for q in questions %}
- <li {% if q == question %}class="current"{% endif %}>
- <a href="{{ q.get_absolute_url }}">{{ q.title }}</a>
- </li>
- {% endfor %}
- <br />
- </ul>
- {% endfor %}
- </li>
- </ul>
+
+ {% for service in services %}
+
+ <div class="two-cols clearfix unequal-dotted">
+ <div class="rt">
+ <img src="{{ service.image_faq.get_absolute_url }}" alt="{{ service.image_faq.title }}" />
+ </div>
+ <div class="lt">
+ <div class="faq-category {{ service.class_name }}">
+ <h2>{{ service.translation.title_faq|upper }}</h2>
+ {% for category, questions in service|get_service_faqs %}
+ <h3>{{ category.translation.title }}</h3>
+ <ul>
+ {% for q in questions %}
+ <li {% if q == question %}class="current"{% endif %}>
+ <a href="{{ q.get_absolute_url }}">{{ q.title }}</a>
+ </li>
+ {% endfor %}
+ <br />
+ </ul>
+ {% endfor %}
+ </div>
+ </div>
+
+
</div>
+
{% endfor %}
</div>
-{% load applicationcontent_tags i18n %}
+{% load applicationcontent_tags pagination_tags i18n cloudcms_tags %}
-{% fragment request "sidecol" %}
-{% include "cloudcmsfaq/archive.html" %}
-{% endfragment %}
+<div class="two-cols lt-small clearfix details faq">
+ <div class="rt">
+ <div class="question details {{ question.service.class_name }}">
+ <h2>{{ question.title|upper }}</h2>
+ <div class="content">
+ {% for content in question.content.main %}
+ {{ content.render }}
+ {% endfor %}
+ </div>
+ <div class="clearfix next-prev">
+ {% if question.get_next %}
+ <a href="{{ question.get_next.get_absolute_url }}" class="next">Next ></a>
+ {% endif %}
+ {% if question.get_previous %}
+ <a href="{{ question.get_previous.get_absolute_url }}" class="prev">< Previous</a>
+ {% else %}
+ <a href="{{ question.back_url }}">{% trans "< Back to FAQ" %}</a>
+ {% endif%}
+
+ </div>
+ </div>
+
+ <div class="extra-menu">
+ {% for service in services %}
+ {% if service == question.service %}
+ <div class="faq-category {{ service.class_name }}">
+ {% for category, questions in service|get_service_faqs %}
+ {% if category == question.category %}
+ <h3>{{ service.translation.title_faq|upper }} > {{ category.translation.title }}</h3>
+ <ul>
+ {% for q in questions %}
+ <li>
+ {% if q != question %}<a href="{{ q.get_absolute_url }}">{% endif %}{{ q.title }}{% if q != question %}</a>{% endif %}
+ </li>
+ {% endfor %}
+ <br />
+ </ul>
+ {% endif %}
+ {% endfor %}
+ </div>
+ {% endif %}
+ {% endfor %}
+ </div>
+ </div>
+
+ <div class="lt">
+ {% for service in services %}
+ <div class="faq-category {{ service.class_name }}">
+ <h2>
+ {% if service != question.service %}
+ <a href="{{ service.get_first_question.get_absolute_url }}">
+ {% endif %}
+ {{ service.translation.title_faq|upper }}
+ {% if service != question.service %}
+ </a>
+ {% endif %}
+ </h2>
+
+ {% for category, questions in service|get_service_faqs %}
-{% fragment request "maincol" %}
-<div class="question">
- <h2>{{ question.title|upper }}</h2>
- <div class="content">
- {% for content in question.content.main %}
- {{ content.render }}
- {% endfor %}
- </div>
- <div class="bottom-content backlink">
- <a href="{{ question.back_url }}">{% trans "< Back to FAQ" %}</a>
- </div>
-</div>
-{% endfragment %}
\ No newline at end of file
+ {% if service == question.service %}
+ <h3>{{ category.translation.title }}</h3>
+ <ul>
+ {% for q in questions %}
+ <li>
+ {% if q != question %}<a href="{{ q.get_absolute_url }}">{% endif %}{{ q.title }}{% if q != question %}</a>{% endif %}
+ </li>
+ {% endfor %}
+ <br />
+ </ul>
+ {% endif %}
+ {% endfor %}
+ </div>
+ {% endfor %}
+ </div>
+</div>
+
+
+
+
Display detailed question.
"""
entry = Question.objects.get(slug=slug)
- services = Service.objects.filter(pk=entry.service.pk)
-
+ services = Service.objects.all()
+
return direct_to_template(request,
"cloudcmsfaq/detail.html", {'question': entry,
- 'services': services})
+ 'services': services })