From 67153f475c15e082ef89d3d4b475a83d59706e56 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Mon, 14 Feb 2011 11:07:34 +0100 Subject: [PATCH 1/1] lesmianator fix --- .../0002_auto__chg_field_poem_created_by.py | 78 +++++++++++++++++++ apps/lesmianator/models.py | 2 +- apps/lesmianator/views.py | 7 +- wolnelektury/templates/lesmianator/poem.html | 1 + 4 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 apps/lesmianator/migrations/0002_auto__chg_field_poem_created_by.py diff --git a/apps/lesmianator/migrations/0002_auto__chg_field_poem_created_by.py b/apps/lesmianator/migrations/0002_auto__chg_field_poem_created_by.py new file mode 100644 index 000000000..65241e560 --- /dev/null +++ b/apps/lesmianator/migrations/0002_auto__chg_field_poem_created_by.py @@ -0,0 +1,78 @@ +# encoding: 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): + + # Changing field 'Poem.created_by' + db.alter_column('lesmianator_poem', 'created_by_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True)) + + + def backwards(self, orm): + + # User chose to not deal with backwards NULL issues for 'Poem.created_by' + raise RuntimeError("Cannot reverse this migration. 'Poem.created_by' and its values cannot be restored.") + + + 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'}) + }, + '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'}) + }, + 'lesmianator.continuations': { + 'Meta': {'object_name': 'Continuations'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'pickle': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'lesmianator.poem': { + 'Meta': {'object_name': 'Poem'}, + 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'created_from': ('catalogue.fields.JSONField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'seen_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '120', 'db_index': 'True'}), + 'text': ('django.db.models.fields.TextField', [], {}), + 'view_count': ('django.db.models.fields.IntegerField', [], {'default': '1'}) + } + } + + complete_apps = ['lesmianator'] diff --git a/apps/lesmianator/models.py b/apps/lesmianator/models.py index 74aecfea4..4b3daf8d2 100644 --- a/apps/lesmianator/models.py +++ b/apps/lesmianator/models.py @@ -26,7 +26,7 @@ from catalogue.models import Book, Tag class Poem(models.Model): slug = models.SlugField(_('slug'), max_length=120, db_index=True) text = models.TextField(_('text')) - created_by = models.ForeignKey(User) + created_by = models.ForeignKey(User, null=True) created_from = JSONField(_('extra information'), null=True, blank=True) created_at = models.DateTimeField(_('creation date'), auto_now_add=True, editable=False) seen_at = models.DateTimeField(_('last view date'), auto_now_add=True, editable=False) diff --git a/apps/lesmianator/views.py b/apps/lesmianator/views.py index 3307a2598..bb0a562fc 100644 --- a/apps/lesmianator/views.py +++ b/apps/lesmianator/views.py @@ -23,7 +23,7 @@ def main_page(request): @cache.never_cache def new_poem(request): - user = request.user if request.user.is_authenticated else None + user = request.user if request.user.is_authenticated() else None text = Poem.write() p = Poem(slug=get_random_hash(text), text=text, created_by=user) p.save() @@ -36,7 +36,7 @@ def new_poem(request): @cache.never_cache def poem_from_book(request, slug): book = get_object_or_404(Book, slug=slug) - user = request.user if request.user.is_authenticated else None + user = request.user if request.user.is_authenticated() else None text = Poem.write(Continuations.get(book)) p = Poem(slug=get_random_hash(text), text=text, created_by=user) p.set_created_from_value([book.id]) @@ -48,9 +48,8 @@ def poem_from_book(request, slug): @cache.never_cache -@login_required def poem_from_set(request, shelf): - user = request.user + user = request.user if request.user.is_authenticated() else None tag = get_object_or_404(Tag, category='set', slug=shelf) text = Poem.write(Continuations.get(tag)) p = Poem(slug=get_random_hash(text), text=text, created_by=user) diff --git a/wolnelektury/templates/lesmianator/poem.html b/wolnelektury/templates/lesmianator/poem.html index 1dbf89218..0634a71cc 100644 --- a/wolnelektury/templates/lesmianator/poem.html +++ b/wolnelektury/templates/lesmianator/poem.html @@ -50,6 +50,7 @@ {% endfor %} {% if shelf %} +

Zmiksuj półkę {{ shelf.name }} jeszcze raz, albo -- 2.20.1