]> git.parisson.com Git - mezzo.git/commitdiff
mv manifeste to sandbox, add real (blank) manifeste app, add eve psql restore and...
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Tue, 26 Jan 2016 17:00:34 +0000 (18:00 +0100)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Tue, 26 Jan 2016 17:00:34 +0000 (18:00 +0100)
62 files changed:
app/deploy/start_app.sh
app/manage.py
app/manifeste/admin.py [new file with mode: 0644]
app/manifeste/local_settings.py [deleted file]
app/manifeste/migrations/blog/0001_initial.py [deleted file]
app/manifeste/migrations/blog/0002_auto_20150527_1555.py [deleted file]
app/manifeste/migrations/blog/0003_auto_20151223_1313.py [deleted file]
app/manifeste/migrations/blog/__init__.py [deleted file]
app/manifeste/migrations/conf/0001_initial.py [deleted file]
app/manifeste/migrations/conf/0002_auto_20151223_1313.py [deleted file]
app/manifeste/migrations/conf/__init__.py [deleted file]
app/manifeste/migrations/forms/0001_initial.py [deleted file]
app/manifeste/migrations/forms/0002_auto_20141227_0224.py [deleted file]
app/manifeste/migrations/forms/0003_emailfield.py [deleted file]
app/manifeste/migrations/forms/0004_auto_20150517_0510.py [deleted file]
app/manifeste/migrations/forms/0005_auto_20151223_1313.py [deleted file]
app/manifeste/migrations/forms/__init__.py [deleted file]
app/manifeste/migrations/galleries/0001_initial.py [deleted file]
app/manifeste/migrations/galleries/0002_auto_20141227_0224.py [deleted file]
app/manifeste/migrations/galleries/0003_auto_20151223_1313.py [deleted file]
app/manifeste/migrations/galleries/__init__.py [deleted file]
app/manifeste/migrations/pages/0001_initial.py [deleted file]
app/manifeste/migrations/pages/0002_auto_20141227_0224.py [deleted file]
app/manifeste/migrations/pages/0003_auto_20150527_1555.py [deleted file]
app/manifeste/migrations/pages/0004_auto_20151223_1313.py [deleted file]
app/manifeste/migrations/pages/__init__.py [deleted file]
app/manifeste/models.py [new file with mode: 0644]
app/manifeste/settings.py [deleted file]
app/manifeste/tests.py [new file with mode: 0644]
app/manifeste/urls.py [deleted file]
app/manifeste/views.py [new file with mode: 0644]
app/sandbox/__init__.py [new file with mode: 0644]
app/sandbox/local_settings.py [new file with mode: 0644]
app/sandbox/migrations/__init__.py [new file with mode: 0644]
app/sandbox/migrations/blog/0001_initial.py [new file with mode: 0644]
app/sandbox/migrations/blog/0002_auto_20150527_1555.py [new file with mode: 0644]
app/sandbox/migrations/blog/0003_auto_20151223_1313.py [new file with mode: 0644]
app/sandbox/migrations/blog/__init__.py [new file with mode: 0644]
app/sandbox/migrations/conf/0001_initial.py [new file with mode: 0644]
app/sandbox/migrations/conf/0002_auto_20151223_1313.py [new file with mode: 0644]
app/sandbox/migrations/conf/__init__.py [new file with mode: 0644]
app/sandbox/migrations/forms/0001_initial.py [new file with mode: 0644]
app/sandbox/migrations/forms/0002_auto_20141227_0224.py [new file with mode: 0644]
app/sandbox/migrations/forms/0003_emailfield.py [new file with mode: 0644]
app/sandbox/migrations/forms/0004_auto_20150517_0510.py [new file with mode: 0644]
app/sandbox/migrations/forms/0005_auto_20151223_1313.py [new file with mode: 0644]
app/sandbox/migrations/forms/__init__.py [new file with mode: 0644]
app/sandbox/migrations/galleries/0001_initial.py [new file with mode: 0644]
app/sandbox/migrations/galleries/0002_auto_20141227_0224.py [new file with mode: 0644]
app/sandbox/migrations/galleries/0003_auto_20151223_1313.py [new file with mode: 0644]
app/sandbox/migrations/galleries/__init__.py [new file with mode: 0644]
app/sandbox/migrations/pages/0001_initial.py [new file with mode: 0644]
app/sandbox/migrations/pages/0002_auto_20141227_0224.py [new file with mode: 0644]
app/sandbox/migrations/pages/0003_auto_20150527_1555.py [new file with mode: 0644]
app/sandbox/migrations/pages/0004_auto_20151223_1313.py [new file with mode: 0644]
app/sandbox/migrations/pages/__init__.py [new file with mode: 0644]
app/sandbox/settings.py [new file with mode: 0644]
app/sandbox/urls.py [new file with mode: 0644]
app/wait.py
app/wsgi.py
docker-compose.yml
requirements.txt

index 84b21476a47cdd0fb574cc6d016f6a85b5700ff9..b8ea0e3078be65bfd64ea444cc332724a139e4e3 100644 (file)
@@ -16,7 +16,7 @@ uid='www-data'
 gid='www-data'
 
 # Staging
-#pip install mezzanine_instagram
+pip install psycopg2
 
 chown -R $uid:$gid $media
 
@@ -24,10 +24,10 @@ chown -R $uid:$gid $media
 sh $app/deploy/wait.sh
 
 # waiting for available database
-python $app/wait.py
+python $app/wait.py
 
 # django init
-python $manage syncdb --noinput
+python $manage syncdb --noinput
 python $manage migrate --noinput
 python $manage collectstatic --noinput
 
index e9d335d4b46691a5bcc2efe630b5a7ca3e88ace9..7102e85fae05cc03561e79cd916cd4c2e542593c 100755 (executable)
@@ -6,7 +6,7 @@ if __name__ == "__main__":
 
     from mezzanine.utils.conf import real_project_name
 
-    settings_module = "%s.settings" % real_project_name("manifeste")
+    settings_module = "%s.settings" % real_project_name("sandbox")
     os.environ.setdefault("DJANGO_SETTINGS_MODULE", settings_module)
 
     from django.core.management import execute_from_command_line
diff --git a/app/manifeste/admin.py b/app/manifeste/admin.py
new file mode 100644 (file)
index 0000000..8c38f3f
--- /dev/null
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/app/manifeste/local_settings.py b/app/manifeste/local_settings.py
deleted file mode 100644 (file)
index 7d8fc65..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-import os
-
-DEBUG = True
-
-# Make these unique, and don't share it with anybody.
-SECRET_KEY = "+3b01&_6_m@@yb4f06$s0zno8vkybh81nbuj_q(xzk+xeih1+s"
-NEVERCACHE_KEY = "l11tr%#!uc@+%$51(&+%=&z6h9yrw42(jpcj$3_&6evtu6hl%z"
-
-DATABASES = {
-    'default': {
-        'ENGINE': 'django.db.backends.mysql',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
-        'USER': os.environ.get('DB_ENV_MYSQL_USER'),      # Not used with sqlite3.
-        'PASSWORD': os.environ.get('DB_ENV_MYSQL_PASSWORD'),  # Not used with sqlite3.
-        'NAME': os.environ.get('DB_ENV_MYSQL_DATABASE'),
-        'HOST': 'db',      # Set to empty string for localhost. Not used with sqlite3.
-        'PORT': '3306',      # Set to empty string for default. Not used with sqlite3.
-    }
-}
-
-# EXTENSIONS AND FORMATS
-# Allowed Extensions for File Upload. Lower case is important.
-FILEBROWSER_EXTENSIONS = {
-    'Folder': [''],
-    'Image': ['.jpg', '.jpeg', '.gif', '.png', '.tif', '.tiff'],
-    'Document': ['.pdf', '.doc', '.rtf', '.txt', '.xls', '.csv', '.docx'],
-    'Video': ['.mov', '.wmv', '.mpeg', '.mpg', '.avi', '.rm'],
-    'Audio': ['.mp3', '.mp4', '.wav', '.aiff', '.midi', '.m4p']
-    }
-
-# Define different formats for allowed selections.
-# This has to be a subset of EXTENSIONS.
-# e.g., add ?type=image to the browse-URL ...
-FILEBROWSER_SELECT_FORMATS = {
-    'File': ['Folder', 'Document'],
-    'Image': ['Image'],
-    'Media': ['Video', 'Audio'],
-    'Audio': ['Audio'],
-    'Document': ['Document'],
-    # for TinyMCE we can also define lower-case items
-    'image': ['Image'],
-    'file': ['Folder', 'Image', 'Document'],
-    'media': ['Video', 'Audio'],
-    'audio': ['Audio'],
-}
-
-EMAIL_HOST = 'smtp.ircam.fr'
-EMAIL_PORT = '25'
-DEFAULT_FROM_EMAIL = 'manifeste2016@ircam.fr'
-EMAIL_SUBJECT_PREFIX = "IRCAM Manifeste 2016"
-SITE_TITLE = 'Manifeste 2016'
-SITE_TAGLINE = 'Festival 2 juin | 2 juillet 2016'
diff --git a/app/manifeste/migrations/blog/0001_initial.py b/app/manifeste/migrations/blog/0001_initial.py
deleted file mode 100644 (file)
index 1124f8b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import mezzanine.core.fields
-import mezzanine.utils.models
-from django.conf import settings
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('sites', '0001_initial'),
-        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='BlogCategory',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('title', models.CharField(max_length=500, verbose_name='Title')),
-                ('slug', models.CharField(help_text='Leave blank to have the URL auto-generated from the title.', max_length=2000, null=True, verbose_name='URL', blank=True)),
-                ('site', models.ForeignKey(editable=False, to='sites.Site')),
-            ],
-            options={
-                'ordering': ('title',),
-                'verbose_name': 'Blog Category',
-                'verbose_name_plural': 'Blog Categories',
-            },
-            bases=(models.Model,),
-        ),
-        migrations.CreateModel(
-            name='BlogPost',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('comments_count', models.IntegerField(default=0, editable=False)),
-                ('keywords_string', models.CharField(max_length=500, editable=False, blank=True)),
-                ('rating_count', models.IntegerField(default=0, editable=False)),
-                ('rating_sum', models.IntegerField(default=0, editable=False)),
-                ('rating_average', models.FloatField(default=0, editable=False)),
-                ('title', models.CharField(max_length=500, verbose_name='Title')),
-                ('slug', models.CharField(help_text='Leave blank to have the URL auto-generated from the title.', max_length=2000, null=True, verbose_name='URL', blank=True)),
-                ('_meta_title', models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True)),
-                ('description', models.TextField(verbose_name='Description', blank=True)),
-                ('gen_description', models.BooleanField(default=True, help_text='If checked, the description will be automatically generated from content. Uncheck if you want to manually set a custom description.', verbose_name='Generate description')),
-                ('created', models.DateTimeField(null=True, editable=False)),
-                ('updated', models.DateTimeField(null=True, editable=False)),
-                ('status', models.IntegerField(default=2, help_text='With Draft chosen, will only be shown for admin users on the site.', verbose_name='Status', choices=[(1, 'Draft'), (2, 'Published')])),
-                ('publish_date', models.DateTimeField(help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from', blank=True)),
-                ('expiry_date', models.DateTimeField(help_text="With Published chosen, won't be shown after this time", null=True, verbose_name='Expires on', blank=True)),
-                ('short_url', models.URLField(null=True, blank=True)),
-                ('in_sitemap', models.BooleanField(default=True, verbose_name='Show in sitemap')),
-                ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')),
-                ('allow_comments', models.BooleanField(default=True, verbose_name='Allow comments')),
-                ('featured_image', mezzanine.core.fields.FileField(max_length=255, null=True, verbose_name='Featured Image', blank=True)),
-                ('categories', models.ManyToManyField(related_name='blogposts', verbose_name='Categories', to='blog.BlogCategory', blank=True)),
-                ('related_posts', models.ManyToManyField(related_name='related_posts_rel_+', verbose_name='Related posts', to='blog.BlogPost', blank=True)),
-                ('site', models.ForeignKey(editable=False, to='sites.Site')),
-                ('user', models.ForeignKey(related_name='blogposts', verbose_name='Author', to=settings.AUTH_USER_MODEL)),
-            ],
-            options={
-                'ordering': ('-publish_date',),
-                'verbose_name': 'Blog post',
-                'verbose_name_plural': 'Blog posts',
-            },
-            bases=(models.Model, mezzanine.utils.models.AdminThumbMixin),
-        ),
-    ]
diff --git a/app/manifeste/migrations/blog/0002_auto_20150527_1555.py b/app/manifeste/migrations/blog/0002_auto_20150527_1555.py
deleted file mode 100644 (file)
index a5cb65c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('blog', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='blogpost',
-            name='publish_date',
-            field=models.DateTimeField(help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from', db_index=True, blank=True),
-        ),
-    ]
diff --git a/app/manifeste/migrations/blog/0003_auto_20151223_1313.py b/app/manifeste/migrations/blog/0003_auto_20151223_1313.py
deleted file mode 100644 (file)
index 2d1da52..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('blog', '0002_auto_20150527_1555'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='blogcategory',
-            name='title_en',
-            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
-        ),
-        migrations.AddField(
-            model_name='blogcategory',
-            name='title_fr',
-            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
-        ),
-        migrations.AddField(
-            model_name='blogpost',
-            name='_meta_title_en',
-            field=models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True),
-        ),
-        migrations.AddField(
-            model_name='blogpost',
-            name='_meta_title_fr',
-            field=models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True),
-        ),
-        migrations.AddField(
-            model_name='blogpost',
-            name='content_en',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
-        ),
-        migrations.AddField(
-            model_name='blogpost',
-            name='content_fr',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
-        ),
-        migrations.AddField(
-            model_name='blogpost',
-            name='description_en',
-            field=models.TextField(null=True, verbose_name='Description', blank=True),
-        ),
-        migrations.AddField(
-            model_name='blogpost',
-            name='description_fr',
-            field=models.TextField(null=True, verbose_name='Description', blank=True),
-        ),
-        migrations.AddField(
-            model_name='blogpost',
-            name='title_en',
-            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
-        ),
-        migrations.AddField(
-            model_name='blogpost',
-            name='title_fr',
-            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
-        ),
-    ]
diff --git a/app/manifeste/migrations/blog/__init__.py b/app/manifeste/migrations/blog/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/app/manifeste/migrations/conf/0001_initial.py b/app/manifeste/migrations/conf/0001_initial.py
deleted file mode 100644 (file)
index ce02a03..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('sites', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Setting',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('name', models.CharField(max_length=50)),
-                ('value', models.CharField(max_length=2000)),
-                ('site', models.ForeignKey(editable=False, to='sites.Site')),
-            ],
-            options={
-                'verbose_name': 'Setting',
-                'verbose_name_plural': 'Settings',
-            },
-            bases=(models.Model,),
-        ),
-    ]
diff --git a/app/manifeste/migrations/conf/0002_auto_20151223_1313.py b/app/manifeste/migrations/conf/0002_auto_20151223_1313.py
deleted file mode 100644 (file)
index fb2bf3c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('conf', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='setting',
-            name='value_en',
-            field=models.CharField(max_length=2000, null=True),
-        ),
-        migrations.AddField(
-            model_name='setting',
-            name='value_fr',
-            field=models.CharField(max_length=2000, null=True),
-        ),
-    ]
diff --git a/app/manifeste/migrations/conf/__init__.py b/app/manifeste/migrations/conf/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/app/manifeste/migrations/forms/0001_initial.py b/app/manifeste/migrations/forms/0001_initial.py
deleted file mode 100644 (file)
index fa1e791..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('pages', '__first__'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Field',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('_order', models.IntegerField(null=True, verbose_name='Order')),
-                ('label', models.CharField(max_length=200, verbose_name='Label')),
-                ('field_type', models.IntegerField(verbose_name='Type', choices=[(1, 'Single line text'), (2, 'Multi line text'), (3, 'Email'), (13, 'Number'), (14, 'URL'), (4, 'Check box'), (5, 'Check boxes'), (6, 'Drop down'), (7, 'Multi select'), (8, 'Radio buttons'), (9, 'File upload'), (10, 'Date'), (11, 'Date/time'), (15, 'Date of birth'), (12, 'Hidden')])),
-                ('required', models.BooleanField(default=True, verbose_name='Required')),
-                ('visible', models.BooleanField(default=True, verbose_name='Visible')),
-                ('choices', models.CharField(help_text='Comma separated options where applicable. If an option itself contains commas, surround the option with `backticks`.', max_length=1000, verbose_name='Choices', blank=True)),
-                ('default', models.CharField(max_length=2000, verbose_name='Default value', blank=True)),
-                ('placeholder_text', models.CharField(verbose_name='Placeholder Text', max_length=100, editable=False, blank=True)),
-                ('help_text', models.CharField(max_length=100, verbose_name='Help text', blank=True)),
-            ],
-            options={
-                'ordering': ('_order',),
-                'verbose_name': 'Field',
-                'verbose_name_plural': 'Fields',
-            },
-            bases=(models.Model,),
-        ),
-        migrations.CreateModel(
-            name='FieldEntry',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('field_id', models.IntegerField()),
-                ('value', models.CharField(max_length=2000, null=True)),
-            ],
-            options={
-                'verbose_name': 'Form field entry',
-                'verbose_name_plural': 'Form field entries',
-            },
-            bases=(models.Model,),
-        ),
-        migrations.CreateModel(
-            name='Form',
-            fields=[
-                ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='pages.Page')),
-                ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')),
-                ('button_text', models.CharField(default='Submit', max_length=50, verbose_name='Button text')),
-                ('response', mezzanine.core.fields.RichTextField(verbose_name='Response')),
-                ('send_email', models.BooleanField(default=True, help_text='To send an email to the email address supplied in the form upon submission, check this box.', verbose_name='Send email to user')),
-                ('email_from', models.EmailField(help_text='The address the email will be sent from', max_length=75, verbose_name='From address', blank=True)),
-                ('email_copies', models.CharField(help_text='Provide a comma separated list of email addresses to be notified upon form submission. Leave blank to disable notifications.', max_length=200, verbose_name='Send email to others', blank=True)),
-                ('email_subject', models.CharField(max_length=200, verbose_name='Subject', blank=True)),
-                ('email_message', models.TextField(help_text='Emails sent based on the above options will contain each of the form fields entered. You can also enter a message here that will be included in the email.', verbose_name='Message', blank=True)),
-            ],
-            options={
-                'ordering': ('_order',),
-                'verbose_name': 'Form',
-                'verbose_name_plural': 'Forms',
-            },
-            bases=('pages.page', models.Model),
-        ),
-        migrations.CreateModel(
-            name='FormEntry',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('entry_time', models.DateTimeField(verbose_name='Date/time')),
-                ('form', models.ForeignKey(related_name='entries', to='forms.Form')),
-            ],
-            options={
-                'verbose_name': 'Form entry',
-                'verbose_name_plural': 'Form entries',
-            },
-            bases=(models.Model,),
-        ),
-        migrations.AddField(
-            model_name='fieldentry',
-            name='entry',
-            field=models.ForeignKey(related_name='fields', to='forms.FormEntry'),
-            preserve_default=True,
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='form',
-            field=models.ForeignKey(related_name='fields', to='forms.Form'),
-            preserve_default=True,
-        ),
-    ]
diff --git a/app/manifeste/migrations/forms/0002_auto_20141227_0224.py b/app/manifeste/migrations/forms/0002_auto_20141227_0224.py
deleted file mode 100644 (file)
index 8e8905e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('forms', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='field',
-            name='_order',
-            field=mezzanine.core.fields.OrderField(null=True, verbose_name='Order'),
-            preserve_default=True,
-        ),
-    ]
diff --git a/app/manifeste/migrations/forms/0003_emailfield.py b/app/manifeste/migrations/forms/0003_emailfield.py
deleted file mode 100644 (file)
index 9f826c6..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import mezzanine.pages.managers
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('forms', '0002_auto_20141227_0224'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='form',
-            name='email_from',
-            field=models.EmailField(help_text='The address the email will be sent from', max_length=254, verbose_name='From address', blank=True),
-        ),
-    ]
diff --git a/app/manifeste/migrations/forms/0004_auto_20150517_0510.py b/app/manifeste/migrations/forms/0004_auto_20150517_0510.py
deleted file mode 100644 (file)
index b7cb552..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('forms', '0003_emailfield'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='form',
-            name='button_text',
-            field=models.CharField(max_length=50, verbose_name='Button text', blank=True),
-        ),
-    ]
diff --git a/app/manifeste/migrations/forms/0005_auto_20151223_1313.py b/app/manifeste/migrations/forms/0005_auto_20151223_1313.py
deleted file mode 100644 (file)
index 852552a..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('forms', '0004_auto_20150517_0510'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='field',
-            name='choices_en',
-            field=models.CharField(help_text='Comma separated options where applicable. If an option itself contains commas, surround the option with `backticks`.', max_length=1000, null=True, verbose_name='Choices', blank=True),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='choices_fr',
-            field=models.CharField(help_text='Comma separated options where applicable. If an option itself contains commas, surround the option with `backticks`.', max_length=1000, null=True, verbose_name='Choices', blank=True),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='default_en',
-            field=models.CharField(max_length=2000, null=True, verbose_name='Default value', blank=True),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='default_fr',
-            field=models.CharField(max_length=2000, null=True, verbose_name='Default value', blank=True),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='help_text_en',
-            field=models.CharField(max_length=100, null=True, verbose_name='Help text', blank=True),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='help_text_fr',
-            field=models.CharField(max_length=100, null=True, verbose_name='Help text', blank=True),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='label_en',
-            field=models.CharField(max_length=200, null=True, verbose_name='Label'),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='label_fr',
-            field=models.CharField(max_length=200, null=True, verbose_name='Label'),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='placeholder_text_en',
-            field=models.CharField(verbose_name='Placeholder Text', max_length=100, null=True, editable=False, blank=True),
-        ),
-        migrations.AddField(
-            model_name='field',
-            name='placeholder_text_fr',
-            field=models.CharField(verbose_name='Placeholder Text', max_length=100, null=True, editable=False, blank=True),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='button_text_en',
-            field=models.CharField(max_length=50, null=True, verbose_name='Button text', blank=True),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='button_text_fr',
-            field=models.CharField(max_length=50, null=True, verbose_name='Button text', blank=True),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='content_en',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='content_fr',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='email_message_en',
-            field=models.TextField(help_text='Emails sent based on the above options will contain each of the form fields entered. You can also enter a message here that will be included in the email.', null=True, verbose_name='Message', blank=True),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='email_message_fr',
-            field=models.TextField(help_text='Emails sent based on the above options will contain each of the form fields entered. You can also enter a message here that will be included in the email.', null=True, verbose_name='Message', blank=True),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='email_subject_en',
-            field=models.CharField(max_length=200, null=True, verbose_name='Subject', blank=True),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='email_subject_fr',
-            field=models.CharField(max_length=200, null=True, verbose_name='Subject', blank=True),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='response_en',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Response'),
-        ),
-        migrations.AddField(
-            model_name='form',
-            name='response_fr',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Response'),
-        ),
-    ]
diff --git a/app/manifeste/migrations/forms/__init__.py b/app/manifeste/migrations/forms/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/app/manifeste/migrations/galleries/0001_initial.py b/app/manifeste/migrations/galleries/0001_initial.py
deleted file mode 100644 (file)
index 11f1937..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('pages', '__first__'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Gallery',
-            fields=[
-                ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='pages.Page')),
-                ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')),
-                ('zip_import', models.FileField(help_text="Upload a zip file containing images, and they'll be imported into this gallery.", upload_to='galleries', verbose_name='Zip import', blank=True)),
-            ],
-            options={
-                'ordering': ('_order',),
-                'verbose_name': 'Gallery',
-                'verbose_name_plural': 'Galleries',
-            },
-            bases=('pages.page', models.Model),
-        ),
-        migrations.CreateModel(
-            name='GalleryImage',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('_order', models.IntegerField(null=True, verbose_name='Order')),
-                ('file', mezzanine.core.fields.FileField(max_length=200, verbose_name='File')),
-                ('description', models.CharField(max_length=1000, verbose_name='Description', blank=True)),
-                ('gallery', models.ForeignKey(related_name='images', to='galleries.Gallery')),
-            ],
-            options={
-                'ordering': ('_order',),
-                'verbose_name': 'Image',
-                'verbose_name_plural': 'Images',
-            },
-            bases=(models.Model,),
-        ),
-    ]
diff --git a/app/manifeste/migrations/galleries/0002_auto_20141227_0224.py b/app/manifeste/migrations/galleries/0002_auto_20141227_0224.py
deleted file mode 100644 (file)
index 89bf633..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('galleries', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='galleryimage',
-            name='_order',
-            field=mezzanine.core.fields.OrderField(null=True, verbose_name='Order'),
-            preserve_default=True,
-        ),
-    ]
diff --git a/app/manifeste/migrations/galleries/0003_auto_20151223_1313.py b/app/manifeste/migrations/galleries/0003_auto_20151223_1313.py
deleted file mode 100644 (file)
index 2a61852..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('galleries', '0002_auto_20141227_0224'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='gallery',
-            name='content_en',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
-        ),
-        migrations.AddField(
-            model_name='gallery',
-            name='content_fr',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
-        ),
-        migrations.AddField(
-            model_name='galleryimage',
-            name='description_en',
-            field=models.CharField(max_length=1000, null=True, verbose_name='Description', blank=True),
-        ),
-        migrations.AddField(
-            model_name='galleryimage',
-            name='description_fr',
-            field=models.CharField(max_length=1000, null=True, verbose_name='Description', blank=True),
-        ),
-    ]
diff --git a/app/manifeste/migrations/galleries/__init__.py b/app/manifeste/migrations/galleries/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/app/manifeste/migrations/pages/0001_initial.py b/app/manifeste/migrations/pages/0001_initial.py
deleted file mode 100644 (file)
index 4429c29..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import mezzanine.core.fields
-import mezzanine.pages.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('sites', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Page',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
-                ('keywords_string', models.CharField(max_length=500, editable=False, blank=True)),
-                ('title', models.CharField(max_length=500, verbose_name='Title')),
-                ('slug', models.CharField(help_text='Leave blank to have the URL auto-generated from the title.', max_length=2000, null=True, verbose_name='URL', blank=True)),
-                ('_meta_title', models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True)),
-                ('description', models.TextField(verbose_name='Description', blank=True)),
-                ('gen_description', models.BooleanField(default=True, help_text='If checked, the description will be automatically generated from content. Uncheck if you want to manually set a custom description.', verbose_name='Generate description')),
-                ('created', models.DateTimeField(null=True, editable=False)),
-                ('updated', models.DateTimeField(null=True, editable=False)),
-                ('status', models.IntegerField(default=2, help_text='With Draft chosen, will only be shown for admin users on the site.', verbose_name='Status', choices=[(1, 'Draft'), (2, 'Published')])),
-                ('publish_date', models.DateTimeField(help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from', blank=True)),
-                ('expiry_date', models.DateTimeField(help_text="With Published chosen, won't be shown after this time", null=True, verbose_name='Expires on', blank=True)),
-                ('short_url', models.URLField(null=True, blank=True)),
-                ('in_sitemap', models.BooleanField(default=True, verbose_name='Show in sitemap')),
-                ('_order', models.IntegerField(null=True, verbose_name='Order')),
-                ('in_menus', mezzanine.pages.fields.MenusField(default=(1, 2, 3), choices=[(1, 'Top navigation bar'), (2, 'Left-hand tree'), (3, 'Footer')], max_length=100, blank=True, null=True, verbose_name='Show in menus')),
-                ('titles', models.CharField(max_length=1000, null=True, editable=False)),
-                ('content_model', models.CharField(max_length=50, null=True, editable=False)),
-                ('login_required', models.BooleanField(default=False, help_text='If checked, only logged in users can view this page', verbose_name='Login required')),
-            ],
-            options={
-                'ordering': ('titles',),
-                'verbose_name': 'Page',
-                'verbose_name_plural': 'Pages',
-            },
-            bases=(models.Model,),
-        ),
-        migrations.CreateModel(
-            name='Link',
-            fields=[
-                ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='pages.Page')),
-            ],
-            options={
-                'ordering': ('_order',),
-                'verbose_name': 'Link',
-                'verbose_name_plural': 'Links',
-            },
-            bases=('pages.page',),
-        ),
-        migrations.CreateModel(
-            name='RichTextPage',
-            fields=[
-                ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='pages.Page')),
-                ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')),
-            ],
-            options={
-                'ordering': ('_order',),
-                'verbose_name': 'Rich text page',
-                'verbose_name_plural': 'Rich text pages',
-            },
-            bases=('pages.page', models.Model),
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='parent',
-            field=models.ForeignKey(related_name='children', blank=True, to='pages.Page', null=True),
-            preserve_default=True,
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='site',
-            field=models.ForeignKey(editable=False, to='sites.Site'),
-            preserve_default=True,
-        ),
-    ]
diff --git a/app/manifeste/migrations/pages/0002_auto_20141227_0224.py b/app/manifeste/migrations/pages/0002_auto_20141227_0224.py
deleted file mode 100644 (file)
index 85bddb2..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import mezzanine.pages.fields
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('pages', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='page',
-            name='_order',
-            field=mezzanine.core.fields.OrderField(null=True, verbose_name='Order'),
-            preserve_default=True,
-        ),
-        migrations.AlterField(
-            model_name='page',
-            name='in_menus',
-            field=mezzanine.pages.fields.MenusField(max_length=100, null=True, verbose_name='Show in menus', blank=True),
-            preserve_default=True,
-        ),
-    ]
diff --git a/app/manifeste/migrations/pages/0003_auto_20150527_1555.py b/app/manifeste/migrations/pages/0003_auto_20150527_1555.py
deleted file mode 100644 (file)
index b0682fe..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('pages', '0002_auto_20141227_0224'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='page',
-            name='publish_date',
-            field=models.DateTimeField(help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from', db_index=True, blank=True),
-        ),
-    ]
diff --git a/app/manifeste/migrations/pages/0004_auto_20151223_1313.py b/app/manifeste/migrations/pages/0004_auto_20151223_1313.py
deleted file mode 100644 (file)
index 6f0ca5e..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import mezzanine.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('pages', '0003_auto_20150527_1555'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='page',
-            name='_meta_title_en',
-            field=models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True),
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='_meta_title_fr',
-            field=models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True),
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='description_en',
-            field=models.TextField(null=True, verbose_name='Description', blank=True),
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='description_fr',
-            field=models.TextField(null=True, verbose_name='Description', blank=True),
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='title_en',
-            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='title_fr',
-            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='titles_en',
-            field=models.CharField(max_length=1000, null=True, editable=False),
-        ),
-        migrations.AddField(
-            model_name='page',
-            name='titles_fr',
-            field=models.CharField(max_length=1000, null=True, editable=False),
-        ),
-        migrations.AddField(
-            model_name='richtextpage',
-            name='content_en',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
-        ),
-        migrations.AddField(
-            model_name='richtextpage',
-            name='content_fr',
-            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
-        ),
-    ]
diff --git a/app/manifeste/migrations/pages/__init__.py b/app/manifeste/migrations/pages/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/app/manifeste/models.py b/app/manifeste/models.py
new file mode 100644 (file)
index 0000000..71a8362
--- /dev/null
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/app/manifeste/settings.py b/app/manifeste/settings.py
deleted file mode 100644 (file)
index b7e9564..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-
-from __future__ import absolute_import, unicode_literals
-import os
-from django.utils.translation import ugettext_lazy as _
-
-######################
-# MEZZANINE SETTINGS #
-######################
-
-# The following settings are already defined with default values in
-# the ``defaults.py`` module within each of Mezzanine's apps, but are
-# common enough to be put here, commented out, for conveniently
-# overriding. Please consult the settings documentation for a full list
-# of settings Mezzanine implements:
-# http://mezzanine.jupo.org/docs/configuration.html#default-settings
-
-# Controls the ordering and grouping of the admin menu.
-#
-# ADMIN_MENU_ORDER = (
-#     ("Content", ("pages.Page", "blog.BlogPost",
-#        "generic.ThreadedComment", (_("Media Library"), "fb_browse"),)),
-#     (_("Shop"), ("shop.Product", "shop.ProductOption", "shop.DiscountCode",
-#        "shop.Sale", "shop.Order")),
-#     ("Site", ("sites.Site", "redirects.Redirect", "conf.Setting")),
-#     ("Users", ("auth.User", "auth.Group",)),
-# )
-
-# A three item sequence, each containing a sequence of template tags
-# used to render the admin dashboard.
-#
-# DASHBOARD_TAGS = (
-#     ("blog_tags.quick_blog", "mezzanine_tags.app_list"),
-#     ("comment_tags.recent_comments",),
-#     ("mezzanine_tags.recent_actions",),
-# )
-
-# A sequence of templates used by the ``page_menu`` template tag. Each
-# item in the sequence is a three item sequence, containing a unique ID
-# for the template, a label for the template, and the template path.
-# These templates are then available for selection when editing which
-# menus a page should appear in. Note that if a menu template is used
-# that doesn't appear in this setting, all pages will appear in it.
-
-PAGE_MENU_TEMPLATES = (
-    (1, _("Top navigation bar"), "pages/menus/dropdown.html"),
-    # (2, _("Left-hand tree"), "pages/menus/tree.html"),
-    # (3, _("Footer"), "pages/menus/footer.html"),
-)
-
-# A sequence of fields that will be injected into Mezzanine's (or any
-# library's) models. Each item in the sequence is a four item sequence.
-# The first two items are the dotted path to the model and its field
-# name to be added, and the dotted path to the field class to use for
-# the field. The third and fourth items are a sequence of positional
-# args and a dictionary of keyword args, to use when creating the
-# field instance. When specifying the field class, the path
-# ``django.models.db.`` can be omitted for regular Django model fields.
-#
-
-# EXTRA_MODEL_FIELDS = (
-#  )
-
-# Setting to turn on featured images for blog posts. Defaults to False.
-#
-BLOG_USE_FEATURED_IMAGE = True
-
-# If True, the django-modeltranslation will be added to the
-# INSTALLED_APPS setting.
-USE_MODELTRANSLATION = True
-
-# SEARCH_MODEL_CHOICES = ('shop.Product',)
-
-COMMENTS_ACCOUNT_REQUIRED = True
-
-########################
-# MAIN DJANGO SETTINGS #
-########################
-
-# Hosts/domain names that are valid for this site; required if DEBUG is False
-# See https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
-ALLOWED_HOSTS = ['*']
-
-# Local time zone for this installation. Choices can be found here:
-# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
-# although not all choices may be available on all operating systems.
-# On Unix systems, a value of None will cause Django to use the same
-# timezone as the operating system.
-# If running in a Windows environment this must be set to the same as your
-# system time zone.
-TIME_ZONE = 'Europe/Paris'
-
-# If you set this to True, Django will use timezone-aware datetimes.
-USE_TZ = True
-
-# Language code for this installation. All choices can be found here:
-# http://www.i18nguy.com/unicode/language-identifiers.html
-LANGUAGE_CODE = "en"
-
-# Supported languages
-LANGUAGES = (
-    ('fr', _('French')),
-    ('en', _('English')),
-)
-
-# A boolean that turns on/off debug mode. When set to ``True``, stack traces
-# are displayed for error pages. Should always be set to ``False`` in
-# production. Best set to ``True`` in local_settings.py
-DEBUG = False
-
-# Whether a user's session cookie expires when the Web browser is closed.
-SESSION_EXPIRE_AT_BROWSER_CLOSE = True
-
-SITE_ID = 1
-
-# If you set this to False, Django will make some optimizations so as not
-# to load the internationalization machinery.
-USE_I18N = True
-
-AUTHENTICATION_BACKENDS = ("mezzanine.core.auth_backends.MezzanineBackend",)
-
-# The numeric mode to set newly-uploaded files to. The value should be
-# a mode you'd pass directly to os.chmod.
-FILE_UPLOAD_PERMISSIONS = 0o644
-
-# MAX_UPLOAD_SIZE = 429916160
-
-#############
-# DATABASES #
-#############
-
-DATABASES = {
-    "default": {
-        # Ends with "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
-        "ENGINE": "django.db.backends.sqlite3",
-        # DB name or path to database file if using sqlite3.
-        "NAME": "dev.db",
-        # Not used with sqlite3.
-        "USER": "",
-        # Not used with sqlite3.
-        "PASSWORD": "",
-        # Set to empty string for localhost. Not used with sqlite3.
-        "HOST": "",
-        # Set to empty string for default. Not used with sqlite3.
-        "PORT": "",
-    }
-}
-
-#########
-# PATHS #
-#########
-
-# Full filesystem path to the project.
-PROJECT_APP_PATH = os.path.dirname(os.path.abspath(__file__))
-PROJECT_APP = os.path.basename(PROJECT_APP_PATH)
-PROJECT_ROOT = BASE_DIR = os.path.dirname(PROJECT_APP_PATH)
-
-# Every cache key will get prefixed with this value - here we set it to
-# the name of the directory the project is in to try and use something
-# project specific.
-CACHE_MIDDLEWARE_KEY_PREFIX = PROJECT_APP
-
-# URL prefix for static files.
-# Example: "http://media.lawrence.com/static/"
-STATIC_URL = "/static/"
-
-# Absolute path to the directory static files should be collected to.
-# Don't put anything in this directory yourself; store your static files
-# in apps' "static/" subdirectories and in STATICFILES_DIRS.
-# Example: "/home/media/media.lawrence.com/static/"
-# STATIC_ROOT = os.path.join(PROJECT_ROOT, STATIC_URL.strip("/"))
-STATIC_ROOT = '/srv/static/'
-
-# URL that handles the media served from MEDIA_ROOT. Make sure to use a
-# trailing slash.
-# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
-MEDIA_URL = "/media/"
-
-# Absolute filesystem path to the directory that will hold user-uploaded files.
-# Example: "/home/media/media.lawrence.com/media/"
-# MEDIA_ROOT = os.path.join(PROJECT_ROOT, *MEDIA_URL.strip("/").split("/"))
-MEDIA_ROOT = '/srv/media/'
-
-# Package/module name to import the root urlpatterns from for the project.
-ROOT_URLCONF = "%s.urls" % PROJECT_APP
-
-# Put strings here, like "/home/html/django_templates"
-# or "C:/www/django/templates".
-# Always use forward slashes, even on Windows.
-# Don't forget to use absolute paths, not relative paths.
-TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, "templates"),)
-
-
-################
-# APPLICATIONS #
-################
-
-INSTALLED_APPS = (
-    "django.contrib.admin",
-    "django.contrib.auth",
-    "django.contrib.contenttypes",
-    "django.contrib.redirects",
-    "django.contrib.sessions",
-    "django.contrib.sites",
-    "django.contrib.sitemaps",
-    "django.contrib.staticfiles",
-    "mezzanine.boot",
-    "mezzanine.conf",
-    "mezzanine.core",
-    "mezzanine.generic",
-    "mezzanine.pages",
-    "mezzanine.blog",
-    "mezzanine.forms",
-    "mezzanine.galleries",
-    "mezzanine.twitter",
-    "mezzanine.accounts",
-    # "mezzanine.mobile",
-)
-
-# Add Migration Module path see : https://github.com/stephenmcd/mezzanine/blob/master/docs/model-customization.rst#field-injection-caveats
-MIGRATION_MODULES = {
-    "blog": "manifeste.migrations.blog",
-    "forms": "manifeste.migrations.forms",
-    "galleries": "manifeste.migrations.galleries",
-    "pages": "manifeste.migrations.pages",
-    "conf": "manifeste.migrations.conf",
-}
-
-# List of processors used by RequestContext to populate the context.
-# Each one should be a callable that takes the request object as its
-# only parameter and returns a dictionary to add to the context.
-TEMPLATE_CONTEXT_PROCESSORS = (
-    "django.contrib.auth.context_processors.auth",
-    "django.contrib.messages.context_processors.messages",
-    "django.core.context_processors.debug",
-    "django.core.context_processors.i18n",
-    "django.core.context_processors.static",
-    "django.core.context_processors.media",
-    "django.core.context_processors.request",
-    "django.core.context_processors.tz",
-    "mezzanine.conf.context_processors.settings",
-    "mezzanine.pages.context_processors.page",
-)
-
-# List of middleware classes to use. Order is important; in the request phase,
-# these middleware classes will be applied in the order given, and in the
-# response phase the middleware will be applied in reverse order.
-MIDDLEWARE_CLASSES = (
-    "mezzanine.core.middleware.UpdateCacheMiddleware",
-    'django.contrib.sessions.middleware.SessionMiddleware',
-    # Uncomment if using internationalisation or localisation
-    'django.middleware.locale.LocaleMiddleware',
-    'django.middleware.common.CommonMiddleware',
-    'django.middleware.csrf.CsrfViewMiddleware',
-    'django.contrib.auth.middleware.AuthenticationMiddleware',
-    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
-    'django.contrib.messages.middleware.MessageMiddleware',
-    'django.middleware.clickjacking.XFrameOptionsMiddleware',
-
-    "mezzanine.core.request.CurrentRequestMiddleware",
-    "mezzanine.core.middleware.RedirectFallbackMiddleware",
-    "mezzanine.core.middleware.TemplateForDeviceMiddleware",
-    "mezzanine.core.middleware.TemplateForHostMiddleware",
-    "mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware",
-    "mezzanine.core.middleware.SitePermissionMiddleware",
-    # Uncomment the following if using any of the SSL settings:
-    # "mezzanine.core.middleware.SSLRedirectMiddleware",
-    "mezzanine.pages.middleware.PageMiddleware",
-    "mezzanine.core.middleware.FetchFromCacheMiddleware",
-)
-
-# Store these package names here as they may change in the future since
-# at the moment we are using custom forks of them.
-PACKAGE_NAME_FILEBROWSER = "filebrowser_safe"
-PACKAGE_NAME_GRAPPELLI = "grappelli_safe"
-
-#########################
-# OPTIONAL APPLICATIONS #
-#########################
-
-# These will be added to ``INSTALLED_APPS``, only if available.
-OPTIONAL_APPS = (
-    "debug_toolbar",
-    "django_extensions",
-    "compressor",
-    PACKAGE_NAME_FILEBROWSER,
-    PACKAGE_NAME_GRAPPELLI,
-)
-
-##################
-# LOCAL SETTINGS #
-##################
-
-# Allow any settings to be defined in local_settings.py which should be
-# ignored in your version control system allowing for settings to be
-# defined per machine.
-try:
-    from .local_settings import *
-except ImportError as e:
-    if "local_settings" not in str(e):
-        raise e
-
-
-####################
-# DYNAMIC SETTINGS #
-####################
-
-# set_dynamic_settings() will rewrite globals based on what has been
-# defined so far, in order to provide some better defaults where
-# applicable. We also allow this settings module to be imported
-# without Mezzanine installed, as the case may be when using the
-# fabfile, where setting the dynamic settings below isn't strictly
-# required.
-try:
-    from mezzanine.utils.conf import set_dynamic_settings
-except ImportError:
-    pass
-else:
-    set_dynamic_settings(globals())
diff --git a/app/manifeste/tests.py b/app/manifeste/tests.py
new file mode 100644 (file)
index 0000000..7ce503c
--- /dev/null
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/app/manifeste/urls.py b/app/manifeste/urls.py
deleted file mode 100644 (file)
index c1ae1c0..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-from __future__ import unicode_literals
-
-from django.conf.urls import patterns, include, url
-from django.conf.urls.i18n import i18n_patterns
-from django.contrib import admin
-
-from mezzanine.core.views import direct_to_template
-from mezzanine.conf import settings
-
-
-admin.autodiscover()
-
-# Add the urlpatterns for any custom Django applications here.
-# You can also change the ``home`` view to add your own functionality
-# to the project's homepage.
-
-urlpatterns = i18n_patterns("",
-    # Change the admin prefix here to use an alternate URL for the
-    # admin interface, which would be marginally more secure.
-    ("^admin/", include(admin.site.urls)),
-)
-
-if settings.USE_MODELTRANSLATION:
-    urlpatterns += patterns('',
-        url('^i18n/$', 'django.views.i18n.set_language', name='set_language'),
-    )
-
-urlpatterns += patterns('',
-    # (r'^newsletter/', include('newsletter.urls')),
-
-    # We don't want to presume how your homepage works, so here are a
-    # few patterns you can use to set it up.
-
-    # HOMEPAGE AS STATIC TEMPLATE
-    # ---------------------------
-    # This pattern simply loads the index.html template. It isn't
-    # commented out like the others, so it's the default. You only need
-    # one homepage pattern, so if you use a different one, comment this
-    # one out.
-
-    url("^$", direct_to_template, {"template": "index.html"}, name="home"),
-
-    # HOMEPAGE AS AN EDITABLE PAGE IN THE PAGE TREE
-    # ---------------------------------------------
-    # This pattern gives us a normal ``Page`` object, so that your
-    # homepage can be managed via the page tree in the admin. If you
-    # use this pattern, you'll need to create a page in the page tree,
-    # and specify its URL (in the Meta Data section) as "/", which
-    # is the value used below in the ``{"slug": "/"}`` part. Make
-    # sure to uncheck all templates for the "show in menus" field
-    # when you create the page, since the link to the homepage is
-    # always hard-coded into all the page menus that display navigation
-    # on the site. Also note that the normal rule of adding a custom
-    # template per page with the template name using the page's slug
-    # doesn't apply here, since we can't have a template called
-    # "/.html" - so for this case, the template "pages/index.html" can
-    # be used.
-
-    # url("^$", "mezzanine.pages.views.page", {"slug": "/"}, name="home"),
-
-    # HOMEPAGE FOR A BLOG-ONLY SITE
-    # -----------------------------
-    # This pattern points the homepage to the blog post listing page,
-    # and is useful for sites that are primarily blogs. If you use this
-    # pattern, you'll also need to set BLOG_SLUG = "" in your
-    # ``settings.py`` module, and delete the blog page object from the
-    # page tree in the admin if it was installed.
-
-    # url("^$", "mezzanine.blog.views.blog_post_list", name="home"),
-
-    # MEZZANINE'S URLS
-    # ----------------
-    # ADD YOUR OWN URLPATTERNS *ABOVE* THE LINE BELOW.
-    # ``mezzanine.urls`` INCLUDES A *CATCH ALL* PATTERN
-    # FOR PAGES, SO URLPATTERNS ADDED BELOW ``mezzanine.urls``
-    # WILL NEVER BE MATCHED!
-
-    # If you'd like more granular control over the patterns in
-    # ``mezzanine.urls``, go right ahead and take the parts you want
-    # from it, and use them directly below instead of using
-    # ``mezzanine.urls``.
-    ("^", include("mezzanine.urls")),
-
-    # MOUNTING MEZZANINE UNDER A PREFIX
-    # ---------------------------------
-    # You can also mount all of Mezzanine's urlpatterns under a
-    # URL prefix if desired. When doing this, you need to define the
-    # ``SITE_PREFIX`` setting, which will contain the prefix. Eg:
-    # SITE_PREFIX = "my/site/prefix"
-    # For convenience, and to avoid repeating the prefix, use the
-    # commented out pattern below (commenting out the one above of course)
-    # which will make use of the ``SITE_PREFIX`` setting. Make sure to
-    # add the import ``from django.conf import settings`` to the top
-    # of this file as well.
-    # Note that for any of the various homepage patterns above, you'll
-    # need to use the ``SITE_PREFIX`` setting as well.
-
-    # ("^%s/" % settings.SITE_PREFIX, include("mezzanine.urls"))
-)
-
-# Adds ``STATIC_URL`` to the context of error pages, so that error
-# pages can use JS, CSS and images.
-handler404 = "mezzanine.core.views.page_not_found"
-handler500 = "mezzanine.core.views.server_error"
diff --git a/app/manifeste/views.py b/app/manifeste/views.py
new file mode 100644 (file)
index 0000000..91ea44a
--- /dev/null
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/app/sandbox/__init__.py b/app/sandbox/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/sandbox/local_settings.py b/app/sandbox/local_settings.py
new file mode 100644 (file)
index 0000000..8c11313
--- /dev/null
@@ -0,0 +1,65 @@
+import os
+
+DEBUG = True
+
+# Make these unique, and don't share it with anybody.
+SECRET_KEY = "+3b01&_6_m@@yb4f06$s0zno8vkybh81nbuj_q(xzk+xeih1+s"
+NEVERCACHE_KEY = "l11tr%#!uc@+%$51(&+%=&z6h9yrw42(jpcj$3_&6evtu6hl%z"
+
+DATABASE_ROUTERS = ['eve.routers.EveRouter', ]
+
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.mysql',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
+        'USER': os.environ.get('DB_ENV_MYSQL_USER'),      # Not used with sqlite3.
+        'PASSWORD': os.environ.get('DB_ENV_MYSQL_PASSWORD'),  # Not used with sqlite3.
+        'NAME': os.environ.get('DB_ENV_MYSQL_DATABASE'),
+        'HOST': 'db',      # Set to empty string for localhost. Not used with sqlite3.
+        'PORT': '3306',      # Set to empty string for default. Not used with sqlite3.
+    },
+    'eve': {
+        'ENGINE': 'django.db.backends.postgresql_psycopg2',
+        'NAME': 'eve',
+        'USER': 'postgres',
+        'PASSWORD': 'mysecretpassword',
+        'HOST': 'pgdb',
+        'PORT': '5432',
+    },
+
+}
+
+# EXTENSIONS AND FORMATS
+# Allowed Extensions for File Upload. Lower case is important.
+FILEBROWSER_EXTENSIONS = {
+    'Folder': [''],
+    'Image': ['.jpg', '.jpeg', '.gif', '.png', '.tif', '.tiff'],
+    'Document': ['.pdf', '.doc', '.rtf', '.txt', '.xls', '.csv', '.docx'],
+    'Video': ['.mov', '.wmv', '.mpeg', '.mpg', '.avi', '.rm'],
+    'Audio': ['.mp3', '.mp4', '.wav', '.aiff', '.midi', '.m4p']
+    }
+
+# Define different formats for allowed selections.
+# This has to be a subset of EXTENSIONS.
+# e.g., add ?type=image to the browse-URL ...
+FILEBROWSER_SELECT_FORMATS = {
+    'File': ['Folder', 'Document'],
+    'Image': ['Image'],
+    'Media': ['Video', 'Audio'],
+    'Audio': ['Audio'],
+    'Document': ['Document'],
+    # for TinyMCE we can also define lower-case items
+    'image': ['Image'],
+    'file': ['Folder', 'Image', 'Document'],
+    'media': ['Video', 'Audio'],
+    'audio': ['Audio'],
+}
+
+EMAIL_HOST = 'smtp.ircam.fr'
+EMAIL_PORT = '25'
+DEFAULT_FROM_EMAIL = 'manifeste2016@ircam.fr'
+EMAIL_SUBJECT_PREFIX = "IRCAM Manifeste 2016"
+
+SITE_TITLE = 'Manifeste 2016'
+SITE_TAGLINE = 'Festival 2 juin | 2 juillet 2016'
+
+SILENCED_SYSTEM_CHECKS = ['fields.W342',]
diff --git a/app/sandbox/migrations/__init__.py b/app/sandbox/migrations/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/sandbox/migrations/blog/0001_initial.py b/app/sandbox/migrations/blog/0001_initial.py
new file mode 100644 (file)
index 0000000..1124f8b
--- /dev/null
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import mezzanine.core.fields
+import mezzanine.utils.models
+from django.conf import settings
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('sites', '0001_initial'),
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='BlogCategory',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('title', models.CharField(max_length=500, verbose_name='Title')),
+                ('slug', models.CharField(help_text='Leave blank to have the URL auto-generated from the title.', max_length=2000, null=True, verbose_name='URL', blank=True)),
+                ('site', models.ForeignKey(editable=False, to='sites.Site')),
+            ],
+            options={
+                'ordering': ('title',),
+                'verbose_name': 'Blog Category',
+                'verbose_name_plural': 'Blog Categories',
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='BlogPost',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('comments_count', models.IntegerField(default=0, editable=False)),
+                ('keywords_string', models.CharField(max_length=500, editable=False, blank=True)),
+                ('rating_count', models.IntegerField(default=0, editable=False)),
+                ('rating_sum', models.IntegerField(default=0, editable=False)),
+                ('rating_average', models.FloatField(default=0, editable=False)),
+                ('title', models.CharField(max_length=500, verbose_name='Title')),
+                ('slug', models.CharField(help_text='Leave blank to have the URL auto-generated from the title.', max_length=2000, null=True, verbose_name='URL', blank=True)),
+                ('_meta_title', models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True)),
+                ('description', models.TextField(verbose_name='Description', blank=True)),
+                ('gen_description', models.BooleanField(default=True, help_text='If checked, the description will be automatically generated from content. Uncheck if you want to manually set a custom description.', verbose_name='Generate description')),
+                ('created', models.DateTimeField(null=True, editable=False)),
+                ('updated', models.DateTimeField(null=True, editable=False)),
+                ('status', models.IntegerField(default=2, help_text='With Draft chosen, will only be shown for admin users on the site.', verbose_name='Status', choices=[(1, 'Draft'), (2, 'Published')])),
+                ('publish_date', models.DateTimeField(help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from', blank=True)),
+                ('expiry_date', models.DateTimeField(help_text="With Published chosen, won't be shown after this time", null=True, verbose_name='Expires on', blank=True)),
+                ('short_url', models.URLField(null=True, blank=True)),
+                ('in_sitemap', models.BooleanField(default=True, verbose_name='Show in sitemap')),
+                ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')),
+                ('allow_comments', models.BooleanField(default=True, verbose_name='Allow comments')),
+                ('featured_image', mezzanine.core.fields.FileField(max_length=255, null=True, verbose_name='Featured Image', blank=True)),
+                ('categories', models.ManyToManyField(related_name='blogposts', verbose_name='Categories', to='blog.BlogCategory', blank=True)),
+                ('related_posts', models.ManyToManyField(related_name='related_posts_rel_+', verbose_name='Related posts', to='blog.BlogPost', blank=True)),
+                ('site', models.ForeignKey(editable=False, to='sites.Site')),
+                ('user', models.ForeignKey(related_name='blogposts', verbose_name='Author', to=settings.AUTH_USER_MODEL)),
+            ],
+            options={
+                'ordering': ('-publish_date',),
+                'verbose_name': 'Blog post',
+                'verbose_name_plural': 'Blog posts',
+            },
+            bases=(models.Model, mezzanine.utils.models.AdminThumbMixin),
+        ),
+    ]
diff --git a/app/sandbox/migrations/blog/0002_auto_20150527_1555.py b/app/sandbox/migrations/blog/0002_auto_20150527_1555.py
new file mode 100644 (file)
index 0000000..a5cb65c
--- /dev/null
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('blog', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='blogpost',
+            name='publish_date',
+            field=models.DateTimeField(help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from', db_index=True, blank=True),
+        ),
+    ]
diff --git a/app/sandbox/migrations/blog/0003_auto_20151223_1313.py b/app/sandbox/migrations/blog/0003_auto_20151223_1313.py
new file mode 100644 (file)
index 0000000..2d1da52
--- /dev/null
@@ -0,0 +1,65 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('blog', '0002_auto_20150527_1555'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='blogcategory',
+            name='title_en',
+            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
+        ),
+        migrations.AddField(
+            model_name='blogcategory',
+            name='title_fr',
+            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
+        ),
+        migrations.AddField(
+            model_name='blogpost',
+            name='_meta_title_en',
+            field=models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True),
+        ),
+        migrations.AddField(
+            model_name='blogpost',
+            name='_meta_title_fr',
+            field=models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True),
+        ),
+        migrations.AddField(
+            model_name='blogpost',
+            name='content_en',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='blogpost',
+            name='content_fr',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='blogpost',
+            name='description_en',
+            field=models.TextField(null=True, verbose_name='Description', blank=True),
+        ),
+        migrations.AddField(
+            model_name='blogpost',
+            name='description_fr',
+            field=models.TextField(null=True, verbose_name='Description', blank=True),
+        ),
+        migrations.AddField(
+            model_name='blogpost',
+            name='title_en',
+            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
+        ),
+        migrations.AddField(
+            model_name='blogpost',
+            name='title_fr',
+            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
+        ),
+    ]
diff --git a/app/sandbox/migrations/blog/__init__.py b/app/sandbox/migrations/blog/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/sandbox/migrations/conf/0001_initial.py b/app/sandbox/migrations/conf/0001_initial.py
new file mode 100644 (file)
index 0000000..ce02a03
--- /dev/null
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('sites', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Setting',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('name', models.CharField(max_length=50)),
+                ('value', models.CharField(max_length=2000)),
+                ('site', models.ForeignKey(editable=False, to='sites.Site')),
+            ],
+            options={
+                'verbose_name': 'Setting',
+                'verbose_name_plural': 'Settings',
+            },
+            bases=(models.Model,),
+        ),
+    ]
diff --git a/app/sandbox/migrations/conf/0002_auto_20151223_1313.py b/app/sandbox/migrations/conf/0002_auto_20151223_1313.py
new file mode 100644 (file)
index 0000000..fb2bf3c
--- /dev/null
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('conf', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='setting',
+            name='value_en',
+            field=models.CharField(max_length=2000, null=True),
+        ),
+        migrations.AddField(
+            model_name='setting',
+            name='value_fr',
+            field=models.CharField(max_length=2000, null=True),
+        ),
+    ]
diff --git a/app/sandbox/migrations/conf/__init__.py b/app/sandbox/migrations/conf/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/sandbox/migrations/forms/0001_initial.py b/app/sandbox/migrations/forms/0001_initial.py
new file mode 100644 (file)
index 0000000..fa1e791
--- /dev/null
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('pages', '__first__'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Field',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('_order', models.IntegerField(null=True, verbose_name='Order')),
+                ('label', models.CharField(max_length=200, verbose_name='Label')),
+                ('field_type', models.IntegerField(verbose_name='Type', choices=[(1, 'Single line text'), (2, 'Multi line text'), (3, 'Email'), (13, 'Number'), (14, 'URL'), (4, 'Check box'), (5, 'Check boxes'), (6, 'Drop down'), (7, 'Multi select'), (8, 'Radio buttons'), (9, 'File upload'), (10, 'Date'), (11, 'Date/time'), (15, 'Date of birth'), (12, 'Hidden')])),
+                ('required', models.BooleanField(default=True, verbose_name='Required')),
+                ('visible', models.BooleanField(default=True, verbose_name='Visible')),
+                ('choices', models.CharField(help_text='Comma separated options where applicable. If an option itself contains commas, surround the option with `backticks`.', max_length=1000, verbose_name='Choices', blank=True)),
+                ('default', models.CharField(max_length=2000, verbose_name='Default value', blank=True)),
+                ('placeholder_text', models.CharField(verbose_name='Placeholder Text', max_length=100, editable=False, blank=True)),
+                ('help_text', models.CharField(max_length=100, verbose_name='Help text', blank=True)),
+            ],
+            options={
+                'ordering': ('_order',),
+                'verbose_name': 'Field',
+                'verbose_name_plural': 'Fields',
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='FieldEntry',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('field_id', models.IntegerField()),
+                ('value', models.CharField(max_length=2000, null=True)),
+            ],
+            options={
+                'verbose_name': 'Form field entry',
+                'verbose_name_plural': 'Form field entries',
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='Form',
+            fields=[
+                ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='pages.Page')),
+                ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')),
+                ('button_text', models.CharField(default='Submit', max_length=50, verbose_name='Button text')),
+                ('response', mezzanine.core.fields.RichTextField(verbose_name='Response')),
+                ('send_email', models.BooleanField(default=True, help_text='To send an email to the email address supplied in the form upon submission, check this box.', verbose_name='Send email to user')),
+                ('email_from', models.EmailField(help_text='The address the email will be sent from', max_length=75, verbose_name='From address', blank=True)),
+                ('email_copies', models.CharField(help_text='Provide a comma separated list of email addresses to be notified upon form submission. Leave blank to disable notifications.', max_length=200, verbose_name='Send email to others', blank=True)),
+                ('email_subject', models.CharField(max_length=200, verbose_name='Subject', blank=True)),
+                ('email_message', models.TextField(help_text='Emails sent based on the above options will contain each of the form fields entered. You can also enter a message here that will be included in the email.', verbose_name='Message', blank=True)),
+            ],
+            options={
+                'ordering': ('_order',),
+                'verbose_name': 'Form',
+                'verbose_name_plural': 'Forms',
+            },
+            bases=('pages.page', models.Model),
+        ),
+        migrations.CreateModel(
+            name='FormEntry',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('entry_time', models.DateTimeField(verbose_name='Date/time')),
+                ('form', models.ForeignKey(related_name='entries', to='forms.Form')),
+            ],
+            options={
+                'verbose_name': 'Form entry',
+                'verbose_name_plural': 'Form entries',
+            },
+            bases=(models.Model,),
+        ),
+        migrations.AddField(
+            model_name='fieldentry',
+            name='entry',
+            field=models.ForeignKey(related_name='fields', to='forms.FormEntry'),
+            preserve_default=True,
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='form',
+            field=models.ForeignKey(related_name='fields', to='forms.Form'),
+            preserve_default=True,
+        ),
+    ]
diff --git a/app/sandbox/migrations/forms/0002_auto_20141227_0224.py b/app/sandbox/migrations/forms/0002_auto_20141227_0224.py
new file mode 100644 (file)
index 0000000..8e8905e
--- /dev/null
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('forms', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='field',
+            name='_order',
+            field=mezzanine.core.fields.OrderField(null=True, verbose_name='Order'),
+            preserve_default=True,
+        ),
+    ]
diff --git a/app/sandbox/migrations/forms/0003_emailfield.py b/app/sandbox/migrations/forms/0003_emailfield.py
new file mode 100644 (file)
index 0000000..9f826c6
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import mezzanine.pages.managers
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('forms', '0002_auto_20141227_0224'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='form',
+            name='email_from',
+            field=models.EmailField(help_text='The address the email will be sent from', max_length=254, verbose_name='From address', blank=True),
+        ),
+    ]
diff --git a/app/sandbox/migrations/forms/0004_auto_20150517_0510.py b/app/sandbox/migrations/forms/0004_auto_20150517_0510.py
new file mode 100644 (file)
index 0000000..b7cb552
--- /dev/null
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('forms', '0003_emailfield'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='form',
+            name='button_text',
+            field=models.CharField(max_length=50, verbose_name='Button text', blank=True),
+        ),
+    ]
diff --git a/app/sandbox/migrations/forms/0005_auto_20151223_1313.py b/app/sandbox/migrations/forms/0005_auto_20151223_1313.py
new file mode 100644 (file)
index 0000000..852552a
--- /dev/null
@@ -0,0 +1,115 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('forms', '0004_auto_20150517_0510'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='field',
+            name='choices_en',
+            field=models.CharField(help_text='Comma separated options where applicable. If an option itself contains commas, surround the option with `backticks`.', max_length=1000, null=True, verbose_name='Choices', blank=True),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='choices_fr',
+            field=models.CharField(help_text='Comma separated options where applicable. If an option itself contains commas, surround the option with `backticks`.', max_length=1000, null=True, verbose_name='Choices', blank=True),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='default_en',
+            field=models.CharField(max_length=2000, null=True, verbose_name='Default value', blank=True),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='default_fr',
+            field=models.CharField(max_length=2000, null=True, verbose_name='Default value', blank=True),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='help_text_en',
+            field=models.CharField(max_length=100, null=True, verbose_name='Help text', blank=True),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='help_text_fr',
+            field=models.CharField(max_length=100, null=True, verbose_name='Help text', blank=True),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='label_en',
+            field=models.CharField(max_length=200, null=True, verbose_name='Label'),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='label_fr',
+            field=models.CharField(max_length=200, null=True, verbose_name='Label'),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='placeholder_text_en',
+            field=models.CharField(verbose_name='Placeholder Text', max_length=100, null=True, editable=False, blank=True),
+        ),
+        migrations.AddField(
+            model_name='field',
+            name='placeholder_text_fr',
+            field=models.CharField(verbose_name='Placeholder Text', max_length=100, null=True, editable=False, blank=True),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='button_text_en',
+            field=models.CharField(max_length=50, null=True, verbose_name='Button text', blank=True),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='button_text_fr',
+            field=models.CharField(max_length=50, null=True, verbose_name='Button text', blank=True),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='content_en',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='content_fr',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='email_message_en',
+            field=models.TextField(help_text='Emails sent based on the above options will contain each of the form fields entered. You can also enter a message here that will be included in the email.', null=True, verbose_name='Message', blank=True),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='email_message_fr',
+            field=models.TextField(help_text='Emails sent based on the above options will contain each of the form fields entered. You can also enter a message here that will be included in the email.', null=True, verbose_name='Message', blank=True),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='email_subject_en',
+            field=models.CharField(max_length=200, null=True, verbose_name='Subject', blank=True),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='email_subject_fr',
+            field=models.CharField(max_length=200, null=True, verbose_name='Subject', blank=True),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='response_en',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Response'),
+        ),
+        migrations.AddField(
+            model_name='form',
+            name='response_fr',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Response'),
+        ),
+    ]
diff --git a/app/sandbox/migrations/forms/__init__.py b/app/sandbox/migrations/forms/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/sandbox/migrations/galleries/0001_initial.py b/app/sandbox/migrations/galleries/0001_initial.py
new file mode 100644 (file)
index 0000000..11f1937
--- /dev/null
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('pages', '__first__'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Gallery',
+            fields=[
+                ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='pages.Page')),
+                ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')),
+                ('zip_import', models.FileField(help_text="Upload a zip file containing images, and they'll be imported into this gallery.", upload_to='galleries', verbose_name='Zip import', blank=True)),
+            ],
+            options={
+                'ordering': ('_order',),
+                'verbose_name': 'Gallery',
+                'verbose_name_plural': 'Galleries',
+            },
+            bases=('pages.page', models.Model),
+        ),
+        migrations.CreateModel(
+            name='GalleryImage',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('_order', models.IntegerField(null=True, verbose_name='Order')),
+                ('file', mezzanine.core.fields.FileField(max_length=200, verbose_name='File')),
+                ('description', models.CharField(max_length=1000, verbose_name='Description', blank=True)),
+                ('gallery', models.ForeignKey(related_name='images', to='galleries.Gallery')),
+            ],
+            options={
+                'ordering': ('_order',),
+                'verbose_name': 'Image',
+                'verbose_name_plural': 'Images',
+            },
+            bases=(models.Model,),
+        ),
+    ]
diff --git a/app/sandbox/migrations/galleries/0002_auto_20141227_0224.py b/app/sandbox/migrations/galleries/0002_auto_20141227_0224.py
new file mode 100644 (file)
index 0000000..89bf633
--- /dev/null
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('galleries', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='galleryimage',
+            name='_order',
+            field=mezzanine.core.fields.OrderField(null=True, verbose_name='Order'),
+            preserve_default=True,
+        ),
+    ]
diff --git a/app/sandbox/migrations/galleries/0003_auto_20151223_1313.py b/app/sandbox/migrations/galleries/0003_auto_20151223_1313.py
new file mode 100644 (file)
index 0000000..2a61852
--- /dev/null
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('galleries', '0002_auto_20141227_0224'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='gallery',
+            name='content_en',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='gallery',
+            name='content_fr',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='galleryimage',
+            name='description_en',
+            field=models.CharField(max_length=1000, null=True, verbose_name='Description', blank=True),
+        ),
+        migrations.AddField(
+            model_name='galleryimage',
+            name='description_fr',
+            field=models.CharField(max_length=1000, null=True, verbose_name='Description', blank=True),
+        ),
+    ]
diff --git a/app/sandbox/migrations/galleries/__init__.py b/app/sandbox/migrations/galleries/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/sandbox/migrations/pages/0001_initial.py b/app/sandbox/migrations/pages/0001_initial.py
new file mode 100644 (file)
index 0000000..4429c29
--- /dev/null
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import mezzanine.core.fields
+import mezzanine.pages.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('sites', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Page',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('keywords_string', models.CharField(max_length=500, editable=False, blank=True)),
+                ('title', models.CharField(max_length=500, verbose_name='Title')),
+                ('slug', models.CharField(help_text='Leave blank to have the URL auto-generated from the title.', max_length=2000, null=True, verbose_name='URL', blank=True)),
+                ('_meta_title', models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True)),
+                ('description', models.TextField(verbose_name='Description', blank=True)),
+                ('gen_description', models.BooleanField(default=True, help_text='If checked, the description will be automatically generated from content. Uncheck if you want to manually set a custom description.', verbose_name='Generate description')),
+                ('created', models.DateTimeField(null=True, editable=False)),
+                ('updated', models.DateTimeField(null=True, editable=False)),
+                ('status', models.IntegerField(default=2, help_text='With Draft chosen, will only be shown for admin users on the site.', verbose_name='Status', choices=[(1, 'Draft'), (2, 'Published')])),
+                ('publish_date', models.DateTimeField(help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from', blank=True)),
+                ('expiry_date', models.DateTimeField(help_text="With Published chosen, won't be shown after this time", null=True, verbose_name='Expires on', blank=True)),
+                ('short_url', models.URLField(null=True, blank=True)),
+                ('in_sitemap', models.BooleanField(default=True, verbose_name='Show in sitemap')),
+                ('_order', models.IntegerField(null=True, verbose_name='Order')),
+                ('in_menus', mezzanine.pages.fields.MenusField(default=(1, 2, 3), choices=[(1, 'Top navigation bar'), (2, 'Left-hand tree'), (3, 'Footer')], max_length=100, blank=True, null=True, verbose_name='Show in menus')),
+                ('titles', models.CharField(max_length=1000, null=True, editable=False)),
+                ('content_model', models.CharField(max_length=50, null=True, editable=False)),
+                ('login_required', models.BooleanField(default=False, help_text='If checked, only logged in users can view this page', verbose_name='Login required')),
+            ],
+            options={
+                'ordering': ('titles',),
+                'verbose_name': 'Page',
+                'verbose_name_plural': 'Pages',
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='Link',
+            fields=[
+                ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='pages.Page')),
+            ],
+            options={
+                'ordering': ('_order',),
+                'verbose_name': 'Link',
+                'verbose_name_plural': 'Links',
+            },
+            bases=('pages.page',),
+        ),
+        migrations.CreateModel(
+            name='RichTextPage',
+            fields=[
+                ('page_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='pages.Page')),
+                ('content', mezzanine.core.fields.RichTextField(verbose_name='Content')),
+            ],
+            options={
+                'ordering': ('_order',),
+                'verbose_name': 'Rich text page',
+                'verbose_name_plural': 'Rich text pages',
+            },
+            bases=('pages.page', models.Model),
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='parent',
+            field=models.ForeignKey(related_name='children', blank=True, to='pages.Page', null=True),
+            preserve_default=True,
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='site',
+            field=models.ForeignKey(editable=False, to='sites.Site'),
+            preserve_default=True,
+        ),
+    ]
diff --git a/app/sandbox/migrations/pages/0002_auto_20141227_0224.py b/app/sandbox/migrations/pages/0002_auto_20141227_0224.py
new file mode 100644 (file)
index 0000000..85bddb2
--- /dev/null
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import mezzanine.pages.fields
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('pages', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='page',
+            name='_order',
+            field=mezzanine.core.fields.OrderField(null=True, verbose_name='Order'),
+            preserve_default=True,
+        ),
+        migrations.AlterField(
+            model_name='page',
+            name='in_menus',
+            field=mezzanine.pages.fields.MenusField(max_length=100, null=True, verbose_name='Show in menus', blank=True),
+            preserve_default=True,
+        ),
+    ]
diff --git a/app/sandbox/migrations/pages/0003_auto_20150527_1555.py b/app/sandbox/migrations/pages/0003_auto_20150527_1555.py
new file mode 100644 (file)
index 0000000..b0682fe
--- /dev/null
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('pages', '0002_auto_20141227_0224'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='page',
+            name='publish_date',
+            field=models.DateTimeField(help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from', db_index=True, blank=True),
+        ),
+    ]
diff --git a/app/sandbox/migrations/pages/0004_auto_20151223_1313.py b/app/sandbox/migrations/pages/0004_auto_20151223_1313.py
new file mode 100644 (file)
index 0000000..6f0ca5e
--- /dev/null
@@ -0,0 +1,65 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import mezzanine.core.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('pages', '0003_auto_20150527_1555'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='page',
+            name='_meta_title_en',
+            field=models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True),
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='_meta_title_fr',
+            field=models.CharField(help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title', blank=True),
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='description_en',
+            field=models.TextField(null=True, verbose_name='Description', blank=True),
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='description_fr',
+            field=models.TextField(null=True, verbose_name='Description', blank=True),
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='title_en',
+            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='title_fr',
+            field=models.CharField(max_length=500, null=True, verbose_name='Title'),
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='titles_en',
+            field=models.CharField(max_length=1000, null=True, editable=False),
+        ),
+        migrations.AddField(
+            model_name='page',
+            name='titles_fr',
+            field=models.CharField(max_length=1000, null=True, editable=False),
+        ),
+        migrations.AddField(
+            model_name='richtextpage',
+            name='content_en',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+        migrations.AddField(
+            model_name='richtextpage',
+            name='content_fr',
+            field=mezzanine.core.fields.RichTextField(null=True, verbose_name='Content'),
+        ),
+    ]
diff --git a/app/sandbox/migrations/pages/__init__.py b/app/sandbox/migrations/pages/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/sandbox/settings.py b/app/sandbox/settings.py
new file mode 100644 (file)
index 0000000..ba1352d
--- /dev/null
@@ -0,0 +1,319 @@
+
+from __future__ import absolute_import, unicode_literals
+import os
+from django.utils.translation import ugettext_lazy as _
+
+######################
+# MEZZANINE SETTINGS #
+######################
+
+# The following settings are already defined with default values in
+# the ``defaults.py`` module within each of Mezzanine's apps, but are
+# common enough to be put here, commented out, for conveniently
+# overriding. Please consult the settings documentation for a full list
+# of settings Mezzanine implements:
+# http://mezzanine.jupo.org/docs/configuration.html#default-settings
+
+# Controls the ordering and grouping of the admin menu.
+#
+# ADMIN_MENU_ORDER = (
+#     ("Content", ("pages.Page", "blog.BlogPost",
+#        "generic.ThreadedComment", (_("Media Library"), "fb_browse"),)),
+#     (_("Shop"), ("shop.Product", "shop.ProductOption", "shop.DiscountCode",
+#        "shop.Sale", "shop.Order")),
+#     ("Site", ("sites.Site", "redirects.Redirect", "conf.Setting")),
+#     ("Users", ("auth.User", "auth.Group",)),
+# )
+
+# A three item sequence, each containing a sequence of template tags
+# used to render the admin dashboard.
+#
+# DASHBOARD_TAGS = (
+#     ("blog_tags.quick_blog", "mezzanine_tags.app_list"),
+#     ("comment_tags.recent_comments",),
+#     ("mezzanine_tags.recent_actions",),
+# )
+
+# A sequence of templates used by the ``page_menu`` template tag. Each
+# item in the sequence is a three item sequence, containing a unique ID
+# for the template, a label for the template, and the template path.
+# These templates are then available for selection when editing which
+# menus a page should appear in. Note that if a menu template is used
+# that doesn't appear in this setting, all pages will appear in it.
+
+PAGE_MENU_TEMPLATES = (
+    (1, _("Top navigation bar"), "pages/menus/dropdown.html"),
+    # (2, _("Left-hand tree"), "pages/menus/tree.html"),
+    # (3, _("Footer"), "pages/menus/footer.html"),
+)
+
+# A sequence of fields that will be injected into Mezzanine's (or any
+# library's) models. Each item in the sequence is a four item sequence.
+# The first two items are the dotted path to the model and its field
+# name to be added, and the dotted path to the field class to use for
+# the field. The third and fourth items are a sequence of positional
+# args and a dictionary of keyword args, to use when creating the
+# field instance. When specifying the field class, the path
+# ``django.models.db.`` can be omitted for regular Django model fields.
+#
+
+# EXTRA_MODEL_FIELDS = (
+#  )
+
+# Setting to turn on featured images for blog posts. Defaults to False.
+#
+BLOG_USE_FEATURED_IMAGE = True
+
+# If True, the django-modeltranslation will be added to the
+# INSTALLED_APPS setting.
+USE_MODELTRANSLATION = True
+
+# SEARCH_MODEL_CHOICES = ('shop.Product',)
+
+COMMENTS_ACCOUNT_REQUIRED = True
+
+########################
+# MAIN DJANGO SETTINGS #
+########################
+
+# Hosts/domain names that are valid for this site; required if DEBUG is False
+# See https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
+ALLOWED_HOSTS = ['*']
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# On Unix systems, a value of None will cause Django to use the same
+# timezone as the operating system.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'Europe/Paris'
+
+# If you set this to True, Django will use timezone-aware datetimes.
+USE_TZ = True
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = "en"
+
+# Supported languages
+LANGUAGES = (
+    ('fr', _('French')),
+    ('en', _('English')),
+)
+
+# A boolean that turns on/off debug mode. When set to ``True``, stack traces
+# are displayed for error pages. Should always be set to ``False`` in
+# production. Best set to ``True`` in local_settings.py
+DEBUG = False
+
+# Whether a user's session cookie expires when the Web browser is closed.
+SESSION_EXPIRE_AT_BROWSER_CLOSE = True
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+AUTHENTICATION_BACKENDS = ("mezzanine.core.auth_backends.MezzanineBackend",)
+
+# The numeric mode to set newly-uploaded files to. The value should be
+# a mode you'd pass directly to os.chmod.
+FILE_UPLOAD_PERMISSIONS = 0o644
+
+# MAX_UPLOAD_SIZE = 429916160
+
+#############
+# DATABASES #
+#############
+
+DATABASES = {
+    "default": {
+        # Ends with "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
+        "ENGINE": "django.db.backends.sqlite3",
+        # DB name or path to database file if using sqlite3.
+        "NAME": "dev.db",
+        # Not used with sqlite3.
+        "USER": "",
+        # Not used with sqlite3.
+        "PASSWORD": "",
+        # Set to empty string for localhost. Not used with sqlite3.
+        "HOST": "",
+        # Set to empty string for default. Not used with sqlite3.
+        "PORT": "",
+    }
+}
+
+#########
+# PATHS #
+#########
+
+# Full filesystem path to the project.
+PROJECT_APP_PATH = os.path.dirname(os.path.abspath(__file__))
+PROJECT_APP = os.path.basename(PROJECT_APP_PATH)
+PROJECT_ROOT = BASE_DIR = os.path.dirname(PROJECT_APP_PATH)
+
+# Every cache key will get prefixed with this value - here we set it to
+# the name of the directory the project is in to try and use something
+# project specific.
+CACHE_MIDDLEWARE_KEY_PREFIX = PROJECT_APP
+
+# URL prefix for static files.
+# Example: "http://media.lawrence.com/static/"
+STATIC_URL = "/static/"
+
+# Absolute path to the directory static files should be collected to.
+# Don't put anything in this directory yourself; store your static files
+# in apps' "static/" subdirectories and in STATICFILES_DIRS.
+# Example: "/home/media/media.lawrence.com/static/"
+# STATIC_ROOT = os.path.join(PROJECT_ROOT, STATIC_URL.strip("/"))
+STATIC_ROOT = '/srv/static/'
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash.
+# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
+MEDIA_URL = "/media/"
+
+# Absolute filesystem path to the directory that will hold user-uploaded files.
+# Example: "/home/media/media.lawrence.com/media/"
+# MEDIA_ROOT = os.path.join(PROJECT_ROOT, *MEDIA_URL.strip("/").split("/"))
+MEDIA_ROOT = '/srv/media/'
+
+# Package/module name to import the root urlpatterns from for the project.
+ROOT_URLCONF = "%s.urls" % PROJECT_APP
+
+# Put strings here, like "/home/html/django_templates"
+# or "C:/www/django/templates".
+# Always use forward slashes, even on Windows.
+# Don't forget to use absolute paths, not relative paths.
+TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, "templates"),)
+
+
+################
+# APPLICATIONS #
+################
+
+INSTALLED_APPS = (
+    "django.contrib.admin",
+    "django.contrib.auth",
+    "django.contrib.contenttypes",
+    "django.contrib.redirects",
+    "django.contrib.sessions",
+    "django.contrib.sites",
+    "django.contrib.staticfiles",
+    "mezzanine.boot",
+    "mezzanine.conf",
+    "django.contrib.sitemaps",
+    "mezzanine.core",
+    "mezzanine.generic",
+    "mezzanine.pages",
+    "mezzanine.blog",
+    "mezzanine.forms",
+    "mezzanine.galleries",
+    "mezzanine.twitter",
+    "mezzanine.accounts",
+    # "mezzanine.mobile",
+    "eve",
+)
+
+# Add Migration Module path see : https://github.com/stephenmcd/mezzanine/blob/master/docs/model-customization.rst#field-injection-caveats
+MIGRATION_MODULES = {
+    "blog": "sandbox.migrations.blog",
+    "forms": "sandbox.migrations.forms",
+    "galleries": "sandbox.migrations.galleries",
+    "pages": "sandbox.migrations.pages",
+    "conf": "sandbox.migrations.conf",
+}
+
+# List of processors used by RequestContext to populate the context.
+# Each one should be a callable that takes the request object as its
+# only parameter and returns a dictionary to add to the context.
+TEMPLATE_CONTEXT_PROCESSORS = (
+    "django.contrib.auth.context_processors.auth",
+    "django.contrib.messages.context_processors.messages",
+    "django.core.context_processors.debug",
+    "django.core.context_processors.i18n",
+    "django.core.context_processors.static",
+    "django.core.context_processors.media",
+    "django.core.context_processors.request",
+    "django.core.context_processors.tz",
+    "mezzanine.conf.context_processors.settings",
+    "mezzanine.pages.context_processors.page",
+)
+
+# List of middleware classes to use. Order is important; in the request phase,
+# these middleware classes will be applied in the order given, and in the
+# response phase the middleware will be applied in reverse order.
+MIDDLEWARE_CLASSES = (
+    "mezzanine.core.middleware.UpdateCacheMiddleware",
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    # Uncomment if using internationalisation or localisation
+    'django.middleware.locale.LocaleMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    'django.middleware.csrf.CsrfViewMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
+
+    "mezzanine.core.request.CurrentRequestMiddleware",
+    "mezzanine.core.middleware.RedirectFallbackMiddleware",
+    "mezzanine.core.middleware.TemplateForDeviceMiddleware",
+    "mezzanine.core.middleware.TemplateForHostMiddleware",
+    "mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware",
+    "mezzanine.core.middleware.SitePermissionMiddleware",
+    # Uncomment the following if using any of the SSL settings:
+    # "mezzanine.core.middleware.SSLRedirectMiddleware",
+    "mezzanine.pages.middleware.PageMiddleware",
+    "mezzanine.core.middleware.FetchFromCacheMiddleware",
+)
+
+# Store these package names here as they may change in the future since
+# at the moment we are using custom forks of them.
+PACKAGE_NAME_FILEBROWSER = "filebrowser_safe"
+PACKAGE_NAME_GRAPPELLI = "grappelli_safe"
+
+#########################
+# OPTIONAL APPLICATIONS #
+#########################
+
+# These will be added to ``INSTALLED_APPS``, only if available.
+OPTIONAL_APPS = (
+    "debug_toolbar",
+    "django_extensions",
+    "compressor",
+    PACKAGE_NAME_FILEBROWSER,
+    PACKAGE_NAME_GRAPPELLI,
+)
+
+##################
+# LOCAL SETTINGS #
+##################
+
+# Allow any settings to be defined in local_settings.py which should be
+# ignored in your version control system allowing for settings to be
+# defined per machine.
+try:
+    from .local_settings import *
+except ImportError as e:
+    if "local_settings" not in str(e):
+        raise e
+
+
+####################
+# DYNAMIC SETTINGS #
+####################
+
+# set_dynamic_settings() will rewrite globals based on what has been
+# defined so far, in order to provide some better defaults where
+# applicable. We also allow this settings module to be imported
+# without Mezzanine installed, as the case may be when using the
+# fabfile, where setting the dynamic settings below isn't strictly
+# required.
+try:
+    from mezzanine.utils.conf import set_dynamic_settings
+except ImportError:
+    pass
+else:
+    set_dynamic_settings(globals())
diff --git a/app/sandbox/urls.py b/app/sandbox/urls.py
new file mode 100644 (file)
index 0000000..e9ecdb8
--- /dev/null
@@ -0,0 +1,103 @@
+from __future__ import unicode_literals
+
+from django.conf.urls import patterns, include, url
+from django.conf.urls.i18n import i18n_patterns
+from django.contrib import admin
+
+from mezzanine.core.views import direct_to_template
+from mezzanine.conf import settings
+
+admin.autodiscover()
+
+# Add the urlpatterns for any custom Django applications here.
+# You can also change the ``home`` view to add your own functionality
+# to the project's homepage.
+
+urlpatterns = i18n_patterns("",
+    # Change the admin prefix here to use an alternate URL for the
+    # admin interface, which would be marginally more secure.
+    ("^admin/", include(admin.site.urls)),
+)
+
+if settings.USE_MODELTRANSLATION:
+    urlpatterns += patterns('',
+        url('^i18n/$', 'django.views.i18n.set_language', name='set_language'),
+    )
+
+urlpatterns += patterns('',
+    # (r'^newsletter/', include('newsletter.urls')),
+
+    # We don't want to presume how your homepage works, so here are a
+    # few patterns you can use to set it up.
+
+    # HOMEPAGE AS STATIC TEMPLATE
+    # ---------------------------
+    # This pattern simply loads the index.html template. It isn't
+    # commented out like the others, so it's the default. You only need
+    # one homepage pattern, so if you use a different one, comment this
+    # one out.
+
+    url("^$", direct_to_template, {"template": "index.html"}, name="home"),
+
+    # HOMEPAGE AS AN EDITABLE PAGE IN THE PAGE TREE
+    # ---------------------------------------------
+    # This pattern gives us a normal ``Page`` object, so that your
+    # homepage can be managed via the page tree in the admin. If you
+    # use this pattern, you'll need to create a page in the page tree,
+    # and specify its URL (in the Meta Data section) as "/", which
+    # is the value used below in the ``{"slug": "/"}`` part. Make
+    # sure to uncheck all templates for the "show in menus" field
+    # when you create the page, since the link to the homepage is
+    # always hard-coded into all the page menus that display navigation
+    # on the site. Also note that the normal rule of adding a custom
+    # template per page with the template name using the page's slug
+    # doesn't apply here, since we can't have a template called
+    # "/.html" - so for this case, the template "pages/index.html" can
+    # be used.
+
+    # url("^$", "mezzanine.pages.views.page", {"slug": "/"}, name="home"),
+
+    # HOMEPAGE FOR A BLOG-ONLY SITE
+    # -----------------------------
+    # This pattern points the homepage to the blog post listing page,
+    # and is useful for sites that are primarily blogs. If you use this
+    # pattern, you'll also need to set BLOG_SLUG = "" in your
+    # ``settings.py`` module, and delete the blog page object from the
+    # page tree in the admin if it was installed.
+
+    # url("^$", "mezzanine.blog.views.blog_post_list", name="home"),
+
+    # MEZZANINE'S URLS
+    # ----------------
+    # ADD YOUR OWN URLPATTERNS *ABOVE* THE LINE BELOW.
+    # ``mezzanine.urls`` INCLUDES A *CATCH ALL* PATTERN
+    # FOR PAGES, SO URLPATTERNS ADDED BELOW ``mezzanine.urls``
+    # WILL NEVER BE MATCHED!
+
+    # If you'd like more granular control over the patterns in
+    # ``mezzanine.urls``, go right ahead and take the parts you want
+    # from it, and use them directly below instead of using
+    # ``mezzanine.urls``.
+    ("^", include("mezzanine.urls")),
+
+    # MOUNTING MEZZANINE UNDER A PREFIX
+    # ---------------------------------
+    # You can also mount all of Mezzanine's urlpatterns under a
+    # URL prefix if desired. When doing this, you need to define the
+    # ``SITE_PREFIX`` setting, which will contain the prefix. Eg:
+    # SITE_PREFIX = "my/site/prefix"
+    # For convenience, and to avoid repeating the prefix, use the
+    # commented out pattern below (commenting out the one above of course)
+    # which will make use of the ``SITE_PREFIX`` setting. Make sure to
+    # add the import ``from django.conf import settings`` to the top
+    # of this file as well.
+    # Note that for any of the various homepage patterns above, you'll
+    # need to use the ``SITE_PREFIX`` setting as well.
+
+    # ("^%s/" % settings.SITE_PREFIX, include("mezzanine.urls"))
+)
+
+# Adds ``STATIC_URL`` to the context of error pages, so that error
+# pages can use JS, CSS and images.
+handler404 = "mezzanine.core.views.page_not_found"
+handler500 = "mezzanine.core.views.server_error"
index eead53c7c05e8dbb53d983b0b0914008183c8cea..c70dc753e78fc65c0111a476524ff16e909a22e9 100644 (file)
@@ -6,9 +6,9 @@ from django.core.management import call_command
 up = False
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sandbox.settings")
 
-while not up:
-    try:
-        call_command('syncdb', interactive=False)
-        up = True
-    except:
-        time.sleep(1)
+while not up:
+    try:
+call_command('syncdb', interactive=False)
+        up = True
+    except:
+        time.sleep(1)
index faa39cf24015bbd0d84255063139a6ffa53ee371..aa519c45c10f69fce7493ab5b577428fee6a5cea 100644 (file)
@@ -11,7 +11,7 @@ import os
 from django.core.wsgi import get_wsgi_application
 from mezzanine.utils.conf import real_project_name
 
-settings_module = "%s.settings" % real_project_name("manifeste")
+settings_module = "%s.settings" % real_project_name("sandbox")
 
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", settings_module)
 
index a3270f4c1410db9fbc8e901064062b4007e40199..f9c161060b3b306a2c6f71f594b36a1538bf4ac4 100644 (file)
@@ -31,12 +31,22 @@ db:
   image: mariadb
   volumes_from:
     - data
+  volumes:
+    - ./data/var/lib/mysql/:/var/lib/mysql
   environment:
     - MYSQL_ROOT_PASSWORD=hyRob0otlaz4
     - MYSQL_DATABASE=manifeste
     - MYSQL_USER=manifeste
     - MYSQL_PASSWORD=Onukifsid7
 
+pgdb:
+  image: postgres
+  volumes_from:
+    - data
+  environment:
+    - POSTGRES_PASSWORD=mysecretpassword
+    - POSTGRES_USER=postgres
+
 app:
   build: .
   command: /bin/sh deploy/start_app.sh
@@ -48,6 +58,7 @@ app:
     - "8000"
   links:
     - db
+    - pgdb
 
 nginx:
   image: nginx
index 34d3b7e57f5ac1b843685ac35f02cb9fdfe8afa2..31036959976917e6328cfc39846f5a0ff6d7e15b 100644 (file)
@@ -9,3 +9,4 @@ mezzanine==4.0.1
 django-modeltranslation
 django-meta
 mezzanine-bsbanners
+psycopg2