From d14738e0b4ae8f766e0a9b0c6891367c782406b6 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Fri, 11 Jan 2013 12:34:19 -0800 Subject: [PATCH 01/31] Clean up settings.py & add example local settings --- editorsnotes/example-settings_local.py | 55 +++++++++++++ editorsnotes/settings.py | 102 +++++++++++++++---------- 2 files changed, 118 insertions(+), 39 deletions(-) create mode 100644 editorsnotes/example-settings_local.py diff --git a/editorsnotes/example-settings_local.py b/editorsnotes/example-settings_local.py new file mode 100644 index 00000000..dd892d5b --- /dev/null +++ b/editorsnotes/example-settings_local.py @@ -0,0 +1,55 @@ +###################### +# Required variables # +###################### + +SECRET_KEY = '' +POSTGRES_DB = { + 'NAME': '', + 'USER': '', + 'PASSWORD': '', + 'HOST': '', + 'PORT': '' +} +SITE_URL = '127.0.0.1' + +DEBUG = True +TEMPLATE_DEBUG = DEBUG + +ADMINS = ( + ('My Name', 'myemail@gmail.com'), +) +MANAGERS = ADMINS + + +############# +# Overrides # +############# + +# TIME_ZONE = '' +# LANGUAGE_CODE = '' +# DATETIME_FORMAT = '' +# USE_L10N = True +# USE I18N = True + +# LOCAL_PATH = '' +# MEDIA_ROOT = '' +# STATIC_ROOT = '' +# HAYSTACK_XAPIAN_PATH = '' + + +###################### +# Optional variables # +###################### + +# Set the following variables to connect to an instance of Open Refine and +# enable clustering topics and documents. +GOOGLE_REFINE_HOST = '127.0.0.1' +GOOGLE_REFINE_PORT = '3333' + +# Set the following to be able to write all Zotero data to a central library. +ZOTERO_API_KEY = '' +ZOTERO_LIBRARY = '' + +# Define locally installed apps here +LOCAL_APPS = ( +) diff --git a/editorsnotes/settings.py b/editorsnotes/settings.py index b22671f3..c6bc4a0e 100644 --- a/editorsnotes/settings.py +++ b/editorsnotes/settings.py @@ -1,24 +1,74 @@ -# Django settings for editorsnotes project. - -ADMINS = ( - ('Ryan Shaw', 'ryanshaw@unc.edu'), - ('Patrick Golden', 'ptgolden@berkeley.edu'), -) - -MANAGERS = ADMINS +################### +# Locale settings # +################### +# These settings are defaults: change in settings_local.py if desired TIME_ZONE = 'America/Los_Angeles' LANGUAGE_CODE = 'en-us' DATETIME_FORMAT = 'N j, Y, P' - -SITE_ID = 1 - USE_L10N = False USE_I18N = False + +######################## +# Datebase information # +######################## + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2' + # The rest of the DB configuration is done in settings_local.py + } +} +SOUTH_DATABASE_ADAPTERS = { + 'default': 'south.db.postgresql_psycopg2' +} +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', + 'LOCATION': 'zotero_cache' + } +} + + +################# +# Site settings # +################# + +SITE_ID = 1 MEDIA_URL = '/media/' STATIC_URL = '/static/' +ROOT_URLCONF = 'editorsnotes.urls' +AUTH_PROFILE_MODULE = 'main.UserProfile' + +HAYSTACK_SITECONF = 'editorsnotes.search_sites' +HAYSTACK_SEARCH_ENGINE = 'xapian' + + +################# +# Path settings # +################# +import os + +EN_ROOT_PATH = os.path.normpath(os.path.join(os.path.dirname(__file__), '..')) +TEMPLATE_DIRS = ( + os.path.abspath(os.path.join(EN_ROOT_PATH, 'editorsnotes', 'templates')), +) +STATICFILES_DIRS = ( + os.path.abspath(os.path.join(EN_ROOT_PATH, 'editorsnotes', 'static')), +) + +# Override these variables in settings_local.py if desired +LOCAL_PATH = os.path.abspath(EN_ROOT_PATH) +HAYSTACK_XAPIAN_PATH = os.path.abspath(os.path.join(EN_ROOT_PATH, 'searchindex')) +MEDIA_ROOT = os.path.abspath(os.path.join(EN_ROOT_PATH, 'uploads')) +STATIC_ROOT = os.path.abspath(os.path.join(EN_ROOT_PATH, 'static')) + + +################### +# Everything else # +################### TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', @@ -44,27 +94,6 @@ 'django.middleware.csrf.CsrfViewMiddleware', ) -ROOT_URLCONF = 'editorsnotes.urls' - -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': '/tmp/zotero_api_cache', - } -} - -import os.path - -path = os.path.dirname(__file__) - -TEMPLATE_DIRS = ( - os.path.abspath(os.path.join(path, 'templates')), -) -STATICFILES_DIRS = ( - os.path.abspath(os.path.join(path, 'static')), -) - - INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', @@ -82,15 +111,10 @@ 'editorsnotes.admin', ) -FIXTURE_DIRS = ( 'fixtures', ) - -HAYSTACK_SITECONF = 'editorsnotes.search_sites' -HAYSTACK_SEARCH_ENGINE = 'xapian' - -AUTH_PROFILE_MODULE = 'main.UserProfile' +# Add in local settings from settings_local import * - +DATABASES['default'].update(POSTGRES_DB) try: INSTALLED_APPS = INSTALLED_APPS + LOCAL_APPS except NameError: From 4a0f2a2e01d87f25709cf2b4b9e2832e491f8593 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Fri, 11 Jan 2013 14:48:34 -0800 Subject: [PATCH 02/31] Remove editorsnotes.org specific files --- deploy/vhost-beta.editorsnotes.org.conf | 32 --------------------- deploy/vhost-editorsnotes.org.conf | 37 ------------------------- django.wsgi | 10 ------- 3 files changed, 79 deletions(-) delete mode 100644 deploy/vhost-beta.editorsnotes.org.conf delete mode 100644 deploy/vhost-editorsnotes.org.conf delete mode 100644 django.wsgi diff --git a/deploy/vhost-beta.editorsnotes.org.conf b/deploy/vhost-beta.editorsnotes.org.conf deleted file mode 100644 index 1571fded..00000000 --- a/deploy/vhost-beta.editorsnotes.org.conf +++ /dev/null @@ -1,32 +0,0 @@ - - ServerName beta.editorsnotes.org - ServerAdmin ryanshaw@unc.edu - - # Disable listing and "guessing" of static files - - Options -Indexes FollowSymLinks -MultiViews - AllowOverride None - Order deny,allow - Allow from all - - - Alias /favicon.ico /db/projects/editorsnotes-beta/releases/current/editorsnotes/static/style/icons/favicon.ico - - Alias /static /db/projects/editorsnotes-beta/static - - SetHandler None - - - Alias /media /db/projects/editorsnotes-beta/uploads - - SetHandler None - - - WSGIDaemonProcess editorsnotes-beta user=ryanshaw group=ryanshaw threads=10 python-path=/db/projects/editorsnotes-beta/lib/python2.7/site-packages - WSGIProcessGroup editorsnotes-beta - WSGIScriptAlias / /db/projects/editorsnotes-beta/releases/current/django.wsgi - - ErrorLog /db/projects/editorsnotes-beta/logs/error.log - LogLevel warn - CustomLog /db/projects/editorsnotes-beta/logs/access.log combined - diff --git a/deploy/vhost-editorsnotes.org.conf b/deploy/vhost-editorsnotes.org.conf deleted file mode 100644 index b3dce2e7..00000000 --- a/deploy/vhost-editorsnotes.org.conf +++ /dev/null @@ -1,37 +0,0 @@ - - ServerName editorsnotes.org - ServerAlias www.editorsnotes.org - ServerAdmin ryanshaw@unc.edu - - RewriteEngine On - RewriteCond %{HTTP_HOST} ^www\.editorsnotes\.org$ [NC] - RewriteRule ^/(.*)$ http://editorsnotes.org/$1 [R=301,L] - - # Disable listing and "guessing" of static files - - Options -Indexes FollowSymLinks -MultiViews - AllowOverride None - Order deny,allow - Allow from all - - - Alias /favicon.ico /db/projects/editorsnotes/releases/current/editorsnotes/static/style/icons/favicon.ico - - Alias /static /db/projects/editorsnotes/static - - SetHandler None - - - Alias /media /db/projects/editorsnotes/uploads - - SetHandler None - - - WSGIDaemonProcess editorsnotes user=ryanshaw group=ryanshaw threads=10 python-path=/db/projects/editorsnotes/lib/python2.7/site-packages - WSGIProcessGroup editorsnotes - WSGIScriptAlias / /db/projects/editorsnotes/releases/current/django.wsgi - - ErrorLog /db/projects/editorsnotes/logs/error.log - LogLevel warn - CustomLog /db/projects/editorsnotes/logs/access.log combined - diff --git a/django.wsgi b/django.wsgi deleted file mode 100644 index fbd1ceb9..00000000 --- a/django.wsgi +++ /dev/null @@ -1,10 +0,0 @@ -import os -import sys - -# Put the Django project on sys.path -sys.path.insert(0, os.path.abspath(os.path.dirname(__file__))) - -os.environ['DJANGO_SETTINGS_MODULE'] = 'editorsnotes.settings' - -from django.core.handlers.wsgi import WSGIHandler -application = WSGIHandler() From ac851a6e9123c21c9cb45fd507232b7cd7b2a2ae Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Fri, 11 Jan 2013 15:05:34 -0800 Subject: [PATCH 03/31] Ignore local dir created by virtualenv --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8b1c04ea..2558a075 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ build dev.db include lib +local secret.txt settings_local.py settings-*.py From b47705372e71801f19ddea883518aefe2c02e551 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Mon, 14 Jan 2013 11:01:54 -0800 Subject: [PATCH 04/31] Different fabfile for local setup Might be deleted in the future, but I want to test setting up a development environment on other machines. --- fabfile_test.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 fabfile_test.py diff --git a/fabfile_test.py b/fabfile_test.py new file mode 100644 index 00000000..2da2e931 --- /dev/null +++ b/fabfile_test.py @@ -0,0 +1,32 @@ +from fabric.api import local +from fabric.contrib import django, files + +import fileinput +import random +import sys + +django.project('editorsnotes') + +def generate_secret_key(): + SECRET_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*_+=-" + return ''.join([random.choice(SECRET_CHARS) for i in range(50)]) + +def make_settings(): + local('cp -n editorsnotes/example-settings_local.py editorsnotes/settings_local.py') + from django.conf import settings + if not settings.SECRET_KEY: + files.sed('editorsnotes/settings_local.py', + "SECRET_KEY = ''", + "SECRET_KEY = '%s'" % generate_secret_key()) + +def make_virtualenv(): + local('virtualenv .') + local('./bin/pip install -r requirements.txt') + +def collect_static(): + local('./bin/python manage.py collectstatic --noinput -v 0') + +def setup(): + make_virtualenv() + make_settings() + collect_static() From 68c6f02a5690ad8d042459da10f7ad03b7434f48 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 11:47:10 -0800 Subject: [PATCH 05/31] Replace env.path with env.project_path in fabfile Setting env.path overwrites the PATH environment variable, which isn't what we want to be doing! --- fabfile.py | 58 +++++++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/fabfile.py b/fabfile.py index 529ace68..c4e38692 100644 --- a/fabfile.py +++ b/fabfile.py @@ -20,7 +20,7 @@ def beta(): "Use the beta-testing webserver." env.hosts = ['beta.editorsnotes.org'] - env.path = '/db/projects/%(project_name)s-beta' % env + env.project_path = '/db/projects/%(project_name)s-beta' % env env.vhosts_path = '/etc/httpd/sites.d' env.python = '/usr/bin/python2.7' env.site_packages = ['/usr/lib64/python2.7/site-packages', @@ -29,7 +29,7 @@ def beta(): def pro(): "Use the production webserver." env.hosts = ['editorsnotes.org'] - env.path = '/db/projects/%(project_name)s' % env + env.project_path = '/db/projects/%(project_name)s' % env env.vhosts_path = '/etc/httpd/sites.d' env.python = '/usr/bin/python2.7' env.site_packages = ['/usr/lib64/python2.7/site-packages', @@ -44,8 +44,8 @@ def test(): def test_remote(): "Run the test suite remotely." require('hosts', provided_by=[dev]) - require('path') - run('cd %(path)s/releases/current; ../../bin/python manage.py test' % env) + require('project_path') + run('cd %(project_path)s/releases/current; ../../bin/python manage.py test' % env) def setup(): """ @@ -53,9 +53,9 @@ def setup(): run a full deployment. """ require('hosts', provided_by=[dev]) - require('path') - run('mkdir -p %(path)s' % env) - with cd(env.path): + require('project_path') + run('mkdir -p %(project_path)s' % env) + with cd(env.project_path): run('virtualenv -p %(python)s --no-site-packages .' % env) run('mkdir -p logs; mkdir -p releases; mkdir -p shared; mkdir -p packages' % env) run('cd releases; touch none; ln -sf none current; ln -sf none previous') @@ -68,7 +68,7 @@ def deploy(): restart the webserver. """ require('hosts', provided_by=[dev]) - require('path') + require('project_path') import time env.release = time.strftime('%Y%m%d%H%M%S') upload_tar_from_git() @@ -91,9 +91,9 @@ def deploy(): def deploy_version(version): "Specify a specific version to be made live." require('hosts', provided_by=[dev]) - require('path') + require('project_path') env.version = version - with cd(env.path): + with cd(env.project_path): run('rm releases/previous; mv releases/current releases/previous') run('ln -s %(version)s releases/current' % env) restart_webserver() @@ -104,8 +104,8 @@ def rollback(): version of the code. Rolling back again will swap between the two. """ require('hosts', provided_by=[dev]) - require('path') - with cd(env.path): + require('project_path') + with cd(env.project_path): run('mv releases/current releases/_previous;') run('mv releases/previous releases/current;') run('mv releases/_previous releases/previous;') @@ -114,10 +114,10 @@ def rollback(): def clean(): "Clean out old packages and releases." require('hosts', provided_by=[dev]) - require('path') + require('project_path') if (confirm('Are you sure you want to delete everything on %(host)s?' % env, default=False)): - with cd(env.path): + with cd(env.project_path): run('rm -rf packages; rm -rf releases') run('mkdir -p packages; mkdir -p releases') run('cd releases; touch none; ln -sf none current; ln -sf none previous') @@ -128,16 +128,16 @@ def upload_tar_from_git(): "Create an archive from the current Git branch and upload it." require('release', provided_by=[deploy, setup]) local('git archive --format=tar HEAD | gzip > %(release)s.tar.gz' % env) - run('mkdir -p %(path)s/releases/%(release)s' % env) - put('%(release)s.tar.gz' % env, '%(path)s/packages/' % env) - run('cd %(path)s/releases/%(release)s && tar zxf ../../packages/%(release)s.tar.gz' % env) + run('mkdir -p %(project_path)s/releases/%(release)s' % env) + put('%(release)s.tar.gz' % env, '%(project_path)s/packages/' % env) + run('cd %(project_path)s/releases/%(release)s && tar zxf ../../packages/%(release)s.tar.gz' % env) local('rm %(release)s.tar.gz' % env) def upload_local_settings(): "Upload the appropriate local settings file." require('release', provided_by=[deploy, setup]) put('deploy/settings-%(host)s.py' % env, - '%(path)s/releases/%(release)s/%(project_name)s/settings_local.py' % env) + '%(project_path)s/releases/%(release)s/%(project_name)s/settings_local.py' % env) def upload_deploy_info(): "Upload information about the version and time of deployment." @@ -148,20 +148,20 @@ def upload_deploy_info(): f.write(datetime.now().strftime('%Y-%m-%d %H:%M')) for filename in ['version.txt', 'time-deployed.txt']: put(('%(project_name)s/templates/' % env) + filename, - ('%(path)s/releases/%(release)s/%(project_name)s/templates/' % env) + filename) + ('%(project_path)s/releases/%(release)s/%(project_name)s/templates/' % env) + filename) def install_requirements(): "Install the required packages from the requirements file using pip" require('release', provided_by=[deploy, setup]) run('export SAVED_PIP_VIRTUALENV_BASE=$PIP_VIRTUALENV_BASE; unset PIP_VIRTUALENV_BASE; ' + - 'cd %(path)s; ./bin/pip install -E . -r ./releases/%(release)s/requirements.txt; ' % env + + 'cd %(project_path)s; ./bin/pip install -E . -r ./releases/%(release)s/requirements.txt; ' % env + 'export PIP_VIRTUALENV_BASE=$SAVED_PIP_VIRTUALENV_BASE; unset SAVED_PIP_VIRTUALENV_BASE') def symlink_system_packages(): "Create symlinks to system site-packages." require('site_packages', provided_by=[dev]) - require('path') - site_packages = env.path + '/lib/python2.7/site-packages' + require('project_path') + site_packages = env.project_path + '/lib/python2.7/site-packages' with cd(site_packages): with open('requirements.txt') as reqs: for line in reqs: @@ -179,21 +179,21 @@ def install_site(): "Add the virtualhost file to apache." require('release', provided_by=[deploy, setup]) put('deploy/vhost-%(host)s.conf' % env, - '%(path)s/vhost-%(host)s.conf.tmp' % env) - sudo('cd %(path)s; mv -f vhost-%(host)s.conf.tmp %(vhosts_path)s/vhost-%(host)s.conf' % env, pty=True) + '%(project_path)s/vhost-%(host)s.conf.tmp' % env) + sudo('cd %(project_path)s; mv -f vhost-%(host)s.conf.tmp %(vhosts_path)s/vhost-%(host)s.conf' % env, pty=True) def symlink_current_release(): "Symlink our current release." require('release', provided_by=[deploy, setup]) - with cd(env.path): + with cd(env.project_path): run('rm releases/previous; mv releases/current releases/previous;') run('ln -s %(release)s releases/current' % env) def migrate(): "Update the database" require('hosts', provided_by=[dev]) - require('path') - with cd('%(path)s/releases/current' % env): + require('project_path') + with cd('%(project_path)s/releases/current' % env): run('../../bin/python manage.py syncdb --noinput') for app in [ 'main', 'djotero', 'refine', 'reversion' ]: run('../../bin/python manage.py migrate --noinput %s' % app) @@ -201,8 +201,8 @@ def migrate(): def collect_static(): "Collect static files" require('hosts', provided_by=[dev]) - require('path') - with cd('%(path)s/releases/current' % env): + require('project_path') + with cd('%(project_path)s/releases/current' % env): run('../../bin/python manage.py collectstatic --noinput') def restart_webserver(): From caea82cb90a5393046487f07c3d77a82a811291f Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 11:50:06 -0800 Subject: [PATCH 06/31] Use @task decorator in fabfile to define tasks --- fabfile.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/fabfile.py b/fabfile.py index c4e38692..4f5b3623 100644 --- a/fabfile.py +++ b/fabfile.py @@ -6,6 +6,7 @@ from fabric.api import * from fabric.contrib.console import confirm from fabric.contrib.files import exists +from fabric.decorators import task from fabric.utils import abort from fabfile_local import * from subprocess import call @@ -17,6 +18,7 @@ # Environments +@task def beta(): "Use the beta-testing webserver." env.hosts = ['beta.editorsnotes.org'] @@ -26,6 +28,7 @@ def beta(): env.site_packages = ['/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages'] +@task def pro(): "Use the production webserver." env.hosts = ['editorsnotes.org'] @@ -37,16 +40,19 @@ def pro(): # Tasks +@task def test(): "Run the test suite locally." local("python manage.py test" % env) +@task def test_remote(): "Run the test suite remotely." require('hosts', provided_by=[dev]) require('project_path') run('cd %(project_path)s/releases/current; ../../bin/python manage.py test' % env) +@task def setup(): """ Setup a fresh virtualenv as well as a few useful directories, then @@ -61,6 +67,7 @@ def setup(): run('cd releases; touch none; ln -sf none current; ln -sf none previous') deploy() +@task def deploy(): """ Deploy the latest version of the site to the servers, install any @@ -88,6 +95,7 @@ def deploy(): except: local('open http://%(host)s/' % env) +@task def deploy_version(version): "Specify a specific version to be made live." require('hosts', provided_by=[dev]) @@ -98,6 +106,7 @@ def deploy_version(version): run('ln -s %(version)s releases/current' % env) restart_webserver() +@task def rollback(): """ Limited rollback capability. Simple loads the previously current @@ -111,6 +120,7 @@ def rollback(): run('mv releases/_previous releases/previous;') restart_webserver() +@task def clean(): "Clean out old packages and releases." require('hosts', provided_by=[dev]) @@ -122,6 +132,7 @@ def clean(): run('mkdir -p packages; mkdir -p releases') run('cd releases; touch none; ln -sf none current; ln -sf none previous') + # Helpers. These are called by other functions rather than directly. def upload_tar_from_git(): From 49501ef7dd62c0fc65cbc13278fb90024ebefcf8 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 11:58:01 -0800 Subject: [PATCH 07/31] Make fabric commands for apache a different module Commands in fabfile.py will run locally, while those in deploy will run on remote servers. --- deploy/__init__.py | 214 +++++++++++++++++++++++++++++++++++++++++ fabfile.py | 235 +++++---------------------------------------- fabfile_test.py | 32 ------ 3 files changed, 240 insertions(+), 241 deletions(-) create mode 100644 deploy/__init__.py delete mode 100644 fabfile_test.py diff --git a/deploy/__init__.py b/deploy/__init__.py new file mode 100644 index 00000000..0e8e7594 --- /dev/null +++ b/deploy/__init__.py @@ -0,0 +1,214 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import os +from time import sleep +from fabric.api import * +from fabric.contrib.console import confirm +from fabric.contrib.files import exists +from fabric.decorators import task +from fabric.utils import abort +from fabfile_local import * +from subprocess import call +from datetime import datetime + +# Environments + +# Define custom environments in a file in this directory called fabfile_local.py + +@task +def beta(): + "Use the beta-testing webserver." + env.hosts = ['beta.editorsnotes.org'] + env.project_path = '/db/projects/%(project_name)s-beta' % env + env.vhosts_path = '/etc/httpd/sites.d' + env.python = '/usr/bin/python2.7' + env.site_packages = ['/usr/lib64/python2.7/site-packages', + '/usr/lib/python2.7/site-packages'] + +@task +def pro(): + "Use the production webserver." + env.hosts = ['editorsnotes.org'] + env.project_path = '/db/projects/%(project_name)s' % env + env.vhosts_path = '/etc/httpd/sites.d' + env.python = '/usr/bin/python2.7' + env.site_packages = ['/usr/lib64/python2.7/site-packages', + '/usr/lib/python2.7/site-packages'] + +# Tasks + +@task +def test_remote(): + "Run the test suite remotely." + require('hosts', provided_by=[dev]) + require('project_path') + run('cd %(project_path)s/releases/current; ../../bin/python manage.py test' % env) + +@task +def setup(): + """ + Setup a fresh virtualenv as well as a few useful directories, then + run a full deployment. + """ + require('hosts', provided_by=[dev]) + require('project_path') + run('mkdir -p %(project_path)s' % env) + with cd(env.project_path): + run('virtualenv -p %(python)s --no-site-packages .' % env) + run('mkdir -p logs; mkdir -p releases; mkdir -p shared; mkdir -p packages' % env) + run('cd releases; touch none; ln -sf none current; ln -sf none previous') + deploy() + +@task +def deploy(): + """ + Deploy the latest version of the site to the servers, install any + required third party modules, install the virtual host and then + restart the webserver. + """ + require('hosts', provided_by=[dev]) + require('project_path') + import time + env.release = time.strftime('%Y%m%d%H%M%S') + upload_tar_from_git() + upload_local_settings() + upload_deploy_info() + symlink_system_packages() + install_requirements() + install_site() + symlink_current_release() + migrate() + collect_static() + restart_webserver() + sleep(2) + try: + type(env.gnome) + local('gnome-open http://%(host)s/' % env) + except: + local('open http://%(host)s/' % env) + +@task +def deploy_version(version): + "Specify a specific version to be made live." + require('hosts', provided_by=[dev]) + require('project_path') + env.version = version + with cd(env.project_path): + run('rm releases/previous; mv releases/current releases/previous') + run('ln -s %(version)s releases/current' % env) + restart_webserver() + +@task +def rollback(): + """ + Limited rollback capability. Simple loads the previously current + version of the code. Rolling back again will swap between the two. + """ + require('hosts', provided_by=[dev]) + require('project_path') + with cd(env.project_path): + run('mv releases/current releases/_previous;') + run('mv releases/previous releases/current;') + run('mv releases/_previous releases/previous;') + restart_webserver() + +@task +def clean(): + "Clean out old packages and releases." + require('hosts', provided_by=[dev]) + require('project_path') + if (confirm('Are you sure you want to delete everything on %(host)s?' % env, + default=False)): + with cd(env.project_path): + run('rm -rf packages; rm -rf releases') + run('mkdir -p packages; mkdir -p releases') + run('cd releases; touch none; ln -sf none current; ln -sf none previous') + + +# Helpers. These are called by other functions rather than directly. + +def upload_tar_from_git(): + "Create an archive from the current Git branch and upload it." + require('release', provided_by=[deploy, setup]) + local('git archive --format=tar HEAD | gzip > %(release)s.tar.gz' % env) + run('mkdir -p %(project_path)s/releases/%(release)s' % env) + put('%(release)s.tar.gz' % env, '%(project_path)s/packages/' % env) + run('cd %(project_path)s/releases/%(release)s && tar zxf ../../packages/%(release)s.tar.gz' % env) + local('rm %(release)s.tar.gz' % env) + +def upload_local_settings(): + "Upload the appropriate local settings file." + require('release', provided_by=[deploy, setup]) + put('deploy/settings-%(host)s.py' % env, + '%(project_path)s/releases/%(release)s/%(project_name)s/settings_local.py' % env) + +def upload_deploy_info(): + "Upload information about the version and time of deployment." + require('release', provided_by=[deploy, setup]) + with open('%(project_name)s/templates/version.txt' % env, 'wb') as f: + call(['git', 'rev-parse', 'HEAD'], stdout=f) + with open('%(project_name)s/templates/time-deployed.txt' % env, 'wb') as f: + f.write(datetime.now().strftime('%Y-%m-%d %H:%M')) + for filename in ['version.txt', 'time-deployed.txt']: + put(('%(project_name)s/templates/' % env) + filename, + ('%(project_path)s/releases/%(release)s/%(project_name)s/templates/' % env) + filename) + +def install_requirements(): + "Install the required packages from the requirements file using pip" + require('release', provided_by=[deploy, setup]) + run('export SAVED_PIP_VIRTUALENV_BASE=$PIP_VIRTUALENV_BASE; unset PIP_VIRTUALENV_BASE; ' + + 'cd %(project_path)s; ./bin/pip install -E . -r ./releases/%(release)s/requirements.txt; ' % env + + 'export PIP_VIRTUALENV_BASE=$SAVED_PIP_VIRTUALENV_BASE; unset SAVED_PIP_VIRTUALENV_BASE') + +def symlink_system_packages(): + "Create symlinks to system site-packages." + require('site_packages', provided_by=[dev]) + require('project_path') + site_packages = env.project_path + '/lib/python2.7/site-packages' + with cd(site_packages): + with open('requirements.txt') as reqs: + for line in reqs: + if line.startswith('# symlink: '): + found = False + for sys_site_packages in env.site_packages: + target = sys_site_packages + '/' + line[11:-1] + if exists(target): + run('ln -f -s %s' % target) + found = True + if not found: + abort('Missing %s' % target) + +def install_site(): + "Add the virtualhost file to apache." + require('release', provided_by=[deploy, setup]) + put('deploy/vhost-%(host)s.conf' % env, + '%(project_path)s/vhost-%(host)s.conf.tmp' % env) + sudo('cd %(project_path)s; mv -f vhost-%(host)s.conf.tmp %(vhosts_path)s/vhost-%(host)s.conf' % env, pty=True) + +def symlink_current_release(): + "Symlink our current release." + require('release', provided_by=[deploy, setup]) + with cd(env.project_path): + run('rm releases/previous; mv releases/current releases/previous;') + run('ln -s %(release)s releases/current' % env) + +def migrate(): + "Update the database" + require('hosts', provided_by=[dev]) + require('project_path') + with cd('%(project_path)s/releases/current' % env): + run('../../bin/python manage.py syncdb --noinput') + for app in [ 'main', 'djotero', 'refine', 'reversion' ]: + run('../../bin/python manage.py migrate --noinput %s' % app) + +def collect_static(): + "Collect static files" + require('hosts', provided_by=[dev]) + require('project_path') + with cd('%(project_path)s/releases/current' % env): + run('../../bin/python manage.py collectstatic --noinput') + +def restart_webserver(): + "Restart the web server." + sudo('apachectl restart', pty=True) diff --git a/fabfile.py b/fabfile.py index 4f5b3623..9561ae78 100644 --- a/fabfile.py +++ b/fabfile.py @@ -1,221 +1,38 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- +from fabric.api import env, local +from fabric.decorators import task, runs_once -import os -from time import sleep -from fabric.api import * -from fabric.contrib.console import confirm -from fabric.contrib.files import exists -from fabric.decorators import task -from fabric.utils import abort -from fabfile_local import * -from subprocess import call -from datetime import datetime +import fileinput +import random -# Globals +import deploy env.project_name = 'editorsnotes' -# Environments - -@task -def beta(): - "Use the beta-testing webserver." - env.hosts = ['beta.editorsnotes.org'] - env.project_path = '/db/projects/%(project_name)s-beta' % env - env.vhosts_path = '/etc/httpd/sites.d' - env.python = '/usr/bin/python2.7' - env.site_packages = ['/usr/lib64/python2.7/site-packages', - '/usr/lib/python2.7/site-packages'] - -@task -def pro(): - "Use the production webserver." - env.hosts = ['editorsnotes.org'] - env.project_path = '/db/projects/%(project_name)s' % env - env.vhosts_path = '/etc/httpd/sites.d' - env.python = '/usr/bin/python2.7' - env.site_packages = ['/usr/lib64/python2.7/site-packages', - '/usr/lib/python2.7/site-packages'] - -# Tasks - @task def test(): "Run the test suite locally." local("python manage.py test" % env) - -@task -def test_remote(): - "Run the test suite remotely." - require('hosts', provided_by=[dev]) - require('project_path') - run('cd %(project_path)s/releases/current; ../../bin/python manage.py test' % env) - -@task -def setup(): - """ - Setup a fresh virtualenv as well as a few useful directories, then - run a full deployment. - """ - require('hosts', provided_by=[dev]) - require('project_path') - run('mkdir -p %(project_path)s' % env) - with cd(env.project_path): - run('virtualenv -p %(python)s --no-site-packages .' % env) - run('mkdir -p logs; mkdir -p releases; mkdir -p shared; mkdir -p packages' % env) - run('cd releases; touch none; ln -sf none current; ln -sf none previous') - deploy() - -@task -def deploy(): - """ - Deploy the latest version of the site to the servers, install any - required third party modules, install the virtual host and then - restart the webserver. - """ - require('hosts', provided_by=[dev]) - require('project_path') - import time - env.release = time.strftime('%Y%m%d%H%M%S') - upload_tar_from_git() - upload_local_settings() - upload_deploy_info() - symlink_system_packages() - install_requirements() - install_site() - symlink_current_release() - migrate() - collect_static() - restart_webserver() - sleep(2) - try: - type(env.gnome) - local('gnome-open http://%(host)s/' % env) - except: - local('open http://%(host)s/' % env) - -@task -def deploy_version(version): - "Specify a specific version to be made live." - require('hosts', provided_by=[dev]) - require('project_path') - env.version = version - with cd(env.project_path): - run('rm releases/previous; mv releases/current releases/previous') - run('ln -s %(version)s releases/current' % env) - restart_webserver() - -@task -def rollback(): - """ - Limited rollback capability. Simple loads the previously current - version of the code. Rolling back again will swap between the two. - """ - require('hosts', provided_by=[dev]) - require('project_path') - with cd(env.project_path): - run('mv releases/current releases/_previous;') - run('mv releases/previous releases/current;') - run('mv releases/_previous releases/previous;') - restart_webserver() @task -def clean(): - "Clean out old packages and releases." - require('hosts', provided_by=[dev]) - require('project_path') - if (confirm('Are you sure you want to delete everything on %(host)s?' % env, - default=False)): - with cd(env.project_path): - run('rm -rf packages; rm -rf releases') - run('mkdir -p packages; mkdir -p releases') - run('cd releases; touch none; ln -sf none current; ln -sf none previous') - - -# Helpers. These are called by other functions rather than directly. - -def upload_tar_from_git(): - "Create an archive from the current Git branch and upload it." - require('release', provided_by=[deploy, setup]) - local('git archive --format=tar HEAD | gzip > %(release)s.tar.gz' % env) - run('mkdir -p %(project_path)s/releases/%(release)s' % env) - put('%(release)s.tar.gz' % env, '%(project_path)s/packages/' % env) - run('cd %(project_path)s/releases/%(release)s && tar zxf ../../packages/%(release)s.tar.gz' % env) - local('rm %(release)s.tar.gz' % env) - -def upload_local_settings(): - "Upload the appropriate local settings file." - require('release', provided_by=[deploy, setup]) - put('deploy/settings-%(host)s.py' % env, - '%(project_path)s/releases/%(release)s/%(project_name)s/settings_local.py' % env) - -def upload_deploy_info(): - "Upload information about the version and time of deployment." - require('release', provided_by=[deploy, setup]) - with open('%(project_name)s/templates/version.txt' % env, 'wb') as f: - call(['git', 'rev-parse', 'HEAD'], stdout=f) - with open('%(project_name)s/templates/time-deployed.txt' % env, 'wb') as f: - f.write(datetime.now().strftime('%Y-%m-%d %H:%M')) - for filename in ['version.txt', 'time-deployed.txt']: - put(('%(project_name)s/templates/' % env) + filename, - ('%(project_path)s/releases/%(release)s/%(project_name)s/templates/' % env) + filename) - -def install_requirements(): - "Install the required packages from the requirements file using pip" - require('release', provided_by=[deploy, setup]) - run('export SAVED_PIP_VIRTUALENV_BASE=$PIP_VIRTUALENV_BASE; unset PIP_VIRTUALENV_BASE; ' + - 'cd %(project_path)s; ./bin/pip install -E . -r ./releases/%(release)s/requirements.txt; ' % env + - 'export PIP_VIRTUALENV_BASE=$SAVED_PIP_VIRTUALENV_BASE; unset SAVED_PIP_VIRTUALENV_BASE') - -def symlink_system_packages(): - "Create symlinks to system site-packages." - require('site_packages', provided_by=[dev]) - require('project_path') - site_packages = env.project_path + '/lib/python2.7/site-packages' - with cd(site_packages): - with open('requirements.txt') as reqs: - for line in reqs: - if line.startswith('# symlink: '): - found = False - for sys_site_packages in env.site_packages: - target = sys_site_packages + '/' + line[11:-1] - if exists(target): - run('ln -f -s %s' % target) - found = True - if not found: - abort('Missing %s' % target) - -def install_site(): - "Add the virtualhost file to apache." - require('release', provided_by=[deploy, setup]) - put('deploy/vhost-%(host)s.conf' % env, - '%(project_path)s/vhost-%(host)s.conf.tmp' % env) - sudo('cd %(project_path)s; mv -f vhost-%(host)s.conf.tmp %(vhosts_path)s/vhost-%(host)s.conf' % env, pty=True) - -def symlink_current_release(): - "Symlink our current release." - require('release', provided_by=[deploy, setup]) - with cd(env.project_path): - run('rm releases/previous; mv releases/current releases/previous;') - run('ln -s %(release)s releases/current' % env) - -def migrate(): - "Update the database" - require('hosts', provided_by=[dev]) - require('project_path') - with cd('%(project_path)s/releases/current' % env): - run('../../bin/python manage.py syncdb --noinput') - for app in [ 'main', 'djotero', 'refine', 'reversion' ]: - run('../../bin/python manage.py migrate --noinput %s' % app) +@runs_once +def make_settings(): + """ + Generate a local settings file. -def collect_static(): - "Collect static files" - require('hosts', provided_by=[dev]) - require('project_path') - with cd('%(project_path)s/releases/current' % env): - run('../../bin/python manage.py collectstatic --noinput') - -def restart_webserver(): - "Restart the web server." - sudo('apachectl restart', pty=True) + Without any arguments, this file will go in editorsnotes/settings_local.py. + If the function is passed an argument that defines env.hosts, this file will + be placed in this directory with the name settings-{host}.py + """ + to_create = (['settings-{}.py'.format(host) for host in env.hosts] + or ['editorsnotes/settings_local.py']) + + for settings_file in to_create: + secret_key = generate_secret_key() + local('cp -n editorsnotes/example-settings_local.py {}'.format(settings_file)) + for line in fileinput.input(settings_file, inplace=True): + print line.replace("SECRET_KEY = ''", + "SECRET_KEY = '{}'".format(secret_key)), + +def generate_secret_key(): + SECRET_CHARS = 'abcdefghijklmnopqrstuvwxyz1234567890-=!@#$$%^&&*()_+' + return ''.join([random.choice(SECRET_CHARS) for i in range(50)]) diff --git a/fabfile_test.py b/fabfile_test.py deleted file mode 100644 index 2da2e931..00000000 --- a/fabfile_test.py +++ /dev/null @@ -1,32 +0,0 @@ -from fabric.api import local -from fabric.contrib import django, files - -import fileinput -import random -import sys - -django.project('editorsnotes') - -def generate_secret_key(): - SECRET_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*_+=-" - return ''.join([random.choice(SECRET_CHARS) for i in range(50)]) - -def make_settings(): - local('cp -n editorsnotes/example-settings_local.py editorsnotes/settings_local.py') - from django.conf import settings - if not settings.SECRET_KEY: - files.sed('editorsnotes/settings_local.py', - "SECRET_KEY = ''", - "SECRET_KEY = '%s'" % generate_secret_key()) - -def make_virtualenv(): - local('virtualenv .') - local('./bin/pip install -r requirements.txt') - -def collect_static(): - local('./bin/python manage.py collectstatic --noinput -v 0') - -def setup(): - make_virtualenv() - make_settings() - collect_static() From 5595bc3f5c57ae5b8044bf94c5088017dd303fb1 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 12:42:53 -0800 Subject: [PATCH 08/31] Local fabric command to set up a dev environment --- fabfile.py | 61 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/fabfile.py b/fabfile.py index 9561ae78..f768c827 100644 --- a/fabfile.py +++ b/fabfile.py @@ -1,18 +1,35 @@ -from fabric.api import env, local +from fabric.api import env, local, lcd from fabric.decorators import task, runs_once +from fabric.utils import abort import fileinput +import os import random import deploy +PROJ_ROOT = os.path.normpath(os.path.join(env.real_fabfile, '..')) env.project_name = 'editorsnotes' +@task +def setup(): + "Set up a local development environment" + make_settings() + make_virtual_env() + symlink_packages() + collect_static() + @task def test(): "Run the test suite locally." local("python manage.py test" % env) +@task +def runserver(): + "Run the development server" + with lcd(PROJ_ROOT): + local('./bin/python manage.py runserver') + @task @runs_once def make_settings(): @@ -21,17 +38,47 @@ def make_settings(): Without any arguments, this file will go in editorsnotes/settings_local.py. If the function is passed an argument that defines env.hosts, this file will - be placed in this directory with the name settings-{host}.py + be placed in the deploy directory with the name settings-{host}.py """ - to_create = (['settings-{}.py'.format(host) for host in env.hosts] + to_create = (['deploy/settings-{}.py'.format(host) for host in env.hosts] or ['editorsnotes/settings_local.py']) for settings_file in to_create: secret_key = generate_secret_key() - local('cp -n editorsnotes/example-settings_local.py {}'.format(settings_file)) - for line in fileinput.input(settings_file, inplace=True): - print line.replace("SECRET_KEY = ''", - "SECRET_KEY = '{}'".format(secret_key)), + with lcd(PROJ_ROOT): + local('cp -n editorsnotes/example-settings_local.py {}'.format(settings_file)) + for line in fileinput.input(settings_file, inplace=True): + print line.replace("SECRET_KEY = ''", + "SECRET_KEY = '{}'".format(secret_key)), + +def make_virtual_env(): + "Make a virtual environment for local dev use" + with lcd(PROJ_ROOT): + local('virtualenv .') + local('./bin/pip install -r requirements.txt') + +def symlink_packages(): + "Symlink python packages not installed with pip" + try: + import xapian + except ImportError: + abort('Install "xapian" python package in order to continue.') + + try: + import psycopg2 + except ImportError: + abort('Install "psycopg2" python package in order to continue.') + + packages = os.path.join(PROJ_ROOT, 'lib', 'python2.7', 'site-packages') + xapian_path = os.path.normpath(os.path.join(xapian.__file__, '..')) + psycopg2_path = os.path.normpath(os.path.join(psycopg2.__file__, '..')) + + local('ln -f -s {} {}'.format(xapian_path, packages)) + local('ln -f -s {} {}'.format(psycopg2_path, packages)) + +def collect_static(): + with lcd(PROJ_ROOT): + local('./bin/python manage.py collectstatic --noinput -v0') def generate_secret_key(): SECRET_CHARS = 'abcdefghijklmnopqrstuvwxyz1234567890-=!@#$$%^&&*()_+' From a6511ead6807d49990fb1601debb38edd73a812b Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 12:47:04 -0800 Subject: [PATCH 09/31] Use os.path.dirname where applicable I'm a dummy --- fabfile.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fabfile.py b/fabfile.py index f768c827..32bd59b7 100644 --- a/fabfile.py +++ b/fabfile.py @@ -8,7 +8,7 @@ import deploy -PROJ_ROOT = os.path.normpath(os.path.join(env.real_fabfile, '..')) +PROJ_ROOT = os.path.dirname(env.real_fabfile) env.project_name = 'editorsnotes' @task @@ -70,8 +70,8 @@ def symlink_packages(): abort('Install "psycopg2" python package in order to continue.') packages = os.path.join(PROJ_ROOT, 'lib', 'python2.7', 'site-packages') - xapian_path = os.path.normpath(os.path.join(xapian.__file__, '..')) - psycopg2_path = os.path.normpath(os.path.join(psycopg2.__file__, '..')) + xapian_path = os.path.dirname(xapian.__file__) + psycopg2_path = os.path.dirname(psycopg2.__file__) local('ln -f -s {} {}'.format(xapian_path, packages)) local('ln -f -s {} {}'.format(psycopg2_path, packages)) From e2769589fd6bd533ed81a18609f5cbe19363beed Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 14:30:02 -0800 Subject: [PATCH 10/31] Add installation instructions to README --- README | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README b/README index e69de29b..52af9468 100644 --- a/README +++ b/README @@ -0,0 +1,15 @@ +## Installation +Editors' Notes requires Python 2.7 and PostgreSQL. + +To set up a local development environment, install [Fabric](http://fabfile.org/) +and make sure you have the following dependencies + +* python2.7-dev +* libxml2 +* libxslt +* psycopg2 +* python-xapian + +Run the command `fab setup` inside the project directory and edit the generated +"editorsnotes/settings_local.py" file with your database information. Finally, +run the development server with `fab runserver`. From 5a4dabf94ee9cd6d809c31d98a62befff57f7425 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 14:36:37 -0800 Subject: [PATCH 11/31] readme as markdown --- README => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README => README.md (100%) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md From 6933033f5c1bbea073af578adb7979f410d93c43 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 18:39:31 -0800 Subject: [PATCH 12/31] Clean up deployment fabric commands a bit --- deploy/__init__.py | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/deploy/__init__.py b/deploy/__init__.py index 0e8e7594..91e72936 100644 --- a/deploy/__init__.py +++ b/deploy/__init__.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- import os +import sys from time import sleep from fabric.api import * from fabric.contrib.console import confirm @@ -41,8 +42,7 @@ def pro(): @task def test_remote(): "Run the test suite remotely." - require('hosts', provided_by=[dev]) - require('project_path') + require('hosts', 'project_path', provided_by=[dev]) run('cd %(project_path)s/releases/current; ../../bin/python manage.py test' % env) @task @@ -51,12 +51,11 @@ def setup(): Setup a fresh virtualenv as well as a few useful directories, then run a full deployment. """ - require('hosts', provided_by=[dev]) - require('project_path') + require('hosts', 'project_path', provided_by=[dev]) run('mkdir -p %(project_path)s' % env) with cd(env.project_path): run('virtualenv -p %(python)s --no-site-packages .' % env) - run('mkdir -p logs; mkdir -p releases; mkdir -p shared; mkdir -p packages' % env) + run('mkdir -p logs releases shared packages' % env) run('cd releases; touch none; ln -sf none current; ln -sf none previous') deploy() @@ -67,8 +66,7 @@ def deploy(): required third party modules, install the virtual host and then restart the webserver. """ - require('hosts', provided_by=[dev]) - require('project_path') + require('hosts', 'project_path', provided_by=[dev]) import time env.release = time.strftime('%Y%m%d%H%M%S') upload_tar_from_git() @@ -82,17 +80,13 @@ def deploy(): collect_static() restart_webserver() sleep(2) - try: - type(env.gnome) - local('gnome-open http://%(host)s/' % env) - except: - local('open http://%(host)s/' % env) + local('%s http://%s/' % ( + 'xdg-open' if sys.platform.startswith('linux') else 'open', env['host'])) @task def deploy_version(version): "Specify a specific version to be made live." - require('hosts', provided_by=[dev]) - require('project_path') + require('hosts', 'project_path', provided_by=[dev]) env.version = version with cd(env.project_path): run('rm releases/previous; mv releases/current releases/previous') @@ -102,11 +96,10 @@ def deploy_version(version): @task def rollback(): """ - Limited rollback capability. Simple loads the previously current + Limited rollback capability. Simply loads the previously current version of the code. Rolling back again will swap between the two. """ - require('hosts', provided_by=[dev]) - require('project_path') + require('hosts', 'project_path', provided_by=[dev]) with cd(env.project_path): run('mv releases/current releases/_previous;') run('mv releases/previous releases/current;') @@ -116,8 +109,7 @@ def rollback(): @task def clean(): "Clean out old packages and releases." - require('hosts', provided_by=[dev]) - require('project_path') + require('hosts', 'project_path', provided_by=[dev]) if (confirm('Are you sure you want to delete everything on %(host)s?' % env, default=False)): with cd(env.project_path): @@ -163,8 +155,7 @@ def install_requirements(): def symlink_system_packages(): "Create symlinks to system site-packages." - require('site_packages', provided_by=[dev]) - require('project_path') + require('site_packages', 'project_path', provided_by=[dev]) site_packages = env.project_path + '/lib/python2.7/site-packages' with cd(site_packages): with open('requirements.txt') as reqs: @@ -195,8 +186,7 @@ def symlink_current_release(): def migrate(): "Update the database" - require('hosts', provided_by=[dev]) - require('project_path') + require('hosts', 'project_path', provided_by=[dev]) with cd('%(project_path)s/releases/current' % env): run('../../bin/python manage.py syncdb --noinput') for app in [ 'main', 'djotero', 'refine', 'reversion' ]: @@ -204,8 +194,7 @@ def migrate(): def collect_static(): "Collect static files" - require('hosts', provided_by=[dev]) - require('project_path') + require('hosts', 'project_path', provided_by=[dev]) with cd('%(project_path)s/releases/current' % env): run('../../bin/python manage.py collectstatic --noinput') From 6b43dd232233e91d4f5048aa15373d543f9d63cc Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 19:07:03 -0800 Subject: [PATCH 13/31] Better symlinking in fabfiles --- deploy/__init__.py | 33 +++++++++++++++------------------ fabfile.py | 31 +++++++++++++++---------------- requirements.txt | 2 +- 3 files changed, 31 insertions(+), 35 deletions(-) diff --git a/deploy/__init__.py b/deploy/__init__.py index 91e72936..df14060d 100644 --- a/deploy/__init__.py +++ b/deploy/__init__.py @@ -24,8 +24,6 @@ def beta(): env.project_path = '/db/projects/%(project_name)s-beta' % env env.vhosts_path = '/etc/httpd/sites.d' env.python = '/usr/bin/python2.7' - env.site_packages = ['/usr/lib64/python2.7/site-packages', - '/usr/lib/python2.7/site-packages'] @task def pro(): @@ -34,8 +32,6 @@ def pro(): env.project_path = '/db/projects/%(project_name)s' % env env.vhosts_path = '/etc/httpd/sites.d' env.python = '/usr/bin/python2.7' - env.site_packages = ['/usr/lib64/python2.7/site-packages', - '/usr/lib/python2.7/site-packages'] # Tasks @@ -155,20 +151,21 @@ def install_requirements(): def symlink_system_packages(): "Create symlinks to system site-packages." - require('site_packages', 'project_path', provided_by=[dev]) - site_packages = env.project_path + '/lib/python2.7/site-packages' - with cd(site_packages): - with open('requirements.txt') as reqs: - for line in reqs: - if line.startswith('# symlink: '): - found = False - for sys_site_packages in env.site_packages: - target = sys_site_packages + '/' + line[11:-1] - if exists(target): - run('ln -f -s %s' % target) - found = True - if not found: - abort('Missing %s' % target) + require('python', 'project_path', provided_by=[dev]) + missing = [] + requirements = (req.rstrip().replace('# symlink: ', '') + for req in open('requirements.txt', 'r') + if req.startswith('# symlink: ')) + for req in requirements: + req_file = run('%s -c "import os, %s; print os.path.dirname(%s.__file__)"' % ( + env.python, req, req), warn_only=True, quiet=True) + if req_file.failed: + missing.append(req) + continue + with cd(os.path.join(env.project_path, 'lib', 'python2.7', 'site-packages')): + run('ln -f -s %s' % req_file) + if missing: + abort('Missing python packages: %s' % ', '.join(missing)) def install_site(): "Add the virtualhost file to apache." diff --git a/fabfile.py b/fabfile.py index 32bd59b7..c2fa773e 100644 --- a/fabfile.py +++ b/fabfile.py @@ -3,6 +3,7 @@ from fabric.utils import abort import fileinput +import importlib import os import random @@ -59,22 +60,20 @@ def make_virtual_env(): def symlink_packages(): "Symlink python packages not installed with pip" - try: - import xapian - except ImportError: - abort('Install "xapian" python package in order to continue.') - - try: - import psycopg2 - except ImportError: - abort('Install "psycopg2" python package in order to continue.') - - packages = os.path.join(PROJ_ROOT, 'lib', 'python2.7', 'site-packages') - xapian_path = os.path.dirname(xapian.__file__) - psycopg2_path = os.path.dirname(psycopg2.__file__) - - local('ln -f -s {} {}'.format(xapian_path, packages)) - local('ln -f -s {} {}'.format(psycopg2_path, packages)) + missing = [] + requirements = (req.rstrip().replace('# symlink: ', '') + for req in open('requirements.txt', 'r') + if req.startswith('# symlink: ')) + for req in requirements: + try: + module = importlib.import_module(req) + except ImportError: + missing.append(req) + continue + with lcd(os.path.join(PROJ_ROOT, 'lib', 'python2.7', 'site-packages')): + local('ln -f -s {}'.format(os.path.dirname(module.__file__))) + if missing: + abort('Missing python packages: {}'.format(', '.join(missing))) def collect_static(): with lcd(PROJ_ROOT): diff --git a/requirements.txt b/requirements.txt index fb0d2929..a6f523dc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,5 +12,5 @@ pytz==2011b refine-client==0.2.1 # Symlinks to system packages -# symlink: xapian/ +# symlink: xapian # symlink: psycopg2 From b53e957dddb578acf8c7e958c51be5c147f19f77 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 19:11:25 -0800 Subject: [PATCH 14/31] Update readme --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 52af9468..c7114dcd 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,11 @@ Editors' Notes requires Python 2.7 and PostgreSQL. To set up a local development environment, install [Fabric](http://fabfile.org/) and make sure you have the following dependencies -* python2.7-dev * libxml2 * libxslt * psycopg2 * python-xapian Run the command `fab setup` inside the project directory and edit the generated -"editorsnotes/settings_local.py" file with your database information. Finally, +"editorsnotes/settings\_local.py" file with your database information. Finally, run the development server with `fab runserver`. From c7bbe02d9a0f230be647581debc70b8ad02093ad Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 19:13:57 -0800 Subject: [PATCH 15/31] Add link to xapian project in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7114dcd..b39ebb3a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ and make sure you have the following dependencies * libxml2 * libxslt * psycopg2 -* python-xapian +* [xapian](http://xapian.org/download) with python bindings Run the command `fab setup` inside the project directory and edit the generated "editorsnotes/settings\_local.py" file with your database information. Finally, From 7903d68f7061ef7f369fe3594c068d04bfb9a407 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 20:40:13 -0800 Subject: [PATCH 16/31] Make path to XHTML field absolute in old migrations --- editorsnotes/main/migrations/0001_initial.py | 8 ++++---- .../0002_auto__add_field_reference_ordering.py | 4 ++-- .../0003_auto__add_field_reference_type.py | 4 ++-- .../main/migrations/0004_auto__add_userprofile.py | 4 ++-- .../0005_auto__add_source__add_citation.py | 8 ++++---- .../migrations/0006_references_to_citations.py | 6 +++--- .../main/migrations/0007_auto__del_reference.py | 6 +++--- .../0008_auto__add_transcript__add_footnote.py | 12 ++++++------ .../0009_auto__add_field_termassignment_main.py | 8 ++++---- .../0010_auto__add_field_term_article.py | 8 ++++---- .../main/migrations/0011_designate_articles.py | 8 ++++---- .../0012_auto__del_field_termassignment_main.py | 8 ++++---- .../main/migrations/0013_auto__add_topic.py | 8 ++++---- .../migrations/0014_auto__add_topicassignment.py | 8 ++++---- ...eld_alias_topic__add_unique_alias_topic_name.py | 8 ++++---- .../main/migrations/0016_terms_to_topics.py | 8 ++++---- .../0017_add_topicassignment_unique_index.py | 8 ++++---- ...del_term__del_field_alias_term__del_unique_a.py | 8 ++++---- .../main/migrations/0019_chg_field_alias_topic.py | 8 ++++---- .../main/migrations/0020_auto__add_scan.py | 8 ++++---- .../migrations/0021_auto__del_field_note_type.py | 8 ++++---- ...nment_content_type__add_field_topicassignmen.py | 8 ++++---- .../0023_make_topic_assignment_generic.py | 8 ++++---- ...nment_note__del_unique_topicassignment_topic.py | 8 ++++---- .../0025_auto__add_field_topic_relatedtopics.py | 8 ++++---- ...n_content_type__add_field_citation_object_id.py | 8 ++++---- .../main/migrations/0027_make_citation_generic.py | 8 ++++---- .../0028_auto__del_field_citation_note.py | 8 ++++---- .../0029_auto__add_field_topic_summary.py | 10 +++++----- .../main/migrations/0030_article_to_summary.py | 10 +++++----- .../0031_auto__del_field_topic_article.py | 10 +++++----- ...c_last_updater__add_field_topic_last_updated.py | 10 +++++----- .../migrations/0033_remove_topic_self_relations.py | 10 +++++----- .../migrations/0034_symmetrize_related_topics.py | 10 +++++----- .../migrations/0035_auto__add_field_note_title.py | 10 +++++----- .../main/migrations/0036_assign_note_titles.py | 10 +++++----- .../migrations/0037_auto__add_unique_note_title.py | 10 +++++----- ..._last_updater__add_field_transcript_last_upd.py | 10 +++++----- .../main/migrations/0039_init_last_update.py | 10 +++++----- ..._last_updated__chg_field_transcript_last_upd.py | 10 +++++----- ...eld_transcript_document__add_field_scan_docu.py | 14 +++++++------- .../main/migrations/0042_sources_to_documents.py | 12 ++++++------ ..._source__del_field_scan_source__del_field_ci.py | 12 ++++++------ .../main/migrations/0044_auto__del_source.py | 12 ++++++------ ..._document__chg_field_scan_document__chg_fiel.py | 10 +++++----- .../0046_auto__add_field_citation_type.py | 10 +++++----- .../main/migrations/0047_move_citation_type.py | 10 +++++----- .../0048_auto__del_field_document_type.py | 10 +++++----- ..._content__chg_field_footnote_content__chg_fi.py | 10 +++++----- 49 files changed, 216 insertions(+), 216 deletions(-) diff --git a/editorsnotes/main/migrations/0001_initial.py b/editorsnotes/main/migrations/0001_initial.py index ee51a2ab..ad12c8b0 100644 --- a/editorsnotes/main/migrations/0001_initial.py +++ b/editorsnotes/main/migrations/0001_initial.py @@ -13,7 +13,7 @@ def forwards(self, orm): ('last_updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('creator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_note_set', to=orm['auth.User'])), - ('content', self.gf('main.fields.XHTMLField')()), + ('content', self.gf('editorsnotes.main.fields.XHTMLField')()), ('last_updater', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_to_update_note_set', to=orm['auth.User'])), ('type', self.gf('django.db.models.fields.CharField')(default='N', max_length=1)), ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), @@ -24,7 +24,7 @@ def forwards(self, orm): db.create_table('main_reference', ( ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('url', self.gf('django.db.models.fields.URLField')(max_length=200, blank=True)), - ('citation', self.gf('main.fields.XHTMLField')()), + ('citation', self.gf('editorsnotes.main.fields.XHTMLField')()), ('note', self.gf('django.db.models.fields.related.ForeignKey')(related_name='references', to=orm['main.Note'])), ('creator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_reference_set', to=orm['auth.User'])), ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), @@ -139,7 +139,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -150,7 +150,7 @@ def backwards(self, orm): }, 'main.reference': { 'Meta': {'object_name': 'Reference'}, - 'citation': ('main.fields.XHTMLField', [], {}), + 'citation': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_reference_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0002_auto__add_field_reference_ordering.py b/editorsnotes/main/migrations/0002_auto__add_field_reference_ordering.py index 7b96ade3..dc148aa1 100644 --- a/editorsnotes/main/migrations/0002_auto__add_field_reference_ordering.py +++ b/editorsnotes/main/migrations/0002_auto__add_field_reference_ordering.py @@ -65,7 +65,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -76,7 +76,7 @@ def backwards(self, orm): }, 'main.reference': { 'Meta': {'object_name': 'Reference'}, - 'citation': ('main.fields.XHTMLField', [], {}), + 'citation': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_reference_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0003_auto__add_field_reference_type.py b/editorsnotes/main/migrations/0003_auto__add_field_reference_type.py index aedb2fe3..d0dba9ef 100644 --- a/editorsnotes/main/migrations/0003_auto__add_field_reference_type.py +++ b/editorsnotes/main/migrations/0003_auto__add_field_reference_type.py @@ -65,7 +65,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -76,7 +76,7 @@ def backwards(self, orm): }, 'main.reference': { 'Meta': {'object_name': 'Reference'}, - 'citation': ('main.fields.XHTMLField', [], {}), + 'citation': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_reference_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0004_auto__add_userprofile.py b/editorsnotes/main/migrations/0004_auto__add_userprofile.py index c60e9951..914c8b94 100644 --- a/editorsnotes/main/migrations/0004_auto__add_userprofile.py +++ b/editorsnotes/main/migrations/0004_auto__add_userprofile.py @@ -69,7 +69,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -80,7 +80,7 @@ def backwards(self, orm): }, 'main.reference': { 'Meta': {'object_name': 'Reference'}, - 'citation': ('main.fields.XHTMLField', [], {}), + 'citation': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_reference_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0005_auto__add_source__add_citation.py b/editorsnotes/main/migrations/0005_auto__add_source__add_citation.py index 7a869fd7..1d5d8643 100644 --- a/editorsnotes/main/migrations/0005_auto__add_source__add_citation.py +++ b/editorsnotes/main/migrations/0005_auto__add_source__add_citation.py @@ -10,7 +10,7 @@ def forwards(self, orm): # Adding model 'Source' db.create_table('main_source', ( - ('description', self.gf('main.fields.XHTMLField')()), + ('description', self.gf('editorsnotes.main.fields.XHTMLField')()), ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('ordering', self.gf('django.db.models.fields.CharField')(max_length=32)), ('creator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_source_set', to=orm['auth.User'])), @@ -97,7 +97,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -108,7 +108,7 @@ def backwards(self, orm): }, 'main.reference': { 'Meta': {'object_name': 'Reference'}, - 'citation': ('main.fields.XHTMLField', [], {}), + 'citation': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_reference_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -121,7 +121,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), diff --git a/editorsnotes/main/migrations/0006_references_to_citations.py b/editorsnotes/main/migrations/0006_references_to_citations.py index 8794e772..7ef1b60e 100644 --- a/editorsnotes/main/migrations/0006_references_to_citations.py +++ b/editorsnotes/main/migrations/0006_references_to_citations.py @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -93,7 +93,7 @@ def backwards(self, orm): }, 'main.reference': { 'Meta': {'object_name': 'Reference'}, - 'citation': ('main.fields.XHTMLField', [], {}), + 'citation': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_reference_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -106,7 +106,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), diff --git a/editorsnotes/main/migrations/0007_auto__del_reference.py b/editorsnotes/main/migrations/0007_auto__del_reference.py index bb31c53b..03cb212c 100644 --- a/editorsnotes/main/migrations/0007_auto__del_reference.py +++ b/editorsnotes/main/migrations/0007_auto__del_reference.py @@ -18,7 +18,7 @@ def backwards(self, orm): db.create_table('main_reference', ( ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('url', self.gf('django.db.models.fields.URLField')(max_length=200, blank=True)), - ('citation', self.gf('main.fields.XHTMLField')()), + ('citation', self.gf('editorsnotes.main.fields.XHTMLField')()), ('note', self.gf('django.db.models.fields.related.ForeignKey')(related_name='references', to=orm['main.Note'])), ('ordering', self.gf('django.db.models.fields.CharField')(max_length=5)), ('creator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_reference_set', to=orm['auth.User'])), @@ -84,7 +84,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -97,7 +97,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), diff --git a/editorsnotes/main/migrations/0008_auto__add_transcript__add_footnote.py b/editorsnotes/main/migrations/0008_auto__add_transcript__add_footnote.py index 6b98a1f3..f8f508b7 100644 --- a/editorsnotes/main/migrations/0008_auto__add_transcript__add_footnote.py +++ b/editorsnotes/main/migrations/0008_auto__add_transcript__add_footnote.py @@ -14,7 +14,7 @@ def forwards(self, orm): ('creator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_transcript_set', to=orm['auth.User'])), ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('source', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['main.Source'], unique=True)), - ('content', self.gf('main.fields.XHTMLField')()), + ('content', self.gf('editorsnotes.main.fields.XHTMLField')()), )) db.send_create_signal('main', ['Transcript']) @@ -24,7 +24,7 @@ def forwards(self, orm): ('creator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_footnote_set', to=orm['auth.User'])), ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('transcript', self.gf('django.db.models.fields.related.ForeignKey')(related_name='footnotes', to=orm['main.Transcript'])), - ('content', self.gf('main.fields.XHTMLField')()), + ('content', self.gf('editorsnotes.main.fields.XHTMLField')()), )) db.send_create_signal('main', ['Footnote']) @@ -94,7 +94,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -102,7 +102,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -115,7 +115,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -139,7 +139,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0009_auto__add_field_termassignment_main.py b/editorsnotes/main/migrations/0009_auto__add_field_termassignment_main.py index 2400e245..f5a915a2 100644 --- a/editorsnotes/main/migrations/0009_auto__add_field_termassignment_main.py +++ b/editorsnotes/main/migrations/0009_auto__add_field_termassignment_main.py @@ -74,7 +74,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -96,7 +96,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -121,7 +121,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0010_auto__add_field_term_article.py b/editorsnotes/main/migrations/0010_auto__add_field_term_article.py index 136fdfb2..f1c51fed 100644 --- a/editorsnotes/main/migrations/0010_auto__add_field_term_article.py +++ b/editorsnotes/main/migrations/0010_auto__add_field_term_article.py @@ -74,7 +74,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -96,7 +96,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -122,7 +122,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0011_designate_articles.py b/editorsnotes/main/migrations/0011_designate_articles.py index 92691f08..21080f43 100644 --- a/editorsnotes/main/migrations/0011_designate_articles.py +++ b/editorsnotes/main/migrations/0011_designate_articles.py @@ -73,7 +73,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -81,7 +81,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -95,7 +95,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -121,7 +121,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0012_auto__del_field_termassignment_main.py b/editorsnotes/main/migrations/0012_auto__del_field_termassignment_main.py index 9f23fca6..3246e00f 100644 --- a/editorsnotes/main/migrations/0012_auto__del_field_termassignment_main.py +++ b/editorsnotes/main/migrations/0012_auto__del_field_termassignment_main.py @@ -74,7 +74,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -96,7 +96,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -121,7 +121,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0013_auto__add_topic.py b/editorsnotes/main/migrations/0013_auto__add_topic.py index 723e1b82..193ceb96 100644 --- a/editorsnotes/main/migrations/0013_auto__add_topic.py +++ b/editorsnotes/main/migrations/0013_auto__add_topic.py @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -90,7 +90,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -104,7 +104,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -138,7 +138,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0014_auto__add_topicassignment.py b/editorsnotes/main/migrations/0014_auto__add_topicassignment.py index bb10e528..c3d36b32 100644 --- a/editorsnotes/main/migrations/0014_auto__add_topicassignment.py +++ b/editorsnotes/main/migrations/0014_auto__add_topicassignment.py @@ -81,7 +81,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -89,7 +89,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -103,7 +103,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -145,7 +145,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0015_auto__add_field_alias_topic__add_unique_alias_topic_name.py b/editorsnotes/main/migrations/0015_auto__add_field_alias_topic__add_unique_alias_topic_name.py index 776b7366..04204a03 100644 --- a/editorsnotes/main/migrations/0015_auto__add_field_alias_topic__add_unique_alias_topic_name.py +++ b/editorsnotes/main/migrations/0015_auto__add_field_alias_topic__add_unique_alias_topic_name.py @@ -81,7 +81,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -89,7 +89,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -104,7 +104,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -146,7 +146,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0016_terms_to_topics.py b/editorsnotes/main/migrations/0016_terms_to_topics.py index 8d9217b5..f6de70ae 100644 --- a/editorsnotes/main/migrations/0016_terms_to_topics.py +++ b/editorsnotes/main/migrations/0016_terms_to_topics.py @@ -84,7 +84,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -92,7 +92,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -107,7 +107,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -149,7 +149,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0017_add_topicassignment_unique_index.py b/editorsnotes/main/migrations/0017_add_topicassignment_unique_index.py index 28448ee1..80fed245 100644 --- a/editorsnotes/main/migrations/0017_add_topicassignment_unique_index.py +++ b/editorsnotes/main/migrations/0017_add_topicassignment_unique_index.py @@ -71,7 +71,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -79,7 +79,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -94,7 +94,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -136,7 +136,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0018_auto__del_termassignment__del_term__del_field_alias_term__del_unique_a.py b/editorsnotes/main/migrations/0018_auto__del_termassignment__del_term__del_field_alias_term__del_unique_a.py index c341b87b..82204cc7 100644 --- a/editorsnotes/main/migrations/0018_auto__del_termassignment__del_term__del_field_alias_term__del_unique_a.py +++ b/editorsnotes/main/migrations/0018_auto__del_termassignment__del_term__del_field_alias_term__del_unique_a.py @@ -107,7 +107,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -115,7 +115,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -129,7 +129,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -154,7 +154,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0019_chg_field_alias_topic.py b/editorsnotes/main/migrations/0019_chg_field_alias_topic.py index 096028e6..bb472201 100644 --- a/editorsnotes/main/migrations/0019_chg_field_alias_topic.py +++ b/editorsnotes/main/migrations/0019_chg_field_alias_topic.py @@ -69,7 +69,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -77,7 +77,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -91,7 +91,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -116,7 +116,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0020_auto__add_scan.py b/editorsnotes/main/migrations/0020_auto__add_scan.py index f05834d9..ab4d0ea1 100644 --- a/editorsnotes/main/migrations/0020_auto__add_scan.py +++ b/editorsnotes/main/migrations/0020_auto__add_scan.py @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -90,7 +90,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -113,7 +113,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -138,7 +138,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0021_auto__del_field_note_type.py b/editorsnotes/main/migrations/0021_auto__del_field_note_type.py index a07c6ae1..38e4bd8d 100644 --- a/editorsnotes/main/migrations/0021_auto__del_field_note_type.py +++ b/editorsnotes/main/migrations/0021_auto__del_field_note_type.py @@ -74,7 +74,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -104,7 +104,7 @@ def backwards(self, orm): 'Meta': {'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -129,7 +129,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0022_auto__add_field_topicassignment_content_type__add_field_topicassignmen.py b/editorsnotes/main/migrations/0022_auto__add_field_topicassignment_content_type__add_field_topicassignmen.py index bf268cd0..7282590a 100644 --- a/editorsnotes/main/migrations/0022_auto__add_field_topicassignment_content_type__add_field_topicassignmen.py +++ b/editorsnotes/main/migrations/0022_auto__add_field_topicassignment_content_type__add_field_topicassignmen.py @@ -80,7 +80,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -88,7 +88,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -110,7 +110,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -137,7 +137,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0023_make_topic_assignment_generic.py b/editorsnotes/main/migrations/0023_make_topic_assignment_generic.py index a6e0ed76..ab3f9c0a 100644 --- a/editorsnotes/main/migrations/0023_make_topic_assignment_generic.py +++ b/editorsnotes/main/migrations/0023_make_topic_assignment_generic.py @@ -76,7 +76,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -84,7 +84,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -106,7 +106,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -133,7 +133,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0024_auto__del_field_topicassignment_note__del_unique_topicassignment_topic.py b/editorsnotes/main/migrations/0024_auto__del_field_topicassignment_note__del_unique_topicassignment_topic.py index 9fdddfaa..8cc6555f 100644 --- a/editorsnotes/main/migrations/0024_auto__del_field_topicassignment_note__del_unique_topicassignment_topic.py +++ b/editorsnotes/main/migrations/0024_auto__del_field_topicassignment_note__del_unique_topicassignment_topic.py @@ -87,7 +87,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -95,7 +95,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -116,7 +116,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -142,7 +142,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0025_auto__add_field_topic_relatedtopics.py b/editorsnotes/main/migrations/0025_auto__add_field_topic_relatedtopics.py index b11a5006..60861dd5 100644 --- a/editorsnotes/main/migrations/0025_auto__add_field_topic_relatedtopics.py +++ b/editorsnotes/main/migrations/0025_auto__add_field_topic_relatedtopics.py @@ -79,7 +79,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -87,7 +87,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -108,7 +108,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -135,7 +135,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0026_auto__add_field_citation_content_type__add_field_citation_object_id.py b/editorsnotes/main/migrations/0026_auto__add_field_citation_content_type__add_field_citation_object_id.py index 1ca775da..c76ec8c4 100644 --- a/editorsnotes/main/migrations/0026_auto__add_field_citation_content_type__add_field_citation_object_id.py +++ b/editorsnotes/main/migrations/0026_auto__add_field_citation_content_type__add_field_citation_object_id.py @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -90,7 +90,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -111,7 +111,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -138,7 +138,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0027_make_citation_generic.py b/editorsnotes/main/migrations/0027_make_citation_generic.py index 1987de17..300948c1 100644 --- a/editorsnotes/main/migrations/0027_make_citation_generic.py +++ b/editorsnotes/main/migrations/0027_make_citation_generic.py @@ -78,7 +78,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -86,7 +86,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -107,7 +107,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -134,7 +134,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0028_auto__del_field_citation_note.py b/editorsnotes/main/migrations/0028_auto__del_field_citation_note.py index 45dd4bc8..7ce02914 100644 --- a/editorsnotes/main/migrations/0028_auto__del_field_citation_note.py +++ b/editorsnotes/main/migrations/0028_auto__del_field_citation_note.py @@ -76,7 +76,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -84,7 +84,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -104,7 +104,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -131,7 +131,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0029_auto__add_field_topic_summary.py b/editorsnotes/main/migrations/0029_auto__add_field_topic_summary.py index 11a3545e..21adac4d 100644 --- a/editorsnotes/main/migrations/0029_auto__add_field_topic_summary.py +++ b/editorsnotes/main/migrations/0029_auto__add_field_topic_summary.py @@ -75,7 +75,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -83,7 +83,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -103,7 +103,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -118,7 +118,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -131,7 +131,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0030_article_to_summary.py b/editorsnotes/main/migrations/0030_article_to_summary.py index c880c8dc..461fd9a0 100644 --- a/editorsnotes/main/migrations/0030_article_to_summary.py +++ b/editorsnotes/main/migrations/0030_article_to_summary.py @@ -83,7 +83,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -91,7 +91,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -111,7 +111,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -126,7 +126,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -139,7 +139,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0031_auto__del_field_topic_article.py b/editorsnotes/main/migrations/0031_auto__del_field_topic_article.py index 566ecddc..8cd545e2 100644 --- a/editorsnotes/main/migrations/0031_auto__del_field_topic_article.py +++ b/editorsnotes/main/migrations/0031_auto__del_field_topic_article.py @@ -75,7 +75,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -83,7 +83,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -103,7 +103,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -117,7 +117,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -130,7 +130,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0032_auto__add_field_topic_last_updater__add_field_topic_last_updated.py b/editorsnotes/main/migrations/0032_auto__add_field_topic_last_updater__add_field_topic_last_updated.py index 4c14fbbc..d3a05d85 100644 --- a/editorsnotes/main/migrations/0032_auto__add_field_topic_last_updater__add_field_topic_last_updated.py +++ b/editorsnotes/main/migrations/0032_auto__add_field_topic_last_updater__add_field_topic_last_updated.py @@ -81,7 +81,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -89,7 +89,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -109,7 +109,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -125,7 +125,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -138,7 +138,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0033_remove_topic_self_relations.py b/editorsnotes/main/migrations/0033_remove_topic_self_relations.py index 3f4098c8..75045513 100644 --- a/editorsnotes/main/migrations/0033_remove_topic_self_relations.py +++ b/editorsnotes/main/migrations/0033_remove_topic_self_relations.py @@ -71,7 +71,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -79,7 +79,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -99,7 +99,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -115,7 +115,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -128,7 +128,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0034_symmetrize_related_topics.py b/editorsnotes/main/migrations/0034_symmetrize_related_topics.py index 794314be..29c8992b 100644 --- a/editorsnotes/main/migrations/0034_symmetrize_related_topics.py +++ b/editorsnotes/main/migrations/0034_symmetrize_related_topics.py @@ -72,7 +72,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -80,7 +80,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -100,7 +100,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -116,7 +116,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -129,7 +129,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0035_auto__add_field_note_title.py b/editorsnotes/main/migrations/0035_auto__add_field_note_title.py index 0669e6e4..d174ebca 100644 --- a/editorsnotes/main/migrations/0035_auto__add_field_note_title.py +++ b/editorsnotes/main/migrations/0035_auto__add_field_note_title.py @@ -75,7 +75,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -83,7 +83,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -104,7 +104,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -120,7 +120,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -133,7 +133,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0036_assign_note_titles.py b/editorsnotes/main/migrations/0036_assign_note_titles.py index 7ab98af7..e470a514 100644 --- a/editorsnotes/main/migrations/0036_assign_note_titles.py +++ b/editorsnotes/main/migrations/0036_assign_note_titles.py @@ -74,7 +74,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -82,7 +82,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -103,7 +103,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -119,7 +119,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -132,7 +132,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0037_auto__add_unique_note_title.py b/editorsnotes/main/migrations/0037_auto__add_unique_note_title.py index 4c6fb2e8..ee26c978 100644 --- a/editorsnotes/main/migrations/0037_auto__add_unique_note_title.py +++ b/editorsnotes/main/migrations/0037_auto__add_unique_note_title.py @@ -75,7 +75,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -83,7 +83,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -104,7 +104,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'ordering': ('django.db.models.fields.CharField', [], {'max_length': '32'}), 'type': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '1'}), @@ -120,7 +120,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -133,7 +133,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0038_auto__add_field_transcript_last_updater__add_field_transcript_last_upd.py b/editorsnotes/main/migrations/0038_auto__add_field_transcript_last_updater__add_field_transcript_last_upd.py index b4046e24..05466d01 100644 --- a/editorsnotes/main/migrations/0038_auto__add_field_transcript_last_updater__add_field_transcript_last_upd.py +++ b/editorsnotes/main/migrations/0038_auto__add_field_transcript_last_updater__add_field_transcript_last_upd.py @@ -129,7 +129,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -139,7 +139,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -160,7 +160,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_source_set'", 'null': 'True', 'to': "orm['auth.User']"}), @@ -178,7 +178,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -191,7 +191,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0039_init_last_update.py b/editorsnotes/main/migrations/0039_init_last_update.py index 38b6169c..41b018d8 100644 --- a/editorsnotes/main/migrations/0039_init_last_update.py +++ b/editorsnotes/main/migrations/0039_init_last_update.py @@ -81,7 +81,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -91,7 +91,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -112,7 +112,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_source_set'", 'null': 'True', 'to': "orm['auth.User']"}), @@ -130,7 +130,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -143,7 +143,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0040_auto__chg_field_transcript_last_updated__chg_field_transcript_last_upd.py b/editorsnotes/main/migrations/0040_auto__chg_field_transcript_last_updated__chg_field_transcript_last_upd.py index 3ab3e5f5..6d485aa9 100644 --- a/editorsnotes/main/migrations/0040_auto__chg_field_transcript_last_updated__chg_field_transcript_last_upd.py +++ b/editorsnotes/main/migrations/0040_auto__chg_field_transcript_last_updated__chg_field_transcript_last_upd.py @@ -129,7 +129,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -139,7 +139,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -160,7 +160,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_source_set'", 'to': "orm['auth.User']"}), @@ -178,7 +178,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -191,7 +191,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), diff --git a/editorsnotes/main/migrations/0041_auto__add_document__add_field_transcript_document__add_field_scan_docu.py b/editorsnotes/main/migrations/0041_auto__add_document__add_field_transcript_document__add_field_scan_docu.py index 2fe8111e..aeb0b00e 100644 --- a/editorsnotes/main/migrations/0041_auto__add_document__add_field_transcript_document__add_field_scan_docu.py +++ b/editorsnotes/main/migrations/0041_auto__add_document__add_field_transcript_document__add_field_scan_docu.py @@ -15,7 +15,7 @@ def forwards(self, orm): ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('last_updater', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_to_update_document_set', to=orm['auth.User'])), ('last_updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - ('description', self.gf('main.fields.XHTMLField')()), + ('description', self.gf('editorsnotes.main.fields.XHTMLField')()), ('type', self.gf('django.db.models.fields.CharField')(default='S', max_length=1)), ('ordering', self.gf('django.db.models.fields.CharField')(max_length=32)), ('url', self.gf('django.db.models.fields.URLField')(max_length=200, blank=True)), @@ -107,7 +107,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_document_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_document_set'", 'to': "orm['auth.User']"}), @@ -117,7 +117,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -127,7 +127,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -149,7 +149,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_source_set'", 'to': "orm['auth.User']"}), @@ -167,7 +167,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -180,7 +180,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'document': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'_transcript'", 'unique': 'True', 'null': 'True', 'to': "orm['main.Document']"}), diff --git a/editorsnotes/main/migrations/0042_sources_to_documents.py b/editorsnotes/main/migrations/0042_sources_to_documents.py index c36faab8..24b4a2d2 100644 --- a/editorsnotes/main/migrations/0042_sources_to_documents.py +++ b/editorsnotes/main/migrations/0042_sources_to_documents.py @@ -90,7 +90,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_document_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_document_set'", 'to': "orm['auth.User']"}), @@ -100,7 +100,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -110,7 +110,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -132,7 +132,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_source_set'", 'to': "orm['auth.User']"}), @@ -150,7 +150,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -163,7 +163,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'document': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'_transcript'", 'unique': 'True', 'null': 'True', 'to': "orm['main.Document']"}), diff --git a/editorsnotes/main/migrations/0043_auto__del_field_transcript_source__del_field_scan_source__del_field_ci.py b/editorsnotes/main/migrations/0043_auto__del_field_transcript_source__del_field_scan_source__del_field_ci.py index d384c14d..e38c5bab 100644 --- a/editorsnotes/main/migrations/0043_auto__del_field_transcript_source__del_field_scan_source__del_field_ci.py +++ b/editorsnotes/main/migrations/0043_auto__del_field_transcript_source__del_field_scan_source__del_field_ci.py @@ -92,7 +92,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_document_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_document_set'", 'to': "orm['auth.User']"}), @@ -102,7 +102,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -112,7 +112,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -133,7 +133,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Source'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_source_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_source_set'", 'to': "orm['auth.User']"}), @@ -151,7 +151,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -164,7 +164,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'document': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'_transcript'", 'unique': 'True', 'null': 'True', 'to': "orm['main.Document']"}), diff --git a/editorsnotes/main/migrations/0044_auto__del_source.py b/editorsnotes/main/migrations/0044_auto__del_source.py index 8d7c4ef8..88335210 100644 --- a/editorsnotes/main/migrations/0044_auto__del_source.py +++ b/editorsnotes/main/migrations/0044_auto__del_source.py @@ -19,7 +19,7 @@ def backwards(self, orm): ('url', self.gf('django.db.models.fields.URLField')(max_length=200, blank=True)), ('last_updater', self.gf('django.db.models.fields.related.ForeignKey')(related_name='last_to_update_source_set', to=orm['auth.User'])), ('last_updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - ('description', self.gf('main.fields.XHTMLField')()), + ('description', self.gf('editorsnotes.main.fields.XHTMLField')()), ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('ordering', self.gf('django.db.models.fields.CharField')(max_length=32)), ('creator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_source_set', to=orm['auth.User'])), @@ -88,7 +88,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_document_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_document_set'", 'to': "orm['auth.User']"}), @@ -98,7 +98,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -108,7 +108,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -135,7 +135,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -148,7 +148,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'document': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'_transcript'", 'unique': 'True', 'null': 'True', 'to': "orm['main.Document']"}), diff --git a/editorsnotes/main/migrations/0045_auto__chg_field_transcript_document__chg_field_scan_document__chg_fiel.py b/editorsnotes/main/migrations/0045_auto__chg_field_transcript_document__chg_field_scan_document__chg_fiel.py index e14e5cd8..f1ec5f6f 100644 --- a/editorsnotes/main/migrations/0045_auto__chg_field_transcript_document__chg_field_scan_document__chg_fiel.py +++ b/editorsnotes/main/migrations/0045_auto__chg_field_transcript_document__chg_field_scan_document__chg_fiel.py @@ -89,7 +89,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_document_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_document_set'", 'to': "orm['auth.User']"}), @@ -99,7 +99,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -109,7 +109,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -136,7 +136,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -149,7 +149,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'document': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'_transcript'", 'unique': 'True', 'to': "orm['main.Document']"}), diff --git a/editorsnotes/main/migrations/0046_auto__add_field_citation_type.py b/editorsnotes/main/migrations/0046_auto__add_field_citation_type.py index f4c09cf4..0d47c61e 100644 --- a/editorsnotes/main/migrations/0046_auto__add_field_citation_type.py +++ b/editorsnotes/main/migrations/0046_auto__add_field_citation_type.py @@ -78,7 +78,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_document_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_document_set'", 'to': "orm['auth.User']"}), @@ -88,7 +88,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -98,7 +98,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -125,7 +125,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -138,7 +138,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'document': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'_transcript'", 'unique': 'True', 'to': "orm['main.Document']"}), diff --git a/editorsnotes/main/migrations/0047_move_citation_type.py b/editorsnotes/main/migrations/0047_move_citation_type.py index 9fe0ee6e..a3d40185 100644 --- a/editorsnotes/main/migrations/0047_move_citation_type.py +++ b/editorsnotes/main/migrations/0047_move_citation_type.py @@ -75,7 +75,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_document_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_document_set'", 'to': "orm['auth.User']"}), @@ -85,7 +85,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -95,7 +95,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -122,7 +122,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -135,7 +135,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'document': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'_transcript'", 'unique': 'True', 'to': "orm['main.Document']"}), diff --git a/editorsnotes/main/migrations/0048_auto__del_field_document_type.py b/editorsnotes/main/migrations/0048_auto__del_field_document_type.py index 42db15d2..213948ec 100644 --- a/editorsnotes/main/migrations/0048_auto__del_field_document_type.py +++ b/editorsnotes/main/migrations/0048_auto__del_field_document_type.py @@ -78,7 +78,7 @@ def backwards(self, orm): 'Meta': {'ordering': "['ordering']", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_document_set'", 'to': "orm['auth.User']"}), - 'description': ('main.fields.XHTMLField', [], {}), + 'description': ('editorsnotes.main.fields.XHTMLField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'last_updater': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_to_update_document_set'", 'to': "orm['auth.User']"}), @@ -87,7 +87,7 @@ def backwards(self, orm): }, 'main.footnote': { 'Meta': {'object_name': 'Footnote'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_footnote_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -97,7 +97,7 @@ def backwards(self, orm): }, 'main.note': { 'Meta': {'ordering': "['-last_updated']", 'object_name': 'Note'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_note_set'", 'to': "orm['auth.User']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), @@ -124,7 +124,7 @@ def backwards(self, orm): 'preferred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), 'related_topics': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'related_topics_rel_+'", 'blank': 'True', 'to': "orm['main.Topic']"}), 'slug': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': "'80'"}), - 'summary': ('main.fields.XHTMLField', [], {}) + 'summary': ('editorsnotes.main.fields.XHTMLField', [], {}) }, 'main.topicassignment': { 'Meta': {'unique_together': "(('topic', 'object_id'),)", 'object_name': 'TopicAssignment'}, @@ -137,7 +137,7 @@ def backwards(self, orm): }, 'main.transcript': { 'Meta': {'object_name': 'Transcript'}, - 'content': ('main.fields.XHTMLField', [], {}), + 'content': ('editorsnotes.main.fields.XHTMLField', [], {}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_transcript_set'", 'to': "orm['auth.User']"}), 'document': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'_transcript'", 'unique': 'True', 'to': "orm['main.Document']"}), diff --git a/editorsnotes/main/migrations/0049_auto__chg_field_transcript_content__chg_field_footnote_content__chg_fi.py b/editorsnotes/main/migrations/0049_auto__chg_field_transcript_content__chg_field_footnote_content__chg_fi.py index 796e8769..da418677 100644 --- a/editorsnotes/main/migrations/0049_auto__chg_field_transcript_content__chg_field_footnote_content__chg_fi.py +++ b/editorsnotes/main/migrations/0049_auto__chg_field_transcript_content__chg_field_footnote_content__chg_fi.py @@ -30,22 +30,22 @@ def forwards(self, orm): def backwards(self, orm): # Changing field 'Transcript.content' - db.alter_column('main_transcript', 'content', self.gf('main.fields.XHTMLField')()) + db.alter_column('main_transcript', 'content', self.gf('editorsnotes.main.fields.XHTMLField')()) # Changing field 'Footnote.content' - db.alter_column('main_footnote', 'content', self.gf('main.fields.XHTMLField')()) + db.alter_column('main_footnote', 'content', self.gf('editorsnotes.main.fields.XHTMLField')()) # Changing field 'Note.content' - db.alter_column('main_note', 'content', self.gf('main.fields.XHTMLField')()) + db.alter_column('main_note', 'content', self.gf('editorsnotes.main.fields.XHTMLField')()) # Deleting field 'Citation.notes' db.delete_column('main_citation', 'notes') # Changing field 'Topic.summary' - db.alter_column('main_topic', 'summary', self.gf('main.fields.XHTMLField')()) + db.alter_column('main_topic', 'summary', self.gf('editorsnotes.main.fields.XHTMLField')()) # Changing field 'Document.description' - db.alter_column('main_document', 'description', self.gf('main.fields.XHTMLField')()) + db.alter_column('main_document', 'description', self.gf('editorsnotes.main.fields.XHTMLField')()) models = { From a188fa3a701a6cd9a0ebc08f7142da5710529cb6 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 20:48:55 -0800 Subject: [PATCH 17/31] Change old migration for XHTML field to work with current code --- .../main/migrations/0029_auto__add_field_topic_summary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editorsnotes/main/migrations/0029_auto__add_field_topic_summary.py b/editorsnotes/main/migrations/0029_auto__add_field_topic_summary.py index 21adac4d..ffef5708 100644 --- a/editorsnotes/main/migrations/0029_auto__add_field_topic_summary.py +++ b/editorsnotes/main/migrations/0029_auto__add_field_topic_summary.py @@ -9,7 +9,7 @@ class Migration(SchemaMigration): def forwards(self, orm): # Adding field 'Topic.summary' - db.add_column('main_topic', 'summary', self.gf('main.fields.XHTMLField')(default='EMPTY'), keep_default=False) + db.add_column('main_topic', 'summary', self.gf('editorsnotes.main.fields.XHTMLField')(default=None), keep_default=False) def backwards(self, orm): From 955551487dc36ab53cc7e174af3df4073a7edd95 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 20:50:53 -0800 Subject: [PATCH 18/31] Change data migrations so that they work with a clean db --- .../migrations/0078_citation_add_last_update.py | 12 ++++++++++-- .../0079_note_sections_to_citations.py | 16 +++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/editorsnotes/main/migrations/0078_citation_add_last_update.py b/editorsnotes/main/migrations/0078_citation_add_last_update.py index 96eda1b3..f51956ea 100644 --- a/editorsnotes/main/migrations/0078_citation_add_last_update.py +++ b/editorsnotes/main/migrations/0078_citation_add_last_update.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- import datetime +from django.core.exceptions import ObjectDoesNotExist from south.db import db from south.v2 import DataMigration from django.db import models @@ -7,8 +8,15 @@ class Migration(DataMigration): def forwards(self, orm): - citation_ct = orm['contenttypes.ContentType'].objects.get( - app_label='main', model='citation') + try: + citation_ct = orm['contenttypes.ContentType'].objects.get( + app_label='main', model='citation') + except ObjectDoesNotExist: + # This content_type does not exist if this migration is being + # performed sequentially from the beginning. In that case, we don't + # care about changing existing data, so we can just return. + return + # Turn off auto_now from the last_updated field so that we can manually # set it next diff --git a/editorsnotes/main/migrations/0079_note_sections_to_citations.py b/editorsnotes/main/migrations/0079_note_sections_to_citations.py index 233a8ae8..0ee6c7ba 100644 --- a/editorsnotes/main/migrations/0079_note_sections_to_citations.py +++ b/editorsnotes/main/migrations/0079_note_sections_to_citations.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- import datetime +from django.core.exceptions import ObjectDoesNotExist from south.db import db from south.v2 import DataMigration from django.db import models @@ -9,6 +10,16 @@ class Migration(DataMigration): def forwards(self, orm): + try: + note_ct = orm['contenttypes.contenttype'].objects.get( + app_label='main', model='note') + citation_ct = orm['contenttypes.contenttype'].objects.get( + app_label='main', model='citation') + except ObjectDoesNotExist: + # See previous migration. These contenttypes do not exist when a + # user is performing migrations sequentially from the beginning. + return + # Disable auto_now* so we can set timestamps ourselves created = [f for f in orm['main.citation']._meta.local_fields \ if f.name == 'created'][0] @@ -17,11 +28,6 @@ def forwards(self, orm): created.auto_now_add = False updated.auto_now = False - note_ct = orm['contenttypes.contenttype'].objects.get( - app_label='main', model='note') - citation_ct = orm['contenttypes.contenttype'].objects.get( - app_label='main', model='citation') - for ns in orm['main.notesection'].objects.select_related('note'): # Create a new citation identical to the note section From d20a857c4913d211bc7e0a98b0035eec5305815b Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Tue, 15 Jan 2013 20:58:14 -0800 Subject: [PATCH 19/31] Fix bug in main/models.py Args & kwargs weren't getting passed in two custom save methods. --- editorsnotes/main/models.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/editorsnotes/main/models.py b/editorsnotes/main/models.py index 89326be1..32a29609 100644 --- a/editorsnotes/main/models.py +++ b/editorsnotes/main/models.py @@ -595,8 +595,8 @@ def get_or_create_project_roles(self): action, slug, model._meta.verbose_name_plural.lower()) ) editors.permissions.add(perm) - def save(self): - super(Project, self).save() + def save(self, *args, **kwargs): + super(Project, self).save(*args, **kwargs) self.get_or_create_project_roles() class UserProfile(models.Model, URLAccessible): @@ -636,14 +636,14 @@ def get_project_role(self, project): return role.name[role.name.index('_') + 1:-1] except Group.DoesNotExist: return None - def save(self): + def save(self, *args, **kwargs): if self.affiliation: project_groups = self.user.groups.filter( user = self.user, name__startswith=self.affiliation.slug) if len(project_groups) > 1: raise Exception("Only one project role allowed") - super(UserProfile, self).save() + super(UserProfile, self).save(*args, **kwargs) if self.affiliation and not self.get_project_role(self.affiliation): if self.user.groups.filter(name='Editors'): g = Group.objects.get(name='%s_editors' % self.affiliation.slug) From 13d87cdbeecc35f7147d964b7a12678a4b88c6f8 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Wed, 16 Jan 2013 10:28:02 -0800 Subject: [PATCH 20/31] Fix spacing error from commit 9555514 --- .../migrations/0078_citation_add_last_update.py | 14 +++++++------- .../migrations/0079_note_sections_to_citations.py | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/editorsnotes/main/migrations/0078_citation_add_last_update.py b/editorsnotes/main/migrations/0078_citation_add_last_update.py index f51956ea..dbc2c2f6 100644 --- a/editorsnotes/main/migrations/0078_citation_add_last_update.py +++ b/editorsnotes/main/migrations/0078_citation_add_last_update.py @@ -8,15 +8,15 @@ class Migration(DataMigration): def forwards(self, orm): - try: - citation_ct = orm['contenttypes.ContentType'].objects.get( - app_label='main', model='citation') + + # This content_type does not exist if this migration is being + # performed sequentially from the beginning. In that case, we don't + # care about changing existing data, so we can just return. + try: + citation_ct = orm['contenttypes.ContentType'].objects.get( + app_label='main', model='citation') except ObjectDoesNotExist: - # This content_type does not exist if this migration is being - # performed sequentially from the beginning. In that case, we don't - # care about changing existing data, so we can just return. return - # Turn off auto_now from the last_updated field so that we can manually # set it next diff --git a/editorsnotes/main/migrations/0079_note_sections_to_citations.py b/editorsnotes/main/migrations/0079_note_sections_to_citations.py index 0ee6c7ba..39239eed 100644 --- a/editorsnotes/main/migrations/0079_note_sections_to_citations.py +++ b/editorsnotes/main/migrations/0079_note_sections_to_citations.py @@ -10,14 +10,14 @@ class Migration(DataMigration): def forwards(self, orm): - try: + # See previous migration (0079). These contenttypes do not exist when a + # user is performing migrations sequentially from the beginning. + try: note_ct = orm['contenttypes.contenttype'].objects.get( app_label='main', model='note') citation_ct = orm['contenttypes.contenttype'].objects.get( app_label='main', model='citation') except ObjectDoesNotExist: - # See previous migration. These contenttypes do not exist when a - # user is performing migrations sequentially from the beginning. return # Disable auto_now* so we can set timestamps ourselves From 47f48eb2034a2cb77caadb8470d021709d3cee05 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Wed, 16 Jan 2013 10:33:14 -0800 Subject: [PATCH 21/31] Improve setup instructions --- README.md | 9 +++++---- fabfile.py | 10 +++++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b39ebb3a..8de060e5 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,9 @@ and make sure you have the following dependencies * libxml2 * libxslt * psycopg2 -* [xapian](http://xapian.org/download) with python bindings +* [Xapian](http://xapian.org/download) with Python bindings -Run the command `fab setup` inside the project directory and edit the generated -"editorsnotes/settings\_local.py" file with your database information. Finally, -run the development server with `fab runserver`. +1. Run the command `fab setup` inside the project directory. +2. Edit the generated "editorsnotes/settings\_local.py" file with your database information. +3. Run `fab sync_database` +4. Start the development server with `fab runserver`. diff --git a/fabfile.py b/fabfile.py index c2fa773e..345ee52b 100644 --- a/fabfile.py +++ b/fabfile.py @@ -23,7 +23,15 @@ def setup(): @task def test(): "Run the test suite locally." - local("python manage.py test" % env) + with lcd(PROJ_ROOT): + local('./bin/python manage.py test' % env) + +@task +def sync_database(): + "Sync db & run South migrations" + with lcd(PROJ_ROOT): + local('./bin/python manage.py syncdb') + local('./bin/python manage.py migrate') @task def runserver(): From 649c5efc5f1cdf6c2b2125f999124b8aed252c2d Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Wed, 16 Jan 2013 10:49:44 -0800 Subject: [PATCH 22/31] readme formatting --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8de060e5..32920845 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ and make sure you have the following dependencies * psycopg2 * [Xapian](http://xapian.org/download) with Python bindings -1. Run the command `fab setup` inside the project directory. -2. Edit the generated "editorsnotes/settings\_local.py" file with your database information. +1. Run the command `fab setup` inside the project directory +2. Edit the generated "editorsnotes/settings\_local.py" file with your database information 3. Run `fab sync_database` -4. Start the development server with `fab runserver`. +4. Start the development server with `fab runserver` From 99478ae32169f7d9d0783fd7a66bdec3c317f104 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Wed, 16 Jan 2013 12:23:51 -0800 Subject: [PATCH 23/31] Only import fabfile_local if it exists --- deploy/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/deploy/__init__.py b/deploy/__init__.py index df14060d..3a8a885a 100644 --- a/deploy/__init__.py +++ b/deploy/__init__.py @@ -9,13 +9,16 @@ from fabric.contrib.files import exists from fabric.decorators import task from fabric.utils import abort -from fabfile_local import * from subprocess import call from datetime import datetime # Environments # Define custom environments in a file in this directory called fabfile_local.py +try: + from fabfile_local import * +except: + pass @task def beta(): From 62a6eeea3173533723d62b2240e9f4bbd5522f38 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Wed, 16 Jan 2013 13:54:58 -0800 Subject: [PATCH 24/31] Update url for serving static files in dev server --- editorsnotes/urls.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editorsnotes/urls.py b/editorsnotes/urls.py index 6c48b753..0cc8e1c5 100644 --- a/editorsnotes/urls.py +++ b/editorsnotes/urls.py @@ -21,10 +21,10 @@ # The following won't actually be called in production, since Apache will intercept them. (r'^favicon.ico$', 'django.views.generic.simple.redirect_to', { 'url': '/static/style/icons/favicon.ico' }), - (r'^media/scans/(?P.*)$', 'django.views.static.serve', - { 'document_root': settings.MEDIA_ROOT + '/scans' }), (r'^media/(?P.*)$', 'django.views.static.serve', - { 'document_root': settings.LOCAL_PATH + '/editorsnotes/static' }), + { 'document_root': settings.MEDIA_ROOT }), + (r'^static/(?P.*)$', 'django.views.static.serve', + { 'document_root': settings.STATIC_ROOT }), (r'^proxy$', 'editorsnotes.main.views.proxy'), ) From 13b55f4797e949e2d477b3edddc75594313c3802 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Wed, 16 Jan 2013 14:30:07 -0800 Subject: [PATCH 25/31] Fabric command to create cache tables --- fabfile.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/fabfile.py b/fabfile.py index 345ee52b..7ac0ad71 100644 --- a/fabfile.py +++ b/fabfile.py @@ -28,9 +28,10 @@ def test(): @task def sync_database(): - "Sync db & run South migrations" + "Sync db, make cache tables, and run South migrations" with lcd(PROJ_ROOT): local('./bin/python manage.py syncdb') + create_cache_tables() local('./bin/python manage.py migrate') @task @@ -60,6 +61,17 @@ def make_settings(): print line.replace("SECRET_KEY = ''", "SECRET_KEY = '{}'".format(secret_key)), +@task +def create_cache_tables(): + caches = ['zotero_cache'] + tables = local('./bin/python manage.py inspectdb | grep "db_table ="', capture=True) + for cache in caches: + if "'{}'".format(cache) in tables: + continue + with lcd(PROJ_ROOT): + local('./bin/python manage.py createcachetable {}'.format(cache)) + + def make_virtual_env(): "Make a virtual environment for local dev use" with lcd(PROJ_ROOT): From ba908e73679fa328a595ad6626f888c0ca8735c9 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Fri, 18 Jan 2013 11:54:06 -0800 Subject: [PATCH 26/31] Use pip to install psycopg2 instead of symlinking --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a6f523dc..c6f1959c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ # Installed using pip Django==1.4 South==0.7.5 +psycopg2==2.4.5 django-haystack==1.2.7 xapian-haystack==1.1.5beta django-reversion==1.6 @@ -13,4 +14,3 @@ refine-client==0.2.1 # Symlinks to system packages # symlink: xapian -# symlink: psycopg2 From dcd07de288585040dcf5f20d3a282b912b7d62f0 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Fri, 18 Jan 2013 11:57:13 -0800 Subject: [PATCH 27/31] Don't worry if `cp -n` fails Exit code is 1 on some versions of cp if the file was not copied. We don't really care, so capture the return value. --- fabfile.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fabfile.py b/fabfile.py index 7ac0ad71..cc47e76b 100644 --- a/fabfile.py +++ b/fabfile.py @@ -56,7 +56,8 @@ def make_settings(): for settings_file in to_create: secret_key = generate_secret_key() with lcd(PROJ_ROOT): - local('cp -n editorsnotes/example-settings_local.py {}'.format(settings_file)) + local('cp -n editorsnotes/example-settings_local.py {}'.format(settings_file), + capture=True) for line in fileinput.input(settings_file, inplace=True): print line.replace("SECRET_KEY = ''", "SECRET_KEY = '{}'".format(secret_key)), From 6e34b15bb8ca12432fa09d9471cc967fbb094588 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Fri, 18 Jan 2013 12:06:51 -0800 Subject: [PATCH 28/31] Test if settings file exists instead of `cp -n` --- fabfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fabfile.py b/fabfile.py index cc47e76b..97d83590 100644 --- a/fabfile.py +++ b/fabfile.py @@ -56,8 +56,8 @@ def make_settings(): for settings_file in to_create: secret_key = generate_secret_key() with lcd(PROJ_ROOT): - local('cp -n editorsnotes/example-settings_local.py {}'.format(settings_file), - capture=True) + local('if [ ! -f {0} ]; then cp {1} {0}; fi'.format( + settings_file, 'editorsnotes/example-settings_local.py')) for line in fileinput.input(settings_file, inplace=True): print line.replace("SECRET_KEY = ''", "SECRET_KEY = '{}'".format(secret_key)), From 214b5201b90f68bee12cebaf5bf61e5df58ac894 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Fri, 18 Jan 2013 13:27:47 -0800 Subject: [PATCH 29/31] Require fabric to be run globally; add success msg --- fabfile.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/fabfile.py b/fabfile.py index 97d83590..e10449f1 100644 --- a/fabfile.py +++ b/fabfile.py @@ -1,4 +1,5 @@ from fabric.api import env, local, lcd +from fabric.colors import red from fabric.decorators import task, runs_once from fabric.utils import abort @@ -6,6 +7,7 @@ import importlib import os import random +import sys import deploy @@ -14,11 +16,21 @@ @task def setup(): - "Set up a local development environment" + """ + Set up a local development environment + + This command must be run with Fabric installed globally (not inside a + virtual environment) + """ + if os.getenv('VIRTUAL_ENV') or hasattr(sys, 'real_prefix'): + abort(red('Deactivate any virtual environments before continuing.')) make_settings() make_virtual_env() symlink_packages() collect_static() + print ('\nDevelopment environment successfully created.\n' + + 'Create a Postgres database, enter its information into ' + + 'editorsnotes/settings_local.py, and run `fab sync_database` to finish.') @task def test(): From 528130ca3779a9e2bb741bcc915f7b70531c8d5f Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Fri, 18 Jan 2013 15:47:20 -0800 Subject: [PATCH 30/31] Remove deployment-specific fabfile commands Will move them to a separate repository. --- deploy/__init__.py | 203 --------------------------------------------- fabfile.py | 2 - 2 files changed, 205 deletions(-) delete mode 100644 deploy/__init__.py diff --git a/deploy/__init__.py b/deploy/__init__.py deleted file mode 100644 index 3a8a885a..00000000 --- a/deploy/__init__.py +++ /dev/null @@ -1,203 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import os -import sys -from time import sleep -from fabric.api import * -from fabric.contrib.console import confirm -from fabric.contrib.files import exists -from fabric.decorators import task -from fabric.utils import abort -from subprocess import call -from datetime import datetime - -# Environments - -# Define custom environments in a file in this directory called fabfile_local.py -try: - from fabfile_local import * -except: - pass - -@task -def beta(): - "Use the beta-testing webserver." - env.hosts = ['beta.editorsnotes.org'] - env.project_path = '/db/projects/%(project_name)s-beta' % env - env.vhosts_path = '/etc/httpd/sites.d' - env.python = '/usr/bin/python2.7' - -@task -def pro(): - "Use the production webserver." - env.hosts = ['editorsnotes.org'] - env.project_path = '/db/projects/%(project_name)s' % env - env.vhosts_path = '/etc/httpd/sites.d' - env.python = '/usr/bin/python2.7' - -# Tasks - -@task -def test_remote(): - "Run the test suite remotely." - require('hosts', 'project_path', provided_by=[dev]) - run('cd %(project_path)s/releases/current; ../../bin/python manage.py test' % env) - -@task -def setup(): - """ - Setup a fresh virtualenv as well as a few useful directories, then - run a full deployment. - """ - require('hosts', 'project_path', provided_by=[dev]) - run('mkdir -p %(project_path)s' % env) - with cd(env.project_path): - run('virtualenv -p %(python)s --no-site-packages .' % env) - run('mkdir -p logs releases shared packages' % env) - run('cd releases; touch none; ln -sf none current; ln -sf none previous') - deploy() - -@task -def deploy(): - """ - Deploy the latest version of the site to the servers, install any - required third party modules, install the virtual host and then - restart the webserver. - """ - require('hosts', 'project_path', provided_by=[dev]) - import time - env.release = time.strftime('%Y%m%d%H%M%S') - upload_tar_from_git() - upload_local_settings() - upload_deploy_info() - symlink_system_packages() - install_requirements() - install_site() - symlink_current_release() - migrate() - collect_static() - restart_webserver() - sleep(2) - local('%s http://%s/' % ( - 'xdg-open' if sys.platform.startswith('linux') else 'open', env['host'])) - -@task -def deploy_version(version): - "Specify a specific version to be made live." - require('hosts', 'project_path', provided_by=[dev]) - env.version = version - with cd(env.project_path): - run('rm releases/previous; mv releases/current releases/previous') - run('ln -s %(version)s releases/current' % env) - restart_webserver() - -@task -def rollback(): - """ - Limited rollback capability. Simply loads the previously current - version of the code. Rolling back again will swap between the two. - """ - require('hosts', 'project_path', provided_by=[dev]) - with cd(env.project_path): - run('mv releases/current releases/_previous;') - run('mv releases/previous releases/current;') - run('mv releases/_previous releases/previous;') - restart_webserver() - -@task -def clean(): - "Clean out old packages and releases." - require('hosts', 'project_path', provided_by=[dev]) - if (confirm('Are you sure you want to delete everything on %(host)s?' % env, - default=False)): - with cd(env.project_path): - run('rm -rf packages; rm -rf releases') - run('mkdir -p packages; mkdir -p releases') - run('cd releases; touch none; ln -sf none current; ln -sf none previous') - - -# Helpers. These are called by other functions rather than directly. - -def upload_tar_from_git(): - "Create an archive from the current Git branch and upload it." - require('release', provided_by=[deploy, setup]) - local('git archive --format=tar HEAD | gzip > %(release)s.tar.gz' % env) - run('mkdir -p %(project_path)s/releases/%(release)s' % env) - put('%(release)s.tar.gz' % env, '%(project_path)s/packages/' % env) - run('cd %(project_path)s/releases/%(release)s && tar zxf ../../packages/%(release)s.tar.gz' % env) - local('rm %(release)s.tar.gz' % env) - -def upload_local_settings(): - "Upload the appropriate local settings file." - require('release', provided_by=[deploy, setup]) - put('deploy/settings-%(host)s.py' % env, - '%(project_path)s/releases/%(release)s/%(project_name)s/settings_local.py' % env) - -def upload_deploy_info(): - "Upload information about the version and time of deployment." - require('release', provided_by=[deploy, setup]) - with open('%(project_name)s/templates/version.txt' % env, 'wb') as f: - call(['git', 'rev-parse', 'HEAD'], stdout=f) - with open('%(project_name)s/templates/time-deployed.txt' % env, 'wb') as f: - f.write(datetime.now().strftime('%Y-%m-%d %H:%M')) - for filename in ['version.txt', 'time-deployed.txt']: - put(('%(project_name)s/templates/' % env) + filename, - ('%(project_path)s/releases/%(release)s/%(project_name)s/templates/' % env) + filename) - -def install_requirements(): - "Install the required packages from the requirements file using pip" - require('release', provided_by=[deploy, setup]) - run('export SAVED_PIP_VIRTUALENV_BASE=$PIP_VIRTUALENV_BASE; unset PIP_VIRTUALENV_BASE; ' + - 'cd %(project_path)s; ./bin/pip install -E . -r ./releases/%(release)s/requirements.txt; ' % env + - 'export PIP_VIRTUALENV_BASE=$SAVED_PIP_VIRTUALENV_BASE; unset SAVED_PIP_VIRTUALENV_BASE') - -def symlink_system_packages(): - "Create symlinks to system site-packages." - require('python', 'project_path', provided_by=[dev]) - missing = [] - requirements = (req.rstrip().replace('# symlink: ', '') - for req in open('requirements.txt', 'r') - if req.startswith('# symlink: ')) - for req in requirements: - req_file = run('%s -c "import os, %s; print os.path.dirname(%s.__file__)"' % ( - env.python, req, req), warn_only=True, quiet=True) - if req_file.failed: - missing.append(req) - continue - with cd(os.path.join(env.project_path, 'lib', 'python2.7', 'site-packages')): - run('ln -f -s %s' % req_file) - if missing: - abort('Missing python packages: %s' % ', '.join(missing)) - -def install_site(): - "Add the virtualhost file to apache." - require('release', provided_by=[deploy, setup]) - put('deploy/vhost-%(host)s.conf' % env, - '%(project_path)s/vhost-%(host)s.conf.tmp' % env) - sudo('cd %(project_path)s; mv -f vhost-%(host)s.conf.tmp %(vhosts_path)s/vhost-%(host)s.conf' % env, pty=True) - -def symlink_current_release(): - "Symlink our current release." - require('release', provided_by=[deploy, setup]) - with cd(env.project_path): - run('rm releases/previous; mv releases/current releases/previous;') - run('ln -s %(release)s releases/current' % env) - -def migrate(): - "Update the database" - require('hosts', 'project_path', provided_by=[dev]) - with cd('%(project_path)s/releases/current' % env): - run('../../bin/python manage.py syncdb --noinput') - for app in [ 'main', 'djotero', 'refine', 'reversion' ]: - run('../../bin/python manage.py migrate --noinput %s' % app) - -def collect_static(): - "Collect static files" - require('hosts', 'project_path', provided_by=[dev]) - with cd('%(project_path)s/releases/current' % env): - run('../../bin/python manage.py collectstatic --noinput') - -def restart_webserver(): - "Restart the web server." - sudo('apachectl restart', pty=True) diff --git a/fabfile.py b/fabfile.py index e10449f1..2df8fcd8 100644 --- a/fabfile.py +++ b/fabfile.py @@ -9,8 +9,6 @@ import random import sys -import deploy - PROJ_ROOT = os.path.dirname(env.real_fabfile) env.project_name = 'editorsnotes' From c1fa8d215bf7954870e8d0e5f41ebac58ff25fe0 Mon Sep 17 00:00:00 2001 From: Patrick Golden Date: Sat, 19 Jan 2013 12:14:58 -0800 Subject: [PATCH 31/31] Change PATH settings around a bit. Now, STORAGE_PATH can be set to change where files created by django are stored. It needn't be the same as the project path and can be changed with a single setting. --- editorsnotes/example-settings_local.py | 6 +++++- editorsnotes/settings.py | 18 +++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/editorsnotes/example-settings_local.py b/editorsnotes/example-settings_local.py index dd892d5b..6be6bdee 100644 --- a/editorsnotes/example-settings_local.py +++ b/editorsnotes/example-settings_local.py @@ -31,7 +31,11 @@ # USE_L10N = True # USE I18N = True -# LOCAL_PATH = '' + +# Edit STORAGE_PATH to change where uploads, static files, and search indexes +# will be stored, or change each of the settings individually. +# STORAGE_PATH = '' + # MEDIA_ROOT = '' # STATIC_ROOT = '' # HAYSTACK_XAPIAN_PATH = '' diff --git a/editorsnotes/settings.py b/editorsnotes/settings.py index c6bc4a0e..45da6f3d 100644 --- a/editorsnotes/settings.py +++ b/editorsnotes/settings.py @@ -50,20 +50,24 @@ ################# import os -EN_ROOT_PATH = os.path.normpath(os.path.join(os.path.dirname(__file__), '..')) +EN_PROJECT_PATH = os.path.normpath(os.path.join(os.path.dirname(__file__), '..')) TEMPLATE_DIRS = ( - os.path.abspath(os.path.join(EN_ROOT_PATH, 'editorsnotes', 'templates')), + os.path.abspath(os.path.join(EN_PROJECT_PATH, 'editorsnotes', 'templates')), ) STATICFILES_DIRS = ( - os.path.abspath(os.path.join(EN_ROOT_PATH, 'editorsnotes', 'static')), + os.path.abspath(os.path.join(EN_PROJECT_PATH, 'editorsnotes', 'static')), ) # Override these variables in settings_local.py if desired -LOCAL_PATH = os.path.abspath(EN_ROOT_PATH) -HAYSTACK_XAPIAN_PATH = os.path.abspath(os.path.join(EN_ROOT_PATH, 'searchindex')) -MEDIA_ROOT = os.path.abspath(os.path.join(EN_ROOT_PATH, 'uploads')) -STATIC_ROOT = os.path.abspath(os.path.join(EN_ROOT_PATH, 'static')) +try: + from settings_local import STORAGE_PATH +except ImportError: + STORAGE_PATH = EN_PROJECT_PATH + +HAYSTACK_XAPIAN_PATH = os.path.abspath(os.path.join(STORAGE_PATH, 'searchindex')) +MEDIA_ROOT = os.path.abspath(os.path.join(STORAGE_PATH, 'uploads')) +STATIC_ROOT = os.path.abspath(os.path.join(STORAGE_PATH, 'static')) ###################