diff options
Diffstat (limited to 'project/kiwipycon/talk')
-rw-r--r-- | project/kiwipycon/talk/__init__.py | 0 | ||||
-rw-r--r-- | project/kiwipycon/talk/admin.py | 23 | ||||
-rw-r--r-- | project/kiwipycon/talk/forms.py | 62 | ||||
-rw-r--r-- | project/kiwipycon/talk/migrations/0001_initial.py | 68 | ||||
-rw-r--r-- | project/kiwipycon/talk/migrations/__init__.py | 0 | ||||
-rw-r--r-- | project/kiwipycon/talk/models.py | 73 | ||||
-rw-r--r-- | project/kiwipycon/talk/templatetags/__init__.py | 1 | ||||
-rw-r--r-- | project/kiwipycon/talk/templatetags/talk_extras.py | 8 | ||||
-rw-r--r-- | project/kiwipycon/talk/views.py | 193 |
9 files changed, 0 insertions, 428 deletions
diff --git a/project/kiwipycon/talk/__init__.py b/project/kiwipycon/talk/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/project/kiwipycon/talk/__init__.py +++ /dev/null diff --git a/project/kiwipycon/talk/admin.py b/project/kiwipycon/talk/admin.py deleted file mode 100644 index 73c8d6a..0000000 --- a/project/kiwipycon/talk/admin.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import absolute_import - -#django.contrib -from django.contrib import admin - -#kiwipycon -from .models import Talk - -class TalkAdmin(admin.ModelAdmin): - list_display = ('title', 'speaker', 'topic', 'duration', 'audience', 'approved') - list_filter = ('approved', 'audience', 'topic', 'speaker') - search_fields = ('slug', 'title', 'abstract') - prepopulate_from = {'slug': ('title',)} - fieldsets = ( - ('Details', { - 'fields': ('slug', 'title', 'abstract', 'speaker') - }), - ('Information', { - 'fields': ('topic', 'duration', 'audience', 'approved') - }), - ) -admin.site.register(Talk, TalkAdmin) diff --git a/project/kiwipycon/talk/forms.py b/project/kiwipycon/talk/forms.py deleted file mode 100644 index 49e12d7..0000000 --- a/project/kiwipycon/talk/forms.py +++ /dev/null @@ -1,62 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import absolute_import - -#django -from django import forms - -#django.contrib -from django.contrib.auth.models import User - -#tagging -from tagging.forms import TagField - -#kiwipycon -#from .models import TOPIC_CHOICES -from .models import DURATION_CHOICES -from .models import AUDIENCE_CHOICES - - -class TalkSubmitForm(forms.Form): - """Submit talk form - """ - authors_bio = forms.CharField(widget=forms.Textarea, required=True, - label=u'Author(s) and short bio', - help_text=u'(include a bit about your qualifications regarding your presentation topic)') - contact = forms.EmailField(required=True, label=u'E-Mail ID', - help_text=u'Provide your email ID', - max_length=1024, - widget=forms.TextInput(attrs={'size':'50'})) - title = forms.CharField(required=True, label=u'Talk title', - help_text=u'Title of proposed presentation', - max_length=1024, - widget=forms.TextInput(attrs={'size':'50'})) - abstract = forms.CharField(widget=forms.Textarea, required=True, - help_text=u'Summary of proposed presentation (In 300-700 words)') -# outline = forms.CharField(widget=forms.Textarea, required=True, -# help_text=u'Outline of proposed presentation (around 200 words)') -# topic = forms.ChoiceField(choices=TOPIC_CHOICES, -# label=u'Topic', help_text=u'Select one of the available options or enter other topic') -# topic_other = forms.CharField(label=u'Other topic', -# help_text=u'Description of your topic', -# max_length=255, -# required=False, -# widget=forms.TextInput(attrs={'size':'50'})) - topic = forms.CharField(label=u'Topic', - help_text=u'Description of your topic or comma separated tags', - max_length=255, - required=False, - widget=forms.TextInput(attrs={'size':'50'})) - duration = forms.ChoiceField(choices=DURATION_CHOICES, required=True, - label=u'Preferred timeslot', help_text=u'Select preferred time slot') - audience = forms.ChoiceField(choices=AUDIENCE_CHOICES, label=u'Intended audience', - help_text=u'Select one of the available options or enter other type of intended audience') -# audience_other = forms.CharField(label=u'Other intended audience', -# help_text=u'Description of intended audience (ie. Discordians)', -# max_length=128, -# required=False, -# widget=forms.TextInput(attrs={'size':'50'})) -# tags = TagField(max_length=255, -# widget=forms.TextInput(attrs={'size':'50'})) - -class TalkEditForm(TalkSubmitForm): - id = forms.CharField(widget=forms.HiddenInput) diff --git a/project/kiwipycon/talk/migrations/0001_initial.py b/project/kiwipycon/talk/migrations/0001_initial.py deleted file mode 100644 index 6eec7f7..0000000 --- a/project/kiwipycon/talk/migrations/0001_initial.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- - -from south.db import db -from django.db import models -from project.kiwipycon.talk.models import * - -class Migration: - - def forwards(self, orm): - - # Adding model 'Talk' - db.create_table('talk_talk', ( - ('id', models.AutoField(primary_key=True)), - ('slug', models.SlugField()), - ('speaker', models.ForeignKey(orm['auth.User'])), - ('authors_bio', models.TextField()), - ('contact', models.CharField(max_length=1024)), - ('title', models.CharField(max_length=1024)), - ('abstract', models.TextField()), -# ('outline', models.TextField()), - ('topic', models.CharField(blank=True, max_length=255)), -# ('topic_other', models.CharField(max_length=255, blank=True)), - ('duration', models.CharField(max_length=3)), - ('audience', models.CharField(blank=True, max_length=32)), -# ('audience_other', models.CharField(max_length=128, blank=True)), - ('approved', models.BooleanField(default=False)), - ('submitted', models.DateTimeField(auto_now_add=True)), - ('last_mod', models.DateTimeField(auto_now=True)), -# ('tags', TagField(blank=True)), - )) - db.send_create_signal('talk', ['Talk']) - - - - def backwards(self, orm): - - # Deleting model 'Talk' - db.delete_table('talk_talk') - - - - models = { - 'auth.user': { - '_stub': True, - 'id': ('models.AutoField', [], {'primary_key': 'True'}) - }, - 'talk.talk': { - 'abstract': ('models.TextField', [], {}), - 'approved': ('models.BooleanField', [], {'default': 'False'}), - 'audience': ('models.CharField', [], {'blank': 'True', 'max_length': '32'}), - 'audience_other': ('models.CharField', [], {'max_length': '128', 'blank': 'True'}), - 'authors_bio': ('models.TextField', [], {}), - 'contact': ('models.CharField', [], {'max_length': '1024'}), - 'duration': ('models.CharField', [], {'max_length': '3'}), - 'id': ('models.AutoField', [], {'primary_key': 'True'}), - 'last_mod': ('models.DateTimeField', [], {'auto_now': 'True'}), - 'outline': ('models.TextField', [], {}), - 'slug': ('models.SlugField', [], {}), - 'speaker': ('models.ForeignKey', ['User'], {}), - 'submitted': ('models.DateTimeField', [], {'auto_now_add': 'True'}), - 'tags': ('TagField', [], {'blank': 'True'}), - 'title': ('models.CharField', [], {'max_length': '1024'}), - 'topic': ('models.CharField', [], {'blank': 'True', 'max_length': '255'}), - 'topic_other': ('models.CharField', [], {'max_length': '255', 'blank': 'True'}) - } - } - - complete_apps = ['talk'] diff --git a/project/kiwipycon/talk/migrations/__init__.py b/project/kiwipycon/talk/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/project/kiwipycon/talk/migrations/__init__.py +++ /dev/null diff --git a/project/kiwipycon/talk/models.py b/project/kiwipycon/talk/models.py deleted file mode 100644 index de0b11f..0000000 --- a/project/kiwipycon/talk/models.py +++ /dev/null @@ -1,73 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import absolute_import - -#django -from django.db import models -from django.contrib.auth.models import User - -#tagging -from tagging import register -from tagging.fields import TagField -from tagging.utils import parse_tag_input - -DURATION_CHOICES = ( - ('10', 'Lightning Talk (10 mins)'), - ('20', 'Short Talk (20 mins)'), - ('30', 'Standard Talk (30 mins)'), - ) - -AUDIENCE_CHOICES = ( - ('nonprogrammers', 'non-programmer'), - ('beginers', 'beginning programmer'), - ('intermediate', 'intermediate programmer'), - ('advanced', 'advanced programmer'), - ) - -#TOPIC_CHOICES = ( -# ('Core Python', 'Core Python'), -# ('Other implementations: Jython, IronPython, PyPy, and Stackless', 'Other implementations: Jython, IronPython, PyPy, and Stackless'), -# ('Python libraries and extensions', 'Python libraries and extensions'), -# ('Python 3k', 'Python 3k'), -# ('Databases', 'Databases'), -# ('Documentation', 'Documentation'), -# ('GUI Programming', 'GUI Programming'), -# ('Game Programming', 'Game Programming'), -# ('Network Programming', 'Network Programming'), -# ('Open Source Python projects', 'Open Source Python projects'), -# ('Packaging Issues', 'Packaging Issues'), -# ('Programming Tools', 'Programming Tools'), -# ('Project Best Practices', 'Project Best Practices'), -# ('Embedding and Extending', 'Embedding and Extending'), -# ('Science and Maths', 'Science and Maths'), -# ('Web-based Systems', 'Web-based Systems'), -#) - -class Talk(models.Model): - """Defines talks at *PyCon""" - slug = models.SlugField() - speaker = models.ForeignKey(User) - authors_bio = models.TextField() - contact = models.EmailField() - title = models.CharField(max_length=1024) - abstract = models.TextField() -# outline = models.TextField() - topic = models.CharField(max_length=255, - #choices=TOPIC_CHOICES, - blank=True) -# topic_other = models.CharField(max_length=255, blank=True) - duration = models.CharField(max_length=3, choices=DURATION_CHOICES) - audience = models.CharField(max_length=32, choices=AUDIENCE_CHOICES, blank=True) -# audience_other = models.CharField(max_length=128, blank=True) - approved = models.BooleanField(default=False) - submitted = models.DateTimeField(auto_now_add=True) - last_mod = models.DateTimeField(auto_now=True) -# tags = TagField(blank=True) - - def __unicode__(self): - return self.title - - def get_tag_list(self): - return parse_tag_input(self.tags) - -# register(Talk) # saving talk failed - see: -# http://code.google.com/p/django-tagging/issues/detail?id=152 diff --git a/project/kiwipycon/talk/templatetags/__init__.py b/project/kiwipycon/talk/templatetags/__init__.py deleted file mode 100644 index 792d600..0000000 --- a/project/kiwipycon/talk/templatetags/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/project/kiwipycon/talk/templatetags/talk_extras.py b/project/kiwipycon/talk/templatetags/talk_extras.py deleted file mode 100644 index e28f2bf..0000000 --- a/project/kiwipycon/talk/templatetags/talk_extras.py +++ /dev/null @@ -1,8 +0,0 @@ -from django import template - -register = template.Library() - -def choice(choices, value): - return choices[value] - -register.filter('choice', choice) diff --git a/project/kiwipycon/talk/views.py b/project/kiwipycon/talk/views.py deleted file mode 100644 index 017bcd3..0000000 --- a/project/kiwipycon/talk/views.py +++ /dev/null @@ -1,193 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import absolute_import - -# python imports -from urlparse import urlparse - -# django -from django.conf import settings -from django.shortcuts import render_to_response -from django.template import RequestContext -from django.core.urlresolvers import reverse -from django.views.generic.list_detail import object_list -from django.views.generic.list_detail import object_detail - -from django.contrib.auth.decorators import login_required -from django.contrib.auth.forms import AuthenticationForm -from django.contrib.auth.models import User - -# PIL -from PIL import Image - -# tagging -from tagging.models import Tag - -#kiwipycon -from project.kiwipycon.utils import set_message_cookie -from project.kiwipycon.utils import slugify -from project.kiwipycon.user.models import UserProfile -from project.kiwipycon.user.forms import RegisterForm -from project.kiwipycon.user.utils import kiwipycon_createuser - -from .models import Talk -from .forms import TalkSubmitForm -from .forms import TalkEditForm -from .models import DURATION_CHOICES -from .models import AUDIENCE_CHOICES - -def list_talks(request): - objects = Talk.objects.filter(approved=True) - extra_context = dict(count=objects.count()) - return object_list(request, objects, extra_context=extra_context) - -def talk(request, id): - objects = Talk.objects.filter(approved=True) - audience = {} - for choice in AUDIENCE_CHOICES: - audience[choice[0]] = choice[1] - extra_context = dict(choices=audience) - return object_detail(request, objects, id, extra_context=extra_context) - -@login_required -def edit_talk(request, id, template_name='talk/edit-talk.html'): - '''Allows users that submitted a talk to edit it until the talk is approved. - ''' - talk = Talk.objects.get(pk=id) - - if talk.approved == True: - redirect_to = reverse('kiwipycon_account') - return set_message_cookie(redirect_to, - msg = u'Sorry but you cannot edit the talk once'\ - + ' it has been accepted.') - if talk.speaker != request.user: - redirect_to = reverse('kiwipycon_account') - return set_message_cookie(redirect_to, - msg = u'Redirected to account because the talk you selected' \ - + ' is not your own.') - - if request.method == 'POST': - form = TalkEditForm(data=request.POST) - if form.is_valid(): - talk.slug = slugify(form.data.get('title')) - talk.authors_bio = form.data.get('authors_bio') - talk.contact = form.data.get('contact') - talk.title = form.data.get('title') - talk.abstract = form.data.get('abstract') -# talk.outline = form.data.get('outline') - talk.topic = form.data.get('topic') -# talk.topic_other = form.data.get('topic_other') - talk.duration = form.data.get('duration') - talk.audience = form.data.get('audience') -# talk.audience_other = form.data.get('audience_other') -# talk.tags = form.data.get('tags') - talk.save() - # Saved.. redirect - redirect_to = reverse('kiwipycon_account') - return set_message_cookie(redirect_to, - msg = u'Your changes have been saved.') - else: - form = TalkEditForm(initial={ - 'id' : id, - 'authors_bio' : talk.authors_bio, - 'contact' : talk.contact, - 'title' : talk.title, - 'abstract' : talk.abstract, -# 'outline' : talk.outline, - 'topic' : talk.topic, -# 'topic_other' : talk.topic_other, - 'duration' : talk.duration, - 'audience' : talk.audience, -# 'audience_other' : talk.audience_other, -# 'tags' : talk.tags, - }) - - return render_to_response(template_name, RequestContext(request, locals())) - -@login_required() -def submit_talk(request, template_name='talk/submit-talk.html'): - '''Allows user to edit profile - ''' - user = request.user - if user.is_authenticated(): - try: - profile = user.get_profile() - except: - profile, new = UserProfile.objects.get_or_create(user=user) - if new: - profile.save() - message = None - - if request.method == 'POST': - talk_form = TalkSubmitForm(data=request.POST) - - register_form = RegisterForm(data=request.POST, - files=request.FILES) - - if request.POST.get('action', None) == 'login': - login_form = AuthenticationForm(data=request.POST) - if login_form.is_valid(): - - from django.contrib.auth import login - login(request, login_form.get_user()) - - redirect_to = reverse('kiwipycon_submit_talk') - return set_message_cookie(redirect_to, - msg = u'You have been logged in.') - - if request.POST.get('action', None) == 'register': - # add the new user - if register_form.is_valid(): - - user = kiwipycon_createuser(request, register_form.data) - - if talk_form.is_valid(): - if user.is_authenticated(): - title = talk_form.data.get('title') - talk = Talk.objects.create( - slug = slugify(title), - speaker = User.objects.get(pk=user.id), - authors_bio = talk_form.data.get('authors_bio'), - contact = talk_form.data.get('contact'), - title = talk_form.data.get('title'), - abstract = talk_form.data.get('abstract'), -# outline = talk_form.data.get('outline'), - topic = talk_form.data.get('topic'), -# topic_other = talk_form.data.get('topic_other'), - duration = talk_form.data.get('duration'), - audience = talk_form.data.get('audience'), -# audience_other = talk_form.data.get('audience_other'), - approved = False, -# tags = talk_form.data.get('tags') - ) - talk.save() - # Saved, ... redirect back to account - redirect_to = reverse('kiwipycon_account') - return set_message_cookie(redirect_to, - msg = u'Thanks, your talk has been submitted.') - else: - redirect_to = reverse('kiwipycon_submit_talk') - return set_message_cookie(redirect_to, - msg = u'Something is wrong here.') - - else: - talk_form = TalkSubmitForm() - register_form = RegisterForm() - login_form = AuthenticationForm() - - - return render_to_response(template_name, RequestContext(request, { - 'talk_form': talk_form, - 'register_form' : register_form, - 'message' : message, - 'login_form' : login_form - })) - -def list_talks(request, template_name='talk/list-all-talks.html'): - '''List all the tasks submitted by a user. - ''' - - talks = Talk.objects.filter(approved=True) - - return render_to_response(template_name, RequestContext(request, { - 'talk_list': talks, - })) |