diff --git a/.gitignore b/.gitignore index 7bbd45a1..d9bc1969 100644 --- a/.gitignore +++ b/.gitignore @@ -1,32 +1,25 @@ -www/static -www/uploads -*.tmproj *.pyc kcdc3/django.db kcdc3/settings.py kcdc3/kcdc3/settings.py +kcdc3/settings/prod.py +# as per dave: +# Matt Lesko wrote: +# 1) Clean up what's kept in git vs. what isn't. Right now I think static +# content /isn't/, but it probably should be. +# My suggestion: put static/ under Git, and media/ not. After the move, I'll fix file locations so that media/ is just user data. +# ergo, track kcdc3/public/static +kcdc3/public/media -kcdc3/kcdc3/settings.py +*.scssc +.sass-cache/ + +*.tmproj + +kcdc3/tmp/django.db + +kcdc3/public/static/fonts/ss-standard/ +kcdc3/public/static/fonts/ss-social/ -kcdc3/public/media/event_images -kcdc3/public/media/mugshots codekit-config.json -.sass-cache -kcdc3/public/media/uploads/event_images/IMG_5082a.jpg -kcdc3/public/static/fonts/ss-social/ss-social-circle.eot -kcdc3/public/static/fonts/ss-social/ss-social-circle.svg -kcdc3/public/static/fonts/ss-social/ss-social-circle.ttf -kcdc3/public/static/fonts/ss-social/ss-social-circle.woff -kcdc3/public/static/fonts/ss-social/ss-social-regular.eot -kcdc3/public/static/fonts/ss-social/ss-social-regular.svg -kcdc3/public/static/fonts/ss-social/ss-social-regular.ttf -kcdc3/public/static/fonts/ss-social/ss-social-regular.woff -kcdc3/public/static/fonts/ss-social/ss-social.css -kcdc3/public/static/fonts/ss-social/ss-social.js -kcdc3/public/static/fonts/ss-standard/ss-standard.css -kcdc3/public/static/fonts/ss-standard/ss-standard.eot -kcdc3/public/static/fonts/ss-standard/ss-standard.js -kcdc3/public/static/fonts/ss-standard/ss-standard.svg -kcdc3/public/static/fonts/ss-standard/ss-standard.ttf -kcdc3/public/static/fonts/ss-standard/ss-standard.woff \ No newline at end of file diff --git a/config.rb b/config.rb index 3b82826e..035e65ca 100644 --- a/config.rb +++ b/config.rb @@ -5,6 +5,6 @@ sass_dir = "kcdc3/public/static/sass" images_dir = "kcdc3/public/static/images" javascripts_dir = "kcdc3/public/static/assets/js" -output_style = :expanded +output_style = :compressed css_dir = "kcdc3/public/static/css" diff --git a/kcdc3/accounts/__init__.py b/kcdc3/__init__.py similarity index 100% rename from kcdc3/accounts/__init__.py rename to kcdc3/__init__.py diff --git a/kcdc3/accounts/migrations/__init__.py b/kcdc3/apps/__init__.py similarity index 100% rename from kcdc3/accounts/migrations/__init__.py rename to kcdc3/apps/__init__.py diff --git a/kcdc3/classes/__init__.py b/kcdc3/apps/accounts/__init__.py similarity index 100% rename from kcdc3/classes/__init__.py rename to kcdc3/apps/accounts/__init__.py diff --git a/kcdc3/accounts/migrations/0001_initial.py b/kcdc3/apps/accounts/migrations/0001_initial.py similarity index 100% rename from kcdc3/accounts/migrations/0001_initial.py rename to kcdc3/apps/accounts/migrations/0001_initial.py diff --git a/kcdc3/accounts/migrations/0002_auto__chg_field_extendedprofile_phone_number__chg_field_extendedprofil.py b/kcdc3/apps/accounts/migrations/0002_auto__chg_field_extendedprofile_phone_number__chg_field_extendedprofil.py similarity index 100% rename from kcdc3/accounts/migrations/0002_auto__chg_field_extendedprofile_phone_number__chg_field_extendedprofil.py rename to kcdc3/apps/accounts/migrations/0002_auto__chg_field_extendedprofile_phone_number__chg_field_extendedprofil.py diff --git a/kcdc3/classes/migrations/__init__.py b/kcdc3/apps/accounts/migrations/__init__.py similarity index 100% rename from kcdc3/classes/migrations/__init__.py rename to kcdc3/apps/accounts/migrations/__init__.py diff --git a/kcdc3/accounts/models.py b/kcdc3/apps/accounts/models.py similarity index 100% rename from kcdc3/accounts/models.py rename to kcdc3/apps/accounts/models.py diff --git a/kcdc3/apps/accounts/templates/disabled.html b/kcdc3/apps/accounts/templates/disabled.html new file mode 100644 index 00000000..0a30f606 --- /dev/null +++ b/kcdc3/apps/accounts/templates/disabled.html @@ -0,0 +1,17 @@ +{% extends 'userena/base_userena.html' %} +{% load i18n %} + +{% block title %}{% trans "Disabled account" %}{% endblock %} +{% block content_title %}

{% trans "Your account has been disabled" %}

{% endblock %} +{% block content %} + +

Your account is currently disabled.

+

If you just signed up, you still need to active your account. + Please check your email and find the activation message that we sent you. (Your mail provider may have wrongly marked it as spam.) + You'll need to click on the link in that message to activate your account.

+

Check your spam folder; your mail provider may have wrongly marked the message as spam.

+

If you're still having problems, please email us at + contact@knowledgecommonsdc.org. +

+ +{% endblock %} diff --git a/kcdc3/apps/accounts/templates/profile_detail.html b/kcdc3/apps/accounts/templates/profile_detail.html new file mode 100644 index 00000000..5b425b35 --- /dev/null +++ b/kcdc3/apps/accounts/templates/profile_detail.html @@ -0,0 +1,60 @@ +{% extends 'userena/base_userena.html' %} +{% load i18n %} +{% load url from future %} + +{% block title %}{% blocktrans with profile.user.username as username %}{{ username }}'s profile.{% endblocktrans %}{% endblock %} +{% block content_title %}

{{ profile.user.username }} {% if profile.user.get_full_name %}({{ profile.user.get_full_name }}){% endif %}

{% endblock %} + +{% block content %} +
+ {% block profile_navigation %} + {% comment %}Dirty hack. Will use django-guardian in the future.{% endcomment %} + {% if user.username == profile.user.username %} + + {% endif %} + {% endblock %} + +
+ + {% comment %} + {% block profile_details %} + {% trans +
+ {% block profile_definition_list %} + {% if profile.user.get_full_name %} +
{% trans "Name" %}
+
{{ profile.user.get_full_name }}
+ {% endif %} + {% if profile.user.email and not hide_email %} +
{% trans "Email" %}
+
{{ profile.user.email }}
+ {% endif %} + {% if profile.age %} +
{% trans "Age" %}
+
{{ profile.age }}
+ {% endif %} + {% if profile.website %} +
{% trans "Website" %}
+
{{ profile.website|urlize }}
+ {% endif %} + {% if profile.location %} +
{% trans "Location" %}
+
{{ profile.location }}
+ {% endif %} + {% if profile.about_me %} +
{% trans "About me" %}
+
{{ profile.about_me }}
+ {% endif %} + {% endblock %} +
+ {% endblock %} + {% endcomment %} +
+
+{% endblock %} \ No newline at end of file diff --git a/kcdc3/apps/accounts/templates/signin_form.html b/kcdc3/apps/accounts/templates/signin_form.html new file mode 100644 index 00000000..46725626 --- /dev/null +++ b/kcdc3/apps/accounts/templates/signin_form.html @@ -0,0 +1,45 @@ +{% extends 'userena/base_userena.html' %} +{% load i18n %} +{% load url from future %} + +{% block title %}{% trans "Signin" %}{% endblock %} + +{% block content %} + +

Log in

+ +

+ We've moved to a new registration system. + If you created your account before August 24, 2012, we'll need you + to register a new account. +

+ +

Our new registration system lets us: give you more information about + class locations, makes it easier for you to update your class signups, + and features real-time, automatic waitlists.

+ +
+ {% csrf_token %} +
+ {% trans "Signin" %} + {{ form.non_field_errors }} + {% for field in form %} + {{ field.errors }} + {% comment %} Displaying checkboxes differently {% endcomment %} + {% if field.name == 'remember_me' %} +

+ +

+ {% else %} +

+ {{ field.label_tag }} + {{ field }} +

+ {% endif %} + {% endfor %} +
+ +

{% trans "Forgot your password?" %}

+ {% if next %}{% endif %} +
+{% endblock %} diff --git a/kcdc3/apps/accounts/templates/signup_complete.html b/kcdc3/apps/accounts/templates/signup_complete.html new file mode 100644 index 00000000..dc59e8c5 --- /dev/null +++ b/kcdc3/apps/accounts/templates/signup_complete.html @@ -0,0 +1,16 @@ +{% extends 'userena/base_userena.html' %} +{% load i18n %} + +{% block title %}{% trans "Signup almost done!" %}{% endblock %} + +{% block content_title %}

{% trans "Signup" %}

{% endblock %} + +{% block content %} +

{% trans "Thank you for signing up with us!" %}

+ +{% if userena_activation_required %} +

{% blocktrans %}Next, you need to active your account. We've just sent you an email message with an activation link. Check your spam folder for the message.{% endblocktrans %}

+{% else %} +

{% blocktrans %}You can now use the supplied credentials to signin.{% endblocktrans %}

+{% endif %} +{% endblock %} diff --git a/kcdc3/apps/accounts/templates/signup_form.html b/kcdc3/apps/accounts/templates/signup_form.html new file mode 100644 index 00000000..05c67075 --- /dev/null +++ b/kcdc3/apps/accounts/templates/signup_form.html @@ -0,0 +1,36 @@ +{% extends 'userena/base_userena.html' %} +{% load i18n %} + +{% block title %}{% trans "Signup" %}{% endblock %} + +{% block content %} + +

Create a new account

+ +
+ {% csrf_token %} + +
+ {% comment %}{% trans "Signup" %}{% endcomment %} + {{ form.non_field_errors }} + {% for field in form %} + {{ field.errors }} + {% comment %} Displaying checkboxes differently {% endcomment %} + {% if field.name == 'tos' %} +

+ +

+ {% else %} +

+ {{ field.label_tag }} + {{ field }} +

+ {% endif %} + {% endfor %} +
+ +

When you create an account, we will add you to the Knowledge Commons DC mailing list. (That takes time, though, so if you want to receive updates immediately, sign up for the list yourself – the form is in the footer.)

+ + +
+{% endblock %} diff --git a/kcdc3/accounts/tests.py b/kcdc3/apps/accounts/tests.py similarity index 100% rename from kcdc3/accounts/tests.py rename to kcdc3/apps/accounts/tests.py diff --git a/kcdc3/accounts/views.py b/kcdc3/apps/accounts/views.py similarity index 97% rename from kcdc3/accounts/views.py rename to kcdc3/apps/accounts/views.py index 80f17f5a..f4a80a21 100644 --- a/kcdc3/accounts/views.py +++ b/kcdc3/apps/accounts/views.py @@ -1,7 +1,7 @@ from django import forms from django.utils.translation import ugettext_lazy as _ from userena.forms import SignupForm -from accounts.models import ExtendedProfile +from models import ExtendedProfile class SignupFormExtra(SignupForm): """ diff --git a/kcdc3/kcdc3/__init__.py b/kcdc3/apps/classes/__init__.py similarity index 100% rename from kcdc3/kcdc3/__init__.py rename to kcdc3/apps/classes/__init__.py diff --git a/kcdc3/apps/classes/admin.py b/kcdc3/apps/classes/admin.py new file mode 100644 index 00000000..bd0ff181 --- /dev/null +++ b/kcdc3/apps/classes/admin.py @@ -0,0 +1,231 @@ +from kcdc3.apps.classes.models import Event, Location, Bio, Registration, Session, Role, Partner +from django import forms +from django.contrib import admin +from django.contrib.admin.sites import site +from django.contrib.admin.widgets import ManyToManyRawIdWidget, ForeignKeyRawIdWidget +from django.core.urlresolvers import reverse +from django.utils.encoding import smart_unicode +from django.utils.html import escape +from django.contrib.auth.models import User + + + +# displays registrations as a list in the Event Admin screen +class RegistrationInline(admin.TabularInline): + model = Registration + extra = 0 + classes = ('grp-collapse grp-closed',) + # inline_classes = ('grp-collapse grp-open',) + fields = ('student', 'date_registered', 'waitlist', 'cancelled', 'date_cancelled', 'attended', 'late_promotion', 'date_promoted') + can_delete = False + readonly_fields = ('date_registered','date_cancelled', 'late_promotion', 'date_promoted') + raw_id_fields = ['student'] + related_lookup_fields = { + 'fk': ['student'], + } + + + +class LocationAdmin(admin.ModelAdmin): + model = Location + list_display = ('name','neighborhood','access','address1','lat','lng','show_exact',) + list_filter = ('neighborhood',) + list_editable = ('lat', 'lng', 'access') + search_fields = ('name',) + +admin.site.register(Location, LocationAdmin) + + + +class RoleAdmin(admin.ModelAdmin): + + model = Role + list_display = ('name', 'sort_order',) + fieldsets = [ + (None, {'fields': ['name','description', 'extended_description', 'sort_order',]}), + ] + + class Media: + js = [ + 'tiny_mce/tiny_mce.js', + 'tinymce_setup.js', + ] + +admin.site.register(Role, RoleAdmin) + + + +class BioAdmin(admin.ModelAdmin): + + model = Bio + list_display = ('name', 'user', 'role', 'title',) + fieldsets = [ + (None, {'fields': ['name','user','image',]}), + ('Teacher bio', { + 'classes': ('grp-collapse grp-open',), + 'fields': [ + 'description', 'web', 'bio_email', 'show_email', 'twitter', + ] + }), + ('Staff bio', { + 'classes': ('grp-collapse grp-open',), + 'fields': [ + 'role', 'title', 'staff_description', + ], + }), + ('Admin', { + 'classes': ('grp-collapse grp-open',), + 'fields': [ + 'rating', 'comments', + ], + }), + ] + raw_id_fields = ['user'] + related_lookup_fields = { + 'fk': ['user'], + } + + list_filter = ('role',) + search_fields = ('name',) + + class Media: + js = [ + 'tiny_mce/tiny_mce.js', + 'tinymce_setup.js', + ] + +admin.site.register(Bio, BioAdmin) + + + +# lets someone create/edit a Event +class EventAdmin(admin.ModelAdmin): + fieldsets = [ + (None, {'fields': ['title', 'slug',('date','end_time','session'),('location','partner',),('status', 'featured','type',)]}), + ('Teachers/facilitators', {'fields': [('teacher_bios','facilitators')]}), + ('Description', { + 'classes': ('grp-collapse grp-open',), + 'fields': [ + 'summary', 'description', + ] + }), + ('Visuals', { + 'classes': ('grp-collapse grp-open',), + 'fields': [ + ('list_layout','img_layout'), ('thumbnail', 'main_image'), 'caption', + ] + }), + ('Registration', {'fields': [('registration_status', 'registration_opens',), ('max_students', 'waitlist_status', 'registration_count','waitlist_count'),]}), + ('More details', { + 'classes': ('grp-collapse grp-closed',), + 'fields': [ + 'details', + 'additional_dates_text', + 'bio_text', + ] + }), + ('Automatic email messages', { + 'classes': ('grp-collapse grp-open',), + 'fields': ['email_welcome_text',] + }), + ('Documentation', { + 'classes': ('grp-collapse grp-closed',), + 'fields': ['documentation'] + }), + ('Legacy data', { + 'classes': ('grp-collapse grp-closed',), + 'fields': ['teacher_text','location_text'] + }), + ] + readonly_fields = ('registration_count','waitlist_count') + prepopulated_fields = {"slug": ("title",)} + raw_id_fields = ['location','partner','teacher_bios','facilitators'] + related_lookup_fields = { + 'm2m': ['teacher_bios', 'facilitators'], + } + inlines = (RegistrationInline,) + class Media: + js = [ + 'tiny_mce/tiny_mce.js', + 'tinymce_setup.js', + ] + + list_display = ('title', 'status','date','session', 'featured', 'registration_status', 'registration_opens', 'waitlist_status','max_students', 'registration_count', 'waitlist_count',) + list_editable = ('registration_status', 'featured', 'registration_opens',) + list_filter = ('session', 'status', 'registration_status','type',) + search_fields = ('title',) + +admin.site.register(Event, EventAdmin) + + + +# create/edit a Session +class SessionAdmin(admin.ModelAdmin): + fieldsets = [ + (None, {'fields': [ + 'title', 'long_title', 'slug', 'status', + ]}), + # ('Registration', { + # 'classes': ('grp-collapse grp-closed',), + # 'fields': [ + # ('registration_status', + # 'email_reminder_days') + # ]}), + ('Text', { + 'classes': ('grp-collapse grp-open',), + 'fields': [ + 'kicker', + 'description', + 'sidebar_text', + 'show_sidebar_text', + ]}), + ('Extended Text', { + 'classes': ('grp-collapse grp-open',), + 'fields': [ + 'documentation', + ]}), + ] + list_display = ('title', 'slug', 'status') + class Media: + js = [ + 'tiny_mce/tiny_mce.js', + 'tinymce_setup.js', + ] + +admin.site.register(Session, SessionAdmin) + + + +class PartnerAdmin(admin.ModelAdmin): + model = Partner + list_display = ('name',) + fieldsets = [ + (None, {'fields': ['name','description', 'website', 'image',]}), + ] + class Media: + js = [ + 'tiny_mce/tiny_mce.js', + 'tinymce_setup.js', + ] + +admin.site.register(Partner, PartnerAdmin) + + + + + +# view all registrations +class RegistrationAdmin(admin.ModelAdmin): + can_delete = False + readonly_fields = ('student', 'event', 'date_registered', 'date_cancelled', 'late_promotion', 'date_promoted') + raw_id_fields = ['student'] + fieldsets = [ + (None, {'fields': [ + 'student', 'event', 'date_registered', 'waitlist', 'cancelled', 'date_cancelled', 'late_promotion', 'date_promoted', 'attended', + ]}), + ] + list_display = ('student', 'event', 'date_registered', 'waitlist', 'cancelled', 'late_promotion', 'attended', 'date_cancelled', 'date_promoted', ) + list_filter = ('date_registered', 'waitlist', 'cancelled', 'attended','late_promotion',) + search_fields = ( 'student__username', 'student__email', ) + +admin.site.register(Registration, RegistrationAdmin) diff --git a/kcdc3/classes/email.py b/kcdc3/apps/classes/email.py similarity index 87% rename from kcdc3/classes/email.py rename to kcdc3/apps/classes/email.py index 30ccefc4..5ce9bb04 100644 --- a/kcdc3/classes/email.py +++ b/kcdc3/apps/classes/email.py @@ -19,6 +19,9 @@ BODY_CANCELLED = 'classes/email_cancelled.txt' BODY_PROMOTED = 'classes/email_promoted.txt' +REMINDER_SUBJECT = 'classes/email_reminder_subject.txt' +REMINDER_BODY = 'classes/email_reminder_body.txt' + class RegistrationEmail(EmailMessage): """ Wrapper class for the builtin EmailMessage class provided by django.""" @@ -124,3 +127,12 @@ def send_registration_mail(event, registration_flag, student): DRY.""" email = RegistrationEmail(event, registration_flag, to=student) email.send() + +# supah hack-- piggybacks on registration emails since they are almost identical +def send_reminder_email(reg): + email = RegistrationEmail(reg.event, 'registered', to=reg.student.email) +# Gets a random newline somehow even though there isnt one in the template? +# email.subject = render_to_string(REMINDER_SUBJECT, email.generate_context(reg.event)) + email.subject = 'Knowledge Commons reminder: upcoming class!' + email.body = render_to_string(REMINDER_BODY, email.generate_context(reg.event)) + email.send() diff --git a/kcdc3/classes/fixtures/test-base.json b/kcdc3/apps/classes/fixtures/test-base.json similarity index 100% rename from kcdc3/classes/fixtures/test-base.json rename to kcdc3/apps/classes/fixtures/test-base.json diff --git a/kcdc3/classes/fixtures/test-empty-class.json b/kcdc3/apps/classes/fixtures/test-empty-class.json similarity index 100% rename from kcdc3/classes/fixtures/test-empty-class.json rename to kcdc3/apps/classes/fixtures/test-empty-class.json diff --git a/kcdc3/apps/classes/format_helpers.py b/kcdc3/apps/classes/format_helpers.py new file mode 100644 index 00000000..511c2b6c --- /dev/null +++ b/kcdc3/apps/classes/format_helpers.py @@ -0,0 +1,16 @@ +"""Helpers for formatting text""" + +# Provide website address; add http:// if no protocol is specified +def add_protocol(address): + if "http://" in address or "https://" in address: + return address + else: + address = "http://" + address + return address + +# Provide website with http:// removed +def remove_protocol(address): + address = address.replace("http://","") + address = address.replace("https://","") + return address + diff --git a/kcdc3/classes/helpers.py b/kcdc3/apps/classes/helpers.py similarity index 100% rename from kcdc3/classes/helpers.py rename to kcdc3/apps/classes/helpers.py diff --git a/kcdc3/tmp/restart.txt b/kcdc3/apps/classes/management/__init__.py similarity index 100% rename from kcdc3/tmp/restart.txt rename to kcdc3/apps/classes/management/__init__.py diff --git a/kcdc3/apps/classes/management/commands/__init__.py b/kcdc3/apps/classes/management/commands/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/kcdc3/apps/classes/management/commands/send_reminder_emails.py b/kcdc3/apps/classes/management/commands/send_reminder_emails.py new file mode 100644 index 00000000..3f585edd --- /dev/null +++ b/kcdc3/apps/classes/management/commands/send_reminder_emails.py @@ -0,0 +1,30 @@ +from datetime import date, timedelta + +from django.core.management.base import BaseCommand, CommandError +from django.core.mail import EmailMessage + +from kcdc3.apps.classes.models import Event +from kcdc3.apps.classes.email import send_reminder_email + +# TODO: use Event's email_welcome_text, email_reminder, email_reminder_text +# TODO: move all logic into separate class + +class Command(BaseCommand): + args = '' + help = 'Sends out email alerts to participants of all events that will occur days from today (midnight to 11.59pm of that day, regardless of the current time today)' + + def handle(self, *args, **options): + if len(args) != 1: + raise CommandError('Please specify the number of days from today that you want to send reminders for.') + alert_day = date.today() + timedelta(days=int(args[0])) + print '{0}: Finding events for {1}...'.format(date.today(), alert_day) + events = Event.objects.filter(date__year=alert_day.year, date__month=alert_day.month, date__day=alert_day.day) + for event in events: + self.send_emails_for_event(event) + print 'Success!' + + def send_emails_for_event(self, event): + regs = event.get_registrations() + print 'Sending emails for {0} ({1} students)...'.format(event.title, len(regs)) + for reg in regs: + send_reminder_email(reg) diff --git a/kcdc3/classes/migrations/0001_initial.py b/kcdc3/apps/classes/migrations/0001_initial.py similarity index 100% rename from kcdc3/classes/migrations/0001_initial.py rename to kcdc3/apps/classes/migrations/0001_initial.py diff --git a/kcdc3/classes/migrations/0002_auto__add_field_event_location_description.py b/kcdc3/apps/classes/migrations/0002_auto__add_field_event_location_description.py similarity index 100% rename from kcdc3/classes/migrations/0002_auto__add_field_event_location_description.py rename to kcdc3/apps/classes/migrations/0002_auto__add_field_event_location_description.py diff --git a/kcdc3/classes/migrations/0003_auto__add_field_event_waitlist_status.py b/kcdc3/apps/classes/migrations/0003_auto__add_field_event_waitlist_status.py similarity index 100% rename from kcdc3/classes/migrations/0003_auto__add_field_event_waitlist_status.py rename to kcdc3/apps/classes/migrations/0003_auto__add_field_event_waitlist_status.py diff --git a/kcdc3/classes/migrations/0004_auto__add_registration__add_field_event_teachers.py b/kcdc3/apps/classes/migrations/0004_auto__add_registration__add_field_event_teachers.py similarity index 100% rename from kcdc3/classes/migrations/0004_auto__add_registration__add_field_event_teachers.py rename to kcdc3/apps/classes/migrations/0004_auto__add_registration__add_field_event_teachers.py diff --git a/kcdc3/classes/migrations/0005_auto__del_field_event_teachers.py b/kcdc3/apps/classes/migrations/0005_auto__del_field_event_teachers.py similarity index 100% rename from kcdc3/classes/migrations/0005_auto__del_field_event_teachers.py rename to kcdc3/apps/classes/migrations/0005_auto__del_field_event_teachers.py diff --git a/kcdc3/classes/migrations/0006_auto__add_field_registration_student__add_field_registration_event__ad.py b/kcdc3/apps/classes/migrations/0006_auto__add_field_registration_student__add_field_registration_event__ad.py similarity index 100% rename from kcdc3/classes/migrations/0006_auto__add_field_registration_student__add_field_registration_event__ad.py rename to kcdc3/apps/classes/migrations/0006_auto__add_field_registration_student__add_field_registration_event__ad.py diff --git a/kcdc3/classes/migrations/0007_auto__chg_field_registration_date_registered.py b/kcdc3/apps/classes/migrations/0007_auto__chg_field_registration_date_registered.py similarity index 100% rename from kcdc3/classes/migrations/0007_auto__chg_field_registration_date_registered.py rename to kcdc3/apps/classes/migrations/0007_auto__chg_field_registration_date_registered.py diff --git a/kcdc3/classes/migrations/0008_auto__chg_field_registration_date_registered.py b/kcdc3/apps/classes/migrations/0008_auto__chg_field_registration_date_registered.py similarity index 100% rename from kcdc3/classes/migrations/0008_auto__chg_field_registration_date_registered.py rename to kcdc3/apps/classes/migrations/0008_auto__chg_field_registration_date_registered.py diff --git a/kcdc3/classes/migrations/0009_auto__add_field_event_slug.py b/kcdc3/apps/classes/migrations/0009_auto__add_field_event_slug.py similarity index 100% rename from kcdc3/classes/migrations/0009_auto__add_field_event_slug.py rename to kcdc3/apps/classes/migrations/0009_auto__add_field_event_slug.py diff --git a/kcdc3/classes/migrations/0010_auto__add_unique_event_slug.py b/kcdc3/apps/classes/migrations/0010_auto__add_unique_event_slug.py similarity index 100% rename from kcdc3/classes/migrations/0010_auto__add_unique_event_slug.py rename to kcdc3/apps/classes/migrations/0010_auto__add_unique_event_slug.py diff --git a/kcdc3/classes/migrations/0011_auto__add_field_registration_cancelled__add_field_registration_date_ca.py b/kcdc3/apps/classes/migrations/0011_auto__add_field_registration_cancelled__add_field_registration_date_ca.py similarity index 100% rename from kcdc3/classes/migrations/0011_auto__add_field_registration_cancelled__add_field_registration_date_ca.py rename to kcdc3/apps/classes/migrations/0011_auto__add_field_registration_cancelled__add_field_registration_date_ca.py diff --git a/kcdc3/classes/migrations/0012_auto__chg_field_registration_date_registered.py b/kcdc3/apps/classes/migrations/0012_auto__chg_field_registration_date_registered.py similarity index 100% rename from kcdc3/classes/migrations/0012_auto__chg_field_registration_date_registered.py rename to kcdc3/apps/classes/migrations/0012_auto__chg_field_registration_date_registered.py diff --git a/kcdc3/classes/migrations/0013_auto__add_field_event_num_students_registered__add_field_event_adding_.py b/kcdc3/apps/classes/migrations/0013_auto__add_field_event_num_students_registered__add_field_event_adding_.py similarity index 100% rename from kcdc3/classes/migrations/0013_auto__add_field_event_num_students_registered__add_field_event_adding_.py rename to kcdc3/apps/classes/migrations/0013_auto__add_field_event_num_students_registered__add_field_event_adding_.py diff --git a/kcdc3/classes/migrations/0014_auto__del_field_event_num_students_registered__del_field_event_adding_.py b/kcdc3/apps/classes/migrations/0014_auto__del_field_event_num_students_registered__del_field_event_adding_.py similarity index 100% rename from kcdc3/classes/migrations/0014_auto__del_field_event_num_students_registered__del_field_event_adding_.py rename to kcdc3/apps/classes/migrations/0014_auto__del_field_event_num_students_registered__del_field_event_adding_.py diff --git a/kcdc3/classes/migrations/0015_auto__add_field_event_registration_status.py b/kcdc3/apps/classes/migrations/0015_auto__add_field_event_registration_status.py similarity index 100% rename from kcdc3/classes/migrations/0015_auto__add_field_event_registration_status.py rename to kcdc3/apps/classes/migrations/0015_auto__add_field_event_registration_status.py diff --git a/kcdc3/classes/migrations/0016_auto__add_field_event_status__add_field_event_featured__add_field_even.py b/kcdc3/apps/classes/migrations/0016_auto__add_field_event_status__add_field_event_featured__add_field_even.py similarity index 100% rename from kcdc3/classes/migrations/0016_auto__add_field_event_status__add_field_event_featured__add_field_even.py rename to kcdc3/apps/classes/migrations/0016_auto__add_field_event_status__add_field_event_featured__add_field_even.py diff --git a/kcdc3/classes/migrations/0017_auto__add_field_event_type.py b/kcdc3/apps/classes/migrations/0017_auto__add_field_event_type.py similarity index 100% rename from kcdc3/classes/migrations/0017_auto__add_field_event_type.py rename to kcdc3/apps/classes/migrations/0017_auto__add_field_event_type.py diff --git a/kcdc3/classes/migrations/0018_auto__chg_field_event_location_address1__chg_field_event_location_addr.py b/kcdc3/apps/classes/migrations/0018_auto__chg_field_event_location_address1__chg_field_event_location_addr.py similarity index 100% rename from kcdc3/classes/migrations/0018_auto__chg_field_event_location_address1__chg_field_event_location_addr.py rename to kcdc3/apps/classes/migrations/0018_auto__chg_field_event_location_address1__chg_field_event_location_addr.py diff --git a/kcdc3/classes/migrations/0019_auto__del_field_event_location_description__add_field_event_location_n.py b/kcdc3/apps/classes/migrations/0019_auto__del_field_event_location_description__add_field_event_location_n.py similarity index 100% rename from kcdc3/classes/migrations/0019_auto__del_field_event_location_description__add_field_event_location_n.py rename to kcdc3/apps/classes/migrations/0019_auto__del_field_event_location_description__add_field_event_location_n.py diff --git a/kcdc3/classes/migrations/0020_auto__add_session.py b/kcdc3/apps/classes/migrations/0020_auto__add_session.py similarity index 100% rename from kcdc3/classes/migrations/0020_auto__add_session.py rename to kcdc3/apps/classes/migrations/0020_auto__add_session.py diff --git a/kcdc3/classes/migrations/0021_auto__add_field_session_email_reminder_days.py b/kcdc3/apps/classes/migrations/0021_auto__add_field_session_email_reminder_days.py similarity index 100% rename from kcdc3/classes/migrations/0021_auto__add_field_session_email_reminder_days.py rename to kcdc3/apps/classes/migrations/0021_auto__add_field_session_email_reminder_days.py diff --git a/kcdc3/classes/migrations/0022_auto__add_field_event_session.py b/kcdc3/apps/classes/migrations/0022_auto__add_field_event_session.py similarity index 100% rename from kcdc3/classes/migrations/0022_auto__add_field_event_session.py rename to kcdc3/apps/classes/migrations/0022_auto__add_field_event_session.py diff --git a/kcdc3/classes/migrations/0023_auto__add_location__del_field_event_location_address1__del_field_event.py b/kcdc3/apps/classes/migrations/0023_auto__add_location__del_field_event_location_address1__del_field_event.py similarity index 100% rename from kcdc3/classes/migrations/0023_auto__add_location__del_field_event_location_address1__del_field_event.py rename to kcdc3/apps/classes/migrations/0023_auto__add_location__del_field_event_location_address1__del_field_event.py diff --git a/kcdc3/classes/migrations/0024_auto__add_field_event_teacher_text.py b/kcdc3/apps/classes/migrations/0024_auto__add_field_event_teacher_text.py similarity index 100% rename from kcdc3/classes/migrations/0024_auto__add_field_event_teacher_text.py rename to kcdc3/apps/classes/migrations/0024_auto__add_field_event_teacher_text.py diff --git a/kcdc3/classes/migrations/0025_auto__chg_field_event_teacher_text.py b/kcdc3/apps/classes/migrations/0025_auto__chg_field_event_teacher_text.py similarity index 100% rename from kcdc3/classes/migrations/0025_auto__chg_field_event_teacher_text.py rename to kcdc3/apps/classes/migrations/0025_auto__chg_field_event_teacher_text.py diff --git a/kcdc3/classes/migrations/0026_auto__add_field_location_hint.py b/kcdc3/apps/classes/migrations/0026_auto__add_field_location_hint.py similarity index 100% rename from kcdc3/classes/migrations/0026_auto__add_field_location_hint.py rename to kcdc3/apps/classes/migrations/0026_auto__add_field_location_hint.py diff --git a/kcdc3/classes/migrations/0027_auto__add_bio.py b/kcdc3/apps/classes/migrations/0027_auto__add_bio.py similarity index 100% rename from kcdc3/classes/migrations/0027_auto__add_bio.py rename to kcdc3/apps/classes/migrations/0027_auto__add_bio.py diff --git a/kcdc3/classes/migrations/0028_auto__add_field_event_end_time__add_field_bio_website.py b/kcdc3/apps/classes/migrations/0028_auto__add_field_event_end_time__add_field_bio_website.py similarity index 100% rename from kcdc3/classes/migrations/0028_auto__add_field_event_end_time__add_field_bio_website.py rename to kcdc3/apps/classes/migrations/0028_auto__add_field_event_end_time__add_field_bio_website.py diff --git a/kcdc3/classes/migrations/0029_auto__add_field_session_sidebar_text.py b/kcdc3/apps/classes/migrations/0029_auto__add_field_session_sidebar_text.py similarity index 100% rename from kcdc3/classes/migrations/0029_auto__add_field_session_sidebar_text.py rename to kcdc3/apps/classes/migrations/0029_auto__add_field_session_sidebar_text.py diff --git a/kcdc3/apps/classes/migrations/0029_auto__add_role__del_field_bio_description__add_field_bio_title__add_fi.py b/kcdc3/apps/classes/migrations/0029_auto__add_role__del_field_bio_description__add_field_bio_title__add_fi.py new file mode 100644 index 00000000..386dcb90 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0029_auto__add_role__del_field_bio_description__add_field_bio_title__add_fi.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Role' + db.create_table('classes_role', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=48)), + ('description', self.gf('django.db.models.fields.TextField')(blank=True)), + ('sort_order', self.gf('django.db.models.fields.IntegerField')(default=50, null=True, blank=True)), + )) + db.send_create_signal('classes', ['Role']) + + # Deleting field 'Bio.description' + db.delete_column('classes_bio', 'description') + + # Adding field 'Bio.title' + db.add_column('classes_bio', 'title', + self.gf('django.db.models.fields.CharField')(default='', max_length=100, blank=True), + keep_default=False) + + # Adding field 'Bio.staff_description' + db.add_column('classes_bio', 'staff_description', + self.gf('django.db.models.fields.TextField')(default='', blank=True), + keep_default=False) + + # Adding field 'Bio.role' + db.add_column('classes_bio', 'role', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='role', null=True, on_delete=models.SET_NULL, to=orm['classes.Role']), + keep_default=False) + + + def backwards(self, orm): + # Deleting model 'Role' + db.delete_table('classes_role') + + # Adding field 'Bio.description' + db.add_column('classes_bio', 'description', + self.gf('django.db.models.fields.TextField')(default='', blank=True), + keep_default=False) + + # Deleting field 'Bio.title' + db.delete_column('classes_bio', 'title') + + # Deleting field 'Bio.staff_description' + db.delete_column('classes_bio', 'staff_description') + + # Deleting field 'Bio.role' + db.delete_column('classes_bio', 'role_id') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0030_auto__add_field_bio_description.py b/kcdc3/apps/classes/migrations/0030_auto__add_field_bio_description.py new file mode 100644 index 00000000..8e1a2174 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0030_auto__add_field_bio_description.py @@ -0,0 +1,146 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Bio.description' + db.add_column('classes_bio', 'description', + self.gf('django.db.models.fields.TextField')(default='', blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Bio.description' + db.delete_column('classes_bio', 'description') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/classes/migrations/0030_auto__add_field_registration_date_promoted__add_field_registration_lat.py b/kcdc3/apps/classes/migrations/0030_auto__add_field_registration_date_promoted__add_field_registration_lat.py similarity index 100% rename from kcdc3/classes/migrations/0030_auto__add_field_registration_date_promoted__add_field_registration_lat.py rename to kcdc3/apps/classes/migrations/0030_auto__add_field_registration_date_promoted__add_field_registration_lat.py diff --git a/kcdc3/apps/classes/migrations/0031_auto__add_field_registration_date_promoted__add_field_registration_lat.py b/kcdc3/apps/classes/migrations/0031_auto__add_field_registration_date_promoted__add_field_registration_lat.py new file mode 100644 index 00000000..77332dd3 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0031_auto__add_field_registration_date_promoted__add_field_registration_lat.py @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Bio.image' + db.add_column('classes_bio', 'image', + self.gf('django.db.models.fields.files.ImageField')(max_length=100, null=True, blank=True), + keep_default=False) + + def backwards(self, orm): + # Deleting field 'Bio.image' + db.delete_column('classes_bio', 'image') + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0032_auto__add_field_role_extended_description.py b/kcdc3/apps/classes/migrations/0032_auto__add_field_role_extended_description.py new file mode 100644 index 00000000..20eaa095 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0032_auto__add_field_role_extended_description.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Role.extended_description' + db.add_column('classes_role', 'extended_description', + self.gf('django.db.models.fields.TextField')(default='', blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Role.extended_description' + db.delete_column('classes_role', 'extended_description') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0033_auto__add_field_event_location_text.py b/kcdc3/apps/classes/migrations/0033_auto__add_field_event_location_text.py new file mode 100644 index 00000000..7623ea85 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0033_auto__add_field_event_location_text.py @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Event.location_text' + db.add_column('classes_event', 'location_text', + self.gf('django.db.models.fields.CharField')(default='', max_length=300, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Event.location_text' + db.delete_column('classes_event', 'location_text') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0034_auto__add_unique_bio_name.py b/kcdc3/apps/classes/migrations/0034_auto__add_unique_bio_name.py new file mode 100644 index 00000000..cae1e5e3 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0034_auto__add_unique_bio_name.py @@ -0,0 +1,150 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding unique constraint on 'Bio', fields ['name'] + db.create_unique('classes_bio', ['name']) + + + def backwards(self, orm): + # Removing unique constraint on 'Bio', fields ['name'] + db.delete_unique('classes_bio', ['name']) + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0035_auto__add_field_event_registration_opens.py b/kcdc3/apps/classes/migrations/0035_auto__add_field_event_registration_opens.py new file mode 100644 index 00000000..8bb2e53c --- /dev/null +++ b/kcdc3/apps/classes/migrations/0035_auto__add_field_event_registration_opens.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Event.registration_opens' + db.add_column('classes_event', 'registration_opens', + self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Event.registration_opens' + db.delete_column('classes_event', 'registration_opens') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0036_auto__add_field_bio_rating__add_field_bio_comments__add_field_bio_bio_.py b/kcdc3/apps/classes/migrations/0036_auto__add_field_bio_rating__add_field_bio_comments__add_field_bio_bio_.py new file mode 100644 index 00000000..13586ffc --- /dev/null +++ b/kcdc3/apps/classes/migrations/0036_auto__add_field_bio_rating__add_field_bio_comments__add_field_bio_bio_.py @@ -0,0 +1,190 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Bio.rating' + db.add_column('classes_bio', 'rating', + self.gf('django.db.models.fields.IntegerField')(null=True, blank=True), + keep_default=False) + + # Adding field 'Bio.comments' + db.add_column('classes_bio', 'comments', + self.gf('django.db.models.fields.TextField')(null=True, blank=True), + keep_default=False) + + # Adding field 'Bio.bio_email' + db.add_column('classes_bio', 'bio_email', + self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True), + keep_default=False) + + # Adding field 'Session.kicker' + db.add_column('classes_session', 'kicker', + self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), + keep_default=False) + + # Adding field 'Session.show_sidebar_text' + db.add_column('classes_session', 'show_sidebar_text', + self.gf('django.db.models.fields.BooleanField')(default=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Bio.rating' + db.delete_column('classes_bio', 'rating') + + # Deleting field 'Bio.comments' + db.delete_column('classes_bio', 'comments') + + # Deleting field 'Bio.bio_email' + db.delete_column('classes_bio', 'bio_email') + + # Deleting field 'Session.kicker' + db.delete_column('classes_session', 'kicker') + + # Deleting field 'Session.show_sidebar_text' + db.delete_column('classes_session', 'show_sidebar_text') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0037_auto__add_field_event_bio_text.py b/kcdc3/apps/classes/migrations/0037_auto__add_field_event_bio_text.py new file mode 100644 index 00000000..846bfff5 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0037_auto__add_field_event_bio_text.py @@ -0,0 +1,159 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Event.bio_text' + db.add_column('classes_event', 'bio_text', + self.gf('django.db.models.fields.TextField')(default='', blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Event.bio_text' + db.delete_column('classes_event', 'bio_text') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': "orm['auth.User']", 'through': "orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + 'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + 'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['classes.Event']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + 'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0038_auto__add_partner__add_field_event_partner.py b/kcdc3/apps/classes/migrations/0038_auto__add_partner__add_field_event_partner.py new file mode 100644 index 00000000..5912229f --- /dev/null +++ b/kcdc3/apps/classes/migrations/0038_auto__add_partner__add_field_event_partner.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Partner' + db.create_table(u'classes_partner', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)), + ('description', self.gf('django.db.models.fields.TextField')(blank=True)), + ('website', self.gf('django.db.models.fields.URLField')(max_length=200, blank=True)), + ('image', self.gf('django.db.models.fields.files.ImageField')(max_length=100, null=True, blank=True)), + )) + db.send_create_signal(u'classes', ['Partner']) + + # Adding field 'Event.partner' + db.add_column(u'classes_event', 'partner', + self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='partner', null=True, on_delete=models.SET_NULL, to=orm['classes.Partner']), + keep_default=False) + + + def backwards(self, orm): + # Deleting model 'Partner' + db.delete_table(u'classes_partner') + + # Deleting field 'Event.partner' + db.delete_column(u'classes_event', 'partner_id') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0039_auto__add_field_bio_twitter.py b/kcdc3/apps/classes/migrations/0039_auto__add_field_bio_twitter.py new file mode 100644 index 00000000..c69a2b4b --- /dev/null +++ b/kcdc3/apps/classes/migrations/0039_auto__add_field_bio_twitter.py @@ -0,0 +1,169 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Bio.twitter' + db.add_column(u'classes_bio', 'twitter', + self.gf('django.db.models.fields.CharField')(default='', max_length=16, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Bio.twitter' + db.delete_column(u'classes_bio', 'twitter') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'ordering': "['name']", 'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0040_auto__add_field_bio_show_email.py b/kcdc3/apps/classes/migrations/0040_auto__add_field_bio_show_email.py new file mode 100644 index 00000000..24984537 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0040_auto__add_field_bio_show_email.py @@ -0,0 +1,170 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Bio.show_email' + db.add_column(u'classes_bio', 'show_email', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Bio.show_email' + db.delete_column(u'classes_bio', 'show_email') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'ordering': "['name']", 'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0041_auto__add_field_bio_web.py b/kcdc3/apps/classes/migrations/0041_auto__add_field_bio_web.py new file mode 100644 index 00000000..fd83e066 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0041_auto__add_field_bio_web.py @@ -0,0 +1,171 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Bio.web' + db.add_column(u'classes_bio', 'web', + self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Bio.web' + db.delete_column(u'classes_bio', 'web') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'ordering': "['name']", 'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'web': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0042_auto__add_field_location_lat__add_field_location_lng.py b/kcdc3/apps/classes/migrations/0042_auto__add_field_location_lat__add_field_location_lng.py new file mode 100644 index 00000000..1ad1e942 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0042_auto__add_field_location_lat__add_field_location_lng.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Location.lat' + db.add_column(u'classes_location', 'lat', + self.gf('django.db.models.fields.FloatField')(null=True, blank=True), + keep_default=False) + + # Adding field 'Location.lng' + db.add_column(u'classes_location', 'lng', + self.gf('django.db.models.fields.FloatField')(null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Location.lat' + db.delete_column(u'classes_location', 'lat') + + # Deleting field 'Location.lng' + db.delete_column(u'classes_location', 'lng') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'ordering': "['name']", 'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'web': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lat': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'lng': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0043_auto__add_field_location_access.py b/kcdc3/apps/classes/migrations/0043_auto__add_field_location_access.py new file mode 100644 index 00000000..f8b6349f --- /dev/null +++ b/kcdc3/apps/classes/migrations/0043_auto__add_field_location_access.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Location.access' + db.add_column(u'classes_location', 'access', + self.gf('django.db.models.fields.CharField')(default='SEMIPUBLIC', max_length=11), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Location.access' + db.delete_column(u'classes_location', 'access') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'ordering': "['name']", 'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'web': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'access': ('django.db.models.fields.CharField', [], {'default': "'SEMIPUBLIC'", 'max_length': '11'}), + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lat': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'lng': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0044_auto__add_field_event_caption.py b/kcdc3/apps/classes/migrations/0044_auto__add_field_event_caption.py new file mode 100644 index 00000000..69c7c8ae --- /dev/null +++ b/kcdc3/apps/classes/migrations/0044_auto__add_field_event_caption.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Event.caption' + db.add_column(u'classes_event', 'caption', + self.gf('django.db.models.fields.TextField')(default='', blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Event.caption' + db.delete_column(u'classes_event', 'caption') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'ordering': "['name']", 'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'web': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'caption': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'access': ('django.db.models.fields.CharField', [], {'default': "'SEMIPUBLIC'", 'max_length': '11'}), + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lat': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'lng': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0045_auto__add_field_event_list_layout.py b/kcdc3/apps/classes/migrations/0045_auto__add_field_event_list_layout.py new file mode 100644 index 00000000..37c21b22 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0045_auto__add_field_event_list_layout.py @@ -0,0 +1,176 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Event.list_layout' + db.add_column(u'classes_event', 'list_layout', + self.gf('django.db.models.fields.CharField')(default='large', max_length=5), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Event.list_layout' + db.delete_column(u'classes_event', 'list_layout') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'ordering': "['name']", 'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'web': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'caption': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'list_layout': ('django.db.models.fields.CharField', [], {'default': "'large'", 'max_length': '5'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'access': ('django.db.models.fields.CharField', [], {'default': "'SEMIPUBLIC'", 'max_length': '11'}), + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lat': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'lng': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/0046_auto__add_field_event_img_layout.py b/kcdc3/apps/classes/migrations/0046_auto__add_field_event_img_layout.py new file mode 100644 index 00000000..f2a9dcf1 --- /dev/null +++ b/kcdc3/apps/classes/migrations/0046_auto__add_field_event_img_layout.py @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Event.img_layout' + db.add_column(u'classes_event', 'img_layout', + self.gf('django.db.models.fields.CharField')(default='large', max_length=5), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Event.img_layout' + db.delete_column(u'classes_event', 'img_layout') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'classes.bio': { + 'Meta': {'ordering': "['name']", 'object_name': 'Bio'}, + 'bio_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'rating': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'role'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Role']"}), + 'show_email': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'staff_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'user'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'web': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.event': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Event'}, + 'additional_dates_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'bio_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'caption': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'details': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'email_reminder_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_welcome_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'end_time': ('django.db.models.fields.TimeField', [], {'null': 'True', 'blank': 'True'}), + 'facilitators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'facilitators'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'img_layout': ('django.db.models.fields.CharField', [], {'default': "'large'", 'max_length': '5'}), + 'list_layout': ('django.db.models.fields.CharField', [], {'default': "'large'", 'max_length': '5'}), + 'location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'location'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Location']"}), + 'location_text': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + 'main_image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'max_students': ('django.db.models.fields.IntegerField', [], {'default': '999', 'null': 'True', 'blank': 'True'}), + 'partner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'partner'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Partner']"}), + 'registration_opens': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'AUTO'", 'max_length': '7'}), + 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'session'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['classes.Session']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'PUBLISHED'", 'max_length': '9'}), + 'students': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'students'", 'to': u"orm['auth.User']", 'through': u"orm['classes.Registration']", 'blank': 'True', 'symmetrical': 'False', 'null': 'True'}), + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'teacher_bios': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'event'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['classes.Bio']"}), + 'teacher_text': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'teachers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'teachers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['auth.User']"}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'type': ('django.db.models.fields.CharField', [], {'default': "'CLASS'", 'max_length': '9'}), + 'waitlist_status': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) + }, + u'classes.location': { + 'Meta': {'object_name': 'Location'}, + 'access': ('django.db.models.fields.CharField', [], {'default': "'SEMIPUBLIC'", 'max_length': '11'}), + 'address1': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'address2': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'default': "'Washington'", 'max_length': '60', 'blank': 'True'}), + 'hint': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lat': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'lng': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'neighborhood': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'show_exact': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'DC'", 'max_length': '2', 'blank': 'True'}), + 'zip': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}) + }, + u'classes.partner': { + 'Meta': {'object_name': 'Partner'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + u'classes.registration': { + 'Meta': {'ordering': "['date_registered']", 'object_name': 'Registration'}, + 'attended': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_cancelled': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_promoted': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'event': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['classes.Event']", 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'late_promotion': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'student': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True'}), + 'waitlist': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'classes.role': { + 'Meta': {'ordering': "['sort_order']", 'object_name': 'Role'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'extended_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '48'}), + 'sort_order': ('django.db.models.fields.IntegerField', [], {'default': '50', 'null': 'True', 'blank': 'True'}) + }, + u'classes.session': { + 'Meta': {'ordering': "['slug']", 'object_name': 'Session'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'documentation': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_reminder_days': ('django.db.models.fields.IntegerField', [], {'default': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kicker': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), + 'long_title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'registration_status': ('django.db.models.fields.CharField', [], {'default': "'PREVENT'", 'max_length': '7'}), + 'show_sidebar_text': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'sidebar_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'CURRENT'", 'max_length': '9'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['classes'] \ No newline at end of file diff --git a/kcdc3/apps/classes/migrations/__init__.py b/kcdc3/apps/classes/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/kcdc3/classes/models.py b/kcdc3/apps/classes/models.py similarity index 56% rename from kcdc3/classes/models.py rename to kcdc3/apps/classes/models.py index 8822c6ce..984254d8 100644 --- a/kcdc3/classes/models.py +++ b/kcdc3/apps/classes/models.py @@ -2,6 +2,7 @@ from django.contrib.auth.models import User import datetime from datetime import timedelta +from format_helpers import * # TODO this shouldn't be here but don't have settings import working yet # In hours, how long before a class do late promotion rules apply? @@ -20,8 +21,10 @@ class Session(models.Model): ) status = models.CharField(max_length=9, choices=STATUS_CHOICES, default='CURRENT') + kicker = models.CharField('Kicker (for Classes page hed)', max_length=200, blank=True) description = models.TextField('Intro/Description', blank=True) sidebar_text = models.TextField('Sidebar', blank=True) + show_sidebar_text = models.BooleanField(default=True) documentation = models.TextField('Documentation/Extended Text', blank=True) REGISTRATION_STATUS_CHOICES = ( @@ -37,6 +40,21 @@ class Meta: def __unicode__(self): return self.title + # Report regular, published classes + def get_live_classes(self): + return Event.objects.filter(session=self,status="PUBLISHED",type="CLASS") + + # Report regular, published classes + def get_registrations(self): + return Registration.objects.filter(event__session=self,cancelled=False,waitlist=False) + + # Report regular, published classes + def get_attended_registrations(self): + return Registration.objects.filter(event__session=self,cancelled=False,attended=True) + + + + class Location(models.Model): name = models.CharField('Description', max_length=100, blank=True) neighborhood = models.CharField('Neighborhood', max_length=100, blank=True) @@ -47,20 +65,124 @@ class Location(models.Model): zip = models.CharField('ZIP', max_length=5, blank=True) hint = models.CharField('Hint', max_length=300, blank=True) show_exact = models.BooleanField('Show details/exact address on public site?', default=True) + LOCATION_ACCESS_CHOICES = ( + ('public', 'Public'), + ('semipublic', 'Semi-Public'), + ('private', 'Private'), + ) + access = models.CharField(max_length=11, choices=LOCATION_ACCESS_CHOICES, default='SEMIPUBLIC') + lat = models.FloatField('Latitude',blank=True,null=True) + lng = models.FloatField('Longitude',blank=True,null=True) + def __unicode__(self): + return self.name + + +# Organizations with whom KCDC is working +class Partner(models.Model): + name = models.CharField('Name', max_length=100, blank=False, unique=True) + description = models.TextField('Description', blank=True) + website = models.URLField(blank=True) + image = models.ImageField('Image (150x150px max)', upload_to='partners', blank=True, null=True) + + class Meta: + verbose_name=u'Class Partner' + + def __unicode__(self): + return self.name + + + +class Role(models.Model): + + name = models.CharField('Name', max_length=48) + description = models.TextField(blank=True) + extended_description = models.TextField(blank=True) + sort_order = models.IntegerField(blank=True, null=True, default=50) + + class Meta: + ordering = ['sort_order'] + verbose_name=u'Staff Role' + def __unicode__(self): return self.name + + class Bio(models.Model): - name = models.CharField('Name', max_length=100, blank=False) + + user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL, related_name='user') + + # Basic information, used in class descriptions and elsewhere by default + name = models.CharField('Name', max_length=100, blank=False, unique=True) description = models.TextField('Bio text', blank=True) + web = models.CharField('Website', max_length=255, blank=True) + image = models.ImageField('Image (160x160px)', upload_to='bio', blank=True, null=True) + twitter = models.CharField('Twitter Handle', max_length=16, blank=True) + show_email = models.BooleanField('Show email to public?', default=False) + + # No longer in use. Why? Because Django insists on adding a slash + # to the end of URLFields, and defining my own field type seems excessive website = models.URLField(blank=True) - user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL, related_name='user') + + # Fields for staff bios + title = models.CharField(max_length=100, blank=True) + staff_description = models.TextField('Staff bio text', blank=True) + role = models.ForeignKey(Role, blank=True, null=True, on_delete=models.SET_NULL, related_name='role') + + # Fields for internal use + rating = models.IntegerField('Rating', null=True, blank=True) + comments = models.TextField('Comments', null=True, blank=True) + bio_email = models.EmailField(null=True, blank=True) + + # Provide a filled-out description if one is available + def get_staff_description(self): + + if self.staff_description: + return self.staff_description + else: + return self.description + + # Provide Twitter handle with at-sign removed + def get_twitter(self): + tmp = self.twitter.replace("@","") + return tmp + + # Provide website address; add http:// if no protocol is specified + def get_web(self): + return add_protocol(self.web) + + # Provide website with http:// removed + def get_plain_web(self): + return remove_protocol(self.web) + + # Provide email from bio; otherwise email from user + def get_email(self): + + if self.bio_email: + return self.bio_email + elif self.user: + return self.user.email + else: + return "" + + # Which classes is this person teaching? + def get_classes(self): + + return Event.objects.filter(teacher_bios=self) + + class Meta: + ordering = ['name'] + verbose_name=u'Staff/Teacher Bio' + def __unicode__(self): return self.name + + # an Event is a single class or other event class Event(models.Model): + # fundamentals title = models.CharField(max_length=200) slug = models.SlugField(unique=True) STATUS_CHOICES = ( @@ -70,14 +192,19 @@ class Event(models.Model): ('REMOVED', 'Removed'), ) status = models.CharField(max_length=9, choices=STATUS_CHOICES, default='PUBLISHED') + + # show on front page featured = models.BooleanField(default=False) + # dates session = models.ForeignKey(Session, blank=False, null=True, on_delete=models.SET_NULL, related_name='session') date = models.DateTimeField('First meeting') end_time = models.TimeField('End time', blank=True, null=True) additional_dates_text = models.TextField('Notes about additional meetings', blank=True) + # locational location = models.ForeignKey(Location, blank=True, null=True, on_delete=models.SET_NULL, related_name='location') + partner = models.ForeignKey(Partner, blank=True, null=True, on_delete=models.SET_NULL, related_name='partner') #TODO: `type' keyword is reserved, and using it is considered naughty. TYPE_CHOICES = ( @@ -87,21 +214,43 @@ class Event(models.Model): ) type = models.CharField(max_length=9, choices=TYPE_CHOICES, default='CLASS') - summary = models.TextField(blank=True) + # descriptive text + summary = models.TextField('Teaser', blank=True) description = models.TextField(blank=True) details = models.TextField('Pre-class details', blank=True) - thumbnail = models.ImageField(upload_to='event_images', blank=True, null=True) - main_image = models.ImageField(upload_to='event_images', blank=True, null=True) - - email_welcome_text = models.TextField('Extra text for welcome email', blank=True) - email_reminder = models.BooleanField('Send reminder email?', default=True) - email_reminder_text = models.TextField('Extra text for reminder email', blank=True) - documentation = models.TextField(blank=True) + # list view + TN_SMALL = 'small' + TN_LARGE = 'large' + LIST_LAYOUT_CHOICES = ( + (TN_SMALL, 'Small'), + (TN_LARGE, 'Large'), + ) + list_layout = models.CharField(max_length=5, choices=LIST_LAYOUT_CHOICES, default=TN_LARGE) + thumbnail = models.ImageField('Thumbnail (max 432px wide)', upload_to='event_images', blank=True, null=True) + + # detail view + IMG_SMALL = 'small' + IMG_LARGE = 'large' + IMG_LAYOUT_CHOICES = ( + (IMG_SMALL, 'Small'), + (IMG_LARGE, 'Large'), + ) + img_layout = models.CharField(max_length=5, choices=IMG_LAYOUT_CHOICES, default=IMG_LARGE) + main_image = models.ImageField('Main image (max 660px wide)', upload_to='event_images', blank=True, null=True) + caption = models.TextField(blank=True) + + # email reminders + email_welcome_text = models.TextField('Extra text for welcome email', blank=True) + email_reminder = models.BooleanField('Send reminder email?', default=True) # unused + email_reminder_text = models.TextField('Extra text for reminder email', blank=True) # unused + + # student numbers and waitlist max_students = models.IntegerField('Max students', blank=True, null=True, default=999) waitlist_status = models.BooleanField('Use waitlist', default=True) + # registration control REGISTRATION_STATUS_CHOICES = ( ('AUTO', 'Auto'), ('ALLOW', 'Allow (+)'), @@ -109,15 +258,25 @@ class Event(models.Model): ('HIDE', 'Hide forms'), ) registration_status = models.CharField(max_length=7, choices=REGISTRATION_STATUS_CHOICES, default='AUTO') + registration_opens = models.DateTimeField(blank=True, null=True) + # people associated with this class teacher_bios = models.ManyToManyField(Bio, blank=True, null=True, related_name='event') - teacher_text = models.CharField('Teacher (text)', max_length=200, blank=True) teachers = models.ManyToManyField(User, blank=True, null=True, related_name='teachers') facilitators = models.ManyToManyField(User, blank=True, null=True, related_name='facilitators') students = models.ManyToManyField(User, through='Registration', blank=True, null=True, related_name='students') + + # optional, course-by-course bio text + bio_text = models.TextField('Alternative teacher bio text for this class',blank=True) + + # legacy fields + teacher_text = models.CharField('Teacher (text)', max_length=200, blank=True) + location_text = models.CharField('Location (text)', max_length=300, blank=True) class Meta: ordering = ['-date'] + verbose_name=u'Class/Event' + verbose_name_plural=u'Classes/Events' def __unicode__(self): return self.title @@ -161,11 +320,14 @@ def is_registration_open(self): return False elif self.registration_status == 'ALLOW': return True - elif self.registration_status == 'AUTO' and self.session.registration_status == 'ALLOW': - return True + elif self.registration_status == 'AUTO' and self.registration_opens: + if self.registration_opens < datetime.datetime.now(): + return True + else: + return False else: return False - + def is_late_promotion(self): """ True if a user is being promoted from the waitlist close to the class meeting time.""" @@ -197,3 +359,5 @@ class Meta: ("record_attendance", "Can mark student attendance"), ("edit_students", "Can add or remove students"), ) + + diff --git a/kcdc3/templates/classes/email_cancelled.txt b/kcdc3/apps/classes/templates/classes/email_cancelled.txt similarity index 100% rename from kcdc3/templates/classes/email_cancelled.txt rename to kcdc3/apps/classes/templates/classes/email_cancelled.txt diff --git a/kcdc3/templates/classes/email_cancelled_subject.txt b/kcdc3/apps/classes/templates/classes/email_cancelled_subject.txt similarity index 100% rename from kcdc3/templates/classes/email_cancelled_subject.txt rename to kcdc3/apps/classes/templates/classes/email_cancelled_subject.txt diff --git a/kcdc3/templates/classes/email_promoted.txt b/kcdc3/apps/classes/templates/classes/email_promoted.txt similarity index 87% rename from kcdc3/templates/classes/email_promoted.txt rename to kcdc3/apps/classes/templates/classes/email_promoted.txt index 919376d6..81caac2d 100644 --- a/kcdc3/templates/classes/email_promoted.txt +++ b/kcdc3/apps/classes/templates/classes/email_promoted.txt @@ -5,7 +5,7 @@ It’s your lucky day! There is a space for you in a Knowledge Commons DC class. We've added you to the class roster. We hope that you can attend. If you can't, please cancel your registration at: - http://c.knowledgecommonsdc.org/classes/{{ slug }} + http://knowledgecommonsdc.org/classes/{{ slug }} {% if is_late_promotion %}We realize that you are receiving this message quite late. We want to give you a chance to attend, but we understand @@ -19,7 +19,7 @@ DATE: {{ date|date:"l, j F Y, P" }} {% if end_time %}to {{ end_time|date:"P" }}{ {{ additional_dates_text|striptags }}{% endif %} {% if email_welcome_text %}ADDITIONAL INFORMATION: -{{ email_welcome_text }}{% endif %} +{{ email_welcome_text|safe }}{% endif %} LOCATION: {% ifnotequal location_name location_address1 %}{{ location_name }}{% endifnotequal %} @@ -31,10 +31,10 @@ LOCATION: {{ location_hint }}{% endif %} COURSE WEBPAGE: -http://c.knowledgecommonsdc.org/classes/{{ slug }} +http://knowledgecommonsdc.org/classes/{{ slug }} If you'd like to participate more actively in this gift economy, -drop us a line at knowledgecomonsdc@gmail.com to volunteer. +drop us a line at knowledgecommonsdc@gmail.com to volunteer. Please reply to this email if you'd like more information. diff --git a/kcdc3/templates/classes/email_promoted_subject.txt b/kcdc3/apps/classes/templates/classes/email_promoted_subject.txt similarity index 100% rename from kcdc3/templates/classes/email_promoted_subject.txt rename to kcdc3/apps/classes/templates/classes/email_promoted_subject.txt diff --git a/kcdc3/templates/classes/email_registered.txt b/kcdc3/apps/classes/templates/classes/email_registered.txt similarity index 80% rename from kcdc3/templates/classes/email_registered.txt rename to kcdc3/apps/classes/templates/classes/email_registered.txt index b65c9bcb..ef52790b 100644 --- a/kcdc3/templates/classes/email_registered.txt +++ b/kcdc3/apps/classes/templates/classes/email_registered.txt @@ -6,7 +6,7 @@ advance as you can. Many of our classes have waitlists, and our teachers need to know how many students to expect. You can cancel your registration at: -http://c.knowledgecommonsdc.org/classes/{{ slug }} +http://knowledgecommonsdc.org/classes/{{ slug }} CLASS: {{ title }} @@ -27,13 +27,12 @@ LOCATION: {{ location_hint }}{% endif %} COURSE WEBPAGE: -http://c.knowledgecommonsdc.org/classes/{{ slug }} +http://knowledgecommonsdc.org/classes/{{ slug }} Please email us if you need special accommodations. -If you'd like to participate more actively in this gift economy, -drop us a line at knowledgecomonsdc@gmail.com to volunteer. +If you find yourself signing up for several classes, consider giving back to our community by volunteering or teaching. Drop us a line at knowledgecommonsdc@gmail.com if you want to learn about helping out. Onwards and upwards! diff --git a/kcdc3/templates/classes/email_registered_subject.txt b/kcdc3/apps/classes/templates/classes/email_registered_subject.txt similarity index 100% rename from kcdc3/templates/classes/email_registered_subject.txt rename to kcdc3/apps/classes/templates/classes/email_registered_subject.txt diff --git a/kcdc3/apps/classes/templates/classes/email_reminder_body.txt b/kcdc3/apps/classes/templates/classes/email_reminder_body.txt new file mode 100644 index 00000000..6f81014e --- /dev/null +++ b/kcdc3/apps/classes/templates/classes/email_reminder_body.txt @@ -0,0 +1,35 @@ +Just a reminder that your Knowledge Commons class is coming up! + +CLASS: {{ title }} + +DATE: {{ date|date:"l, j F Y, P" }} {% if end_time %}to {{ end_time|date:"P" }}{% endif %} + +{% if additional_dates_text %}ADDITIONAL MEETINGS: {{ additional_dates_text|striptags }}{% endif %} + +{% if email_welcome_text %}ADDITIONAL INFORMATION: +{{ email_welcome_text }}{% endif %} + +LOCATION: +{% ifnotequal location_name location_address1 %}{{ location_name }}{% endifnotequal %} +{{ location_address1 }} +{% if location_address2 %}{{ location_address2 }}{% endif %} +{% if location_city %}{{ location_city }}, {% endif %} {% if location_state %}{{ location_state }}{% endif %}{% if location_zip %}{{ location_zip }}{% endif %} +{% if location_neighborhood %}Neighborhood: {{ location_neighborhood }} {% endif %} +{% if location_hint %} +{{ location_hint }}{% endif %} + +COURSE WEBPAGE: +http://knowledgecommonsdc.org/classes/{{ slug }} + +Our teachers and organizers have volunteered their time and resources to +create this experience, so if you're unable to attend please cancel as far in +advance as you can. Many of our classes have waitlists, and our teachers need +to know how many students to expect. + +You can cancel your registration at: +http://knowledgecommonsdc.org/classes/{{ slug }} + +With best wishes, +Knowledge Commons DC + +http://knowledgecommonsdc.org diff --git a/kcdc3/apps/classes/templates/classes/email_reminder_subject.txt b/kcdc3/apps/classes/templates/classes/email_reminder_subject.txt new file mode 100644 index 00000000..1f28265f --- /dev/null +++ b/kcdc3/apps/classes/templates/classes/email_reminder_subject.txt @@ -0,0 +1 @@ +KCDC Reminder: You are registered for {{ title }}! diff --git a/kcdc3/templates/classes/email_waitlisted.txt b/kcdc3/apps/classes/templates/classes/email_waitlisted.txt similarity index 83% rename from kcdc3/templates/classes/email_waitlisted.txt rename to kcdc3/apps/classes/templates/classes/email_waitlisted.txt index 716143cf..117a12ef 100644 --- a/kcdc3/templates/classes/email_waitlisted.txt +++ b/kcdc3/apps/classes/templates/classes/email_waitlisted.txt @@ -8,11 +8,11 @@ DATE: {{ date|date:"l, j F Y, P" }} {% if end_time %}to {{ end_time|date:"P" }}{ {% if additional_dates_text %}ADDITIONAL MEETINGS: {{ additional_dates_text|striptags }}{% endif %} COURSE WEBPAGE: -http://c.knowledgecommonsdc.org/classes/{{ slug }} +http://knowledgecommonsdc.org/classes/{{ slug }} If you would no longer like to remain on the waitlist, you can withdraw at: - http://c.knowledgecommonsdc.org/classes/{{ slug }} + http://knowledgecommonsdc.org/classes/{{ slug }} Onwards and upwards! diff --git a/kcdc3/templates/classes/email_waitlisted_subject.txt b/kcdc3/apps/classes/templates/classes/email_waitlisted_subject.txt similarity index 100% rename from kcdc3/templates/classes/email_waitlisted_subject.txt rename to kcdc3/apps/classes/templates/classes/email_waitlisted_subject.txt diff --git a/kcdc3/templates/classes/event_archive.html b/kcdc3/apps/classes/templates/classes/event_archive.html similarity index 76% rename from kcdc3/templates/classes/event_archive.html rename to kcdc3/apps/classes/templates/classes/event_archive.html index 76bb8002..a45d6b7e 100644 --- a/kcdc3/templates/classes/event_archive.html +++ b/kcdc3/apps/classes/templates/classes/event_archive.html @@ -1,4 +1,5 @@ {% extends "classes/event_base.html" %} +{% load pinata_filters %} {% block title %} / {% for session in selected_session %}{{ session.long_title }}{% endfor %} @@ -9,7 +10,7 @@

{% for session in selected_session %} - {{ session.long_title }} + {{ session.long_title | smartlines }} {% endfor %}

@@ -19,7 +20,7 @@

{% for session in selected_session %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/kcdc3/templates/classes/event_base.html b/kcdc3/apps/classes/templates/classes/event_base.html similarity index 82% rename from kcdc3/templates/classes/event_base.html rename to kcdc3/apps/classes/templates/classes/event_base.html index 2b09a1dc..921ad8bf 100644 --- a/kcdc3/templates/classes/event_base.html +++ b/kcdc3/apps/classes/templates/classes/event_base.html @@ -11,7 +11,6 @@ {% for session in sessions reversed %}
  • {{ session.title }}
  • {% endfor %} -
  • More sessions…
  • diff --git a/kcdc3/templates/classes/event_detail.html b/kcdc3/apps/classes/templates/classes/event_detail.html similarity index 59% rename from kcdc3/templates/classes/event_detail.html rename to kcdc3/apps/classes/templates/classes/event_detail.html index 1a0d71fc..a33fdb36 100644 --- a/kcdc3/templates/classes/event_detail.html +++ b/kcdc3/apps/classes/templates/classes/event_detail.html @@ -1,4 +1,6 @@ {% extends "base.html" %} +{% load pinata_filters %} + {% block title %} / {{ event.title }} @@ -7,13 +9,18 @@ {% block content %}
    -

    {{ event.title }}

    + {% if event.type == "EXTERNAL" %}

    Partner Event

    {% endif %} +

    {{ event.title | smartlines }}

    + {% if event.type == "EVENT" %} + KCDC Event + {% endif %} + date {{ event.date|date:"l, j F Y" }} @@ -25,48 +32,70 @@

    {{ event.title }}

    👤 {% for bio in event.teacher_bios.all %}{% if not forloop.first %}, {% endif %}{{ bio.name }}{% endfor %} + {% if event.teacher_text %}{{ event.teacher_text|safe }}{% endif %} - + {% if event.location %} 🏢 {{ event.location }} - + {% endif %} +

    {% if event.has_passed %} Past - {% elif event.registration_status == "ALLOW" %} - {% if event.registration_count >= event.max_students %} - {% if event.waitlist_status %} + {% elif event.registration_status == "HIDE" %} + + {% else %} + {% if event.registration_status == "AUTO" and not event.is_registration_open %} + + {% elif event.registration_status == "PREVENT" %} + Registration is closed + {% elif event.registration_count >= event.max_students %} + {% if event.waitlist_status %} Waitlist {% else %} Class is full {% endif %} - {% else %} + {% else%} Registration is open {% endif %} - {% elif event.registration_status == 'PREVENT' %} - Registration is closed - {% endif %} + {% endif %}

    - {% if event.main_image %}

    event preview image

    {% endif %} + {% if event.main_image %}

    event preview image

    {% endif %} + {% if event.caption %}
    {{ event.caption | smartlines | safe }}
    {% endif %} - {{ event.description|safe }} + {{ event.description | smartlines | safe }} + + {% if event.type == "EXTERNAL" %} +

    + This is not a KCDC event. It is produced by another organization. + We include it because we think that it will be of interest to our students. +

    + {% endif %} {% if event.documentation %}

    Documentation

    - {{ event.documentation|safe }} + {{ event.documentation | smartlines | safe }} {% endif %} {% if event.additional_dates_text %}

    Additional meetings

    - {{ event.additional_dates_text|safe }} + {{ event.additional_dates_text | smartquotes | safe }} + {% endif %} + + {% if event.partner %} +
    + + {{ event.partner.description | smartquotes | safe }} +
    {% endif %}

    Location

    + {% if event.location_text %}

    {{ event.location_text|safe }}

    {% endif %}

    {% ifnotequal event.location.name event.location.address1 %}{{ event.location.name }}
    {% endifnotequal %} {% if event.location.address1 and event.location.show_exact %} @@ -85,18 +114,16 @@

    Location

    {% if event.details %}

    Details

    - {{ event.details|safe }} + {{ event.details | smartlines | safe }} {% endif %} - - {% if event.has_passed %}

    Past event

    {% elif event.registration_status == "HIDE" %} {% else %} - {% if event.registration_status == "AUTO" %} -

    Registration is not yet open.

    + {% if event.registration_status == "AUTO" and not event.is_registration_open %} +

    Registration for this class opens {{ event.registration_opens|date:"l, j F, P" }}

    {% elif event.registration_status == "PREVENT" %}

    Registration is closed.

    {% elif registration_count >= event.max_students %} @@ -105,7 +132,7 @@

    This class is full, but there is a waitlist available.

    {% else %}

    This class is full.

    {% endif %} - {% else %} + {% else%}

    Register

    {% endif %} {% endif %} @@ -165,11 +192,33 @@

    Register