Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/pyohio/symposion into pyo…
Browse files Browse the repository at this point in the history
…hio-master

Conflicts:
	README.md
	symposion/boxes/urls.py
	symposion/cms/urls.py
	symposion/proposals/actions.py
	symposion/proposals/urls.py
	symposion/proposals/views.py
	symposion/reviews/tests.py
	symposion/reviews/urls.py
	symposion/reviews/views.py
	symposion/schedule/forms.py
	symposion/schedule/models.py
	symposion/schedule/views.py
	symposion/speakers/fixture_gen.py
	symposion/sponsorship/urls.py
	symposion/templates/cms/file_create.html
	symposion/templates/cms/file_index.html
	symposion/templates/conference/user_list.html
	symposion/templates/dashboard.html
	symposion/templates/emails/proposal_new_message/message.html
	symposion/templates/emails/proposal_updated/message.html
	symposion/templates/emails/speaker_addition/message.html
	symposion/templates/emails/speaker_invite/message.html
	symposion/templates/proposals/_pending_proposal_row.html
	symposion/templates/proposals/_proposal_fields.html
	symposion/templates/proposals/_proposal_row.html
	symposion/templates/proposals/proposal_cancel.html
	symposion/templates/proposals/proposal_detail.html
	symposion/templates/proposals/proposal_edit.html
	symposion/templates/proposals/proposal_speaker_manage.html
	symposion/templates/proposals/proposal_submit.html
	symposion/templates/reviews/_review_table.html
	symposion/templates/reviews/base.html
	symposion/templates/reviews/result_notification.html
	symposion/templates/reviews/result_notification_prepare.html
	symposion/templates/reviews/review_admin.html
	symposion/templates/reviews/review_assignment.html
	symposion/templates/reviews/review_detail.html
	symposion/templates/reviews/review_review.html
	symposion/templates/reviews/review_stats.html
	symposion/templates/schedule/_edit_grid.html
	symposion/templates/schedule/_grid.html
	symposion/templates/schedule/_slot_edit.html
	symposion/templates/schedule/presentation_detail.html
	symposion/templates/schedule/schedule_list.html
	symposion/templates/speakers/speaker_create.html
	symposion/templates/speakers/speaker_edit.html
	symposion/templates/speakers/speaker_profile.html
	symposion/templates/sponsorship/add.html
	symposion/templates/sponsorship/apply.html
	symposion/templates/sponsorship/detail.html
	symposion/templates/sponsorship/list.html
	symposion/templates/teams/team_detail.html
  • Loading branch information
paltman committed Dec 15, 2014
2 parents 5c57512 + 2f6930a commit f3614fc
Show file tree
Hide file tree
Showing 39 changed files with 1,533 additions and 248 deletions.
7 changes: 6 additions & 1 deletion README.rst
Expand Up @@ -27,7 +27,12 @@ See http://eldarion.com/symposion/ for commercial support, customization and hos
Quickstart
==========

If you're interested in running symposion locally, we have built a [basic
To install Symposion, run:

pip install symposion

Symposion is a Django app. You will need to create a Django project to
customize and manage your Symposion installation. We have built a [basic
Django startproject template that includes Symposion][1].

[1]: https://github.com/pinax/pinax-project-symposion
13 changes: 13 additions & 0 deletions requirements/base.txt
@@ -0,0 +1,13 @@
Django>=1.5,<=1.6
django-appconf==0.5
django-forms-bootstrap>=2.0.3.post2
django-markitup==2.1
django-model-utils==2.0.2
django-reversion==1.8
django-sitetree==1.0.0
django-taggit==0.11.2
django-timezones==0.2
django-user-accounts==1.0b13
easy-thumbnails==1.4
html5lib==0.95
markdown==2.3.1
File renamed without changes.
15 changes: 13 additions & 2 deletions setup.py
@@ -1,18 +1,28 @@
#!/usr/bin/env python

import os
from setuptools import setup, find_packages

import symposion


def read_file(filename):
"""Read a file into a string."""
path = os.path.abspath(os.path.dirname(__file__))
filepath = os.path.join(path, filename)
try:
return open(filepath).read()
except IOError:
return ''


setup(
name="symposion",
author="James Tauber",
author_email="jtauber@jtauber.com",
version=symposion.__version__,
description="A collection of Django apps for conference websites.",
url="http://eldarion.com/symposion/",
packages=find_packages(exclude=["symposion_project"]),
packages=find_packages(),
include_package_data=True,
classifiers=(
"Development Status :: 4 - Beta",
Expand All @@ -22,4 +32,5 @@
"Natural Language :: English",
"License :: OSI Approved :: MIT License",
),
install_requires=read_file("requirements/base.txt").splitlines(),
)
76 changes: 76 additions & 0 deletions symposion/boxes/migrations/0001_initial.py
@@ -0,0 +1,76 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as 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 'Box'
db.create_table('boxes_box', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('label', self.gf('django.db.models.fields.CharField')(max_length=100, db_index=True)),
('content', self.gf('markitup.fields.MarkupField')(no_rendered_field=True, blank=True)),
('created_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='boxes', to=orm['auth.User'])),
('last_updated_by', self.gf('django.db.models.fields.related.ForeignKey')(related_name='updated_boxes', to=orm['auth.User'])),
('_content_rendered', self.gf('django.db.models.fields.TextField')(blank=True)),
))
db.send_create_signal('boxes', ['Box'])


def backwards(self, orm):
# Deleting model 'Box'
db.delete_table('boxes_box')


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'})
},
'boxes.box': {
'Meta': {'object_name': 'Box'},
'_content_rendered': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'content': ('markitup.fields.MarkupField', [], {'no_rendered_field': 'True', 'blank': 'True'}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'boxes'", 'to': "orm['auth.User']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'label': ('django.db.models.fields.CharField', [], {'max_length': '100', 'db_index': 'True'}),
'last_updated_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updated_boxes'", 'to': "orm['auth.User']"})
},
'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 = ['boxes']
Empty file.
1 change: 0 additions & 1 deletion symposion/boxes/models.py
@@ -1,5 +1,4 @@
from django.db import models

from django.contrib.auth.models import User

import reversion
Expand Down
2 changes: 1 addition & 1 deletion symposion/boxes/urls.py
@@ -1,4 +1,4 @@
from django.conf.urls import url, patterns
from django.conf.urls import patterns, url


urlpatterns = patterns(
Expand Down
83 changes: 83 additions & 0 deletions symposion/cms/migrations/0001_initial.py
@@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as 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 'Page'
db.create_table('cms_page', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
('path', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)),
('body', self.gf('markitup.fields.MarkupField')(no_rendered_field=True)),
('status', self.gf('django.db.models.fields.IntegerField')(default=2)),
('publish_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
('created', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
('updated', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
('_body_rendered', self.gf('django.db.models.fields.TextField')(blank=True)),
))
db.send_create_signal('cms', ['Page'])

# Adding model 'File'
db.create_table('cms_file', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('file', self.gf('django.db.models.fields.files.FileField')(max_length=100)),
('created', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
))
db.send_create_signal('cms', ['File'])


def backwards(self, orm):
# Deleting model 'Page'
db.delete_table('cms_page')

# Deleting model 'File'
db.delete_table('cms_file')


models = {
'cms.file': {
'Meta': {'object_name': 'File'},
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
},
'cms.page': {
'Meta': {'object_name': 'Page'},
'_body_rendered': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'body': ('markitup.fields.MarkupField', [], {'no_rendered_field': 'True'}),
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
'publish_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'status': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
},
'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'})
},
'taggit.tag': {
'Meta': {'object_name': 'Tag'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'})
},
'taggit.taggeditem': {
'Meta': {'object_name': 'TaggedItem'},
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'taggit_taggeditem_tagged_items'", 'to': "orm['contenttypes.ContentType']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'object_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}),
'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'taggit_taggeditem_items'", 'to': "orm['taggit.Tag']"})
}
}

complete_apps = ['cms']
Empty file.
61 changes: 61 additions & 0 deletions symposion/conference/migrations/0001_initial.py
@@ -0,0 +1,61 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as 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 'Conference'
db.create_table('conference_conference', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
('start_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('end_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('timezone', self.gf('timezones.fields.TimeZoneField')(default='US/Eastern', max_length=100, blank=True)),
))
db.send_create_signal('conference', ['Conference'])

# Adding model 'Section'
db.create_table('conference_section', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('conference', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['conference.Conference'])),
('name', self.gf('django.db.models.fields.CharField')(max_length=100)),
('slug', self.gf('django.db.models.fields.SlugField')(max_length=50)),
('start_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
('end_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
))
db.send_create_signal('conference', ['Section'])


def backwards(self, orm):
# Deleting model 'Conference'
db.delete_table('conference_conference')

# Deleting model 'Section'
db.delete_table('conference_section')


models = {
'conference.conference': {
'Meta': {'object_name': 'Conference'},
'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'timezone': ('timezones.fields.TimeZoneField', [], {'default': "'US/Eastern'", 'max_length': '100', 'blank': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
'conference.section': {
'Meta': {'ordering': "['start_date']", 'object_name': 'Section'},
'conference': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['conference.Conference']"}),
'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}),
'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'})
}
}

complete_apps = ['conference']
Empty file.
3 changes: 3 additions & 0 deletions symposion/conference/models.py
Expand Up @@ -3,6 +3,9 @@

from timezones.fields import TimeZoneField

from south.modelsinspector import add_introspection_rules
add_introspection_rules([], [r"^timezones\.fields\.TimeZoneField"])


CONFERENCE_CACHE = {}

Expand Down
5 changes: 2 additions & 3 deletions symposion/proposals/actions.py
Expand Up @@ -22,9 +22,8 @@ def export_as_csv(modeladmin, request, queryset):
elif exclude:
excludeset = set(exclude)
field_names = field_names - excludeset
response = HttpResponse(mimetype="text/csv")
response["Content-Disposition"] = \
"attachment; filename=%s.csv" % unicode(opts).replace(".", "_")
response = HttpResponse(content_type="text/csv")
response["Content-Disposition"] = "attachment; filename=%s.csv" % unicode(opts).replace(".", "_")
writer = csv.writer(response)
if header:
writer.writerow(list(field_names))
Expand Down

0 comments on commit f3614fc

Please sign in to comment.