# HG changeset patch
# User ymh
# Date 1425479063 -3600
# Node ID f469ab22542de0cd41c2b4e4936adece742b9a9c
# Parent 6575b9f536017fcad29e848411ae8ae023a36532
add favorite management
diff -r 6575b9f53601 -r f469ab22542d .settings/org.eclipse.core.resources.prefs
--- a/.settings/org.eclipse.core.resources.prefs Tue Mar 03 14:03:38 2015 +0100
+++ b/.settings/org.eclipse.core.resources.prefs Wed Mar 04 15:24:23 2015 +0100
@@ -60,6 +60,7 @@
encoding//src/hdalab/migrations/0012_auto__add_hdalabrenkan.py=utf-8
encoding//src/hdalab/migrations/0013_auto__chg_field_dbpediafields_tag__add_unique_tagyears_tag.py=utf-8
encoding//src/hdalab/migrations/0014_auto__add_hdalabrenkanstatetransition__chg_field_dbpediafields_tag.py=utf-8
+encoding//src/hdalab/migrations/0015_auto__add_field_hdalabrenkan_favorite.py=utf-8
encoding//src/hdalab/models/dataviz.py=utf-8
encoding//src/hdalab/models/renkan.py=utf-8
encoding//src/hdalab/services.py=utf-8
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/forms.py
--- a/src/hdalab/forms.py Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/forms.py Wed Mar 04 15:24:23 2015 +0100
@@ -14,4 +14,9 @@
fields = ['id','state']
message = forms.CharField(widget=forms.Textarea,required=False)
- next = forms.CharField(required=False)
\ No newline at end of file
+ next = forms.CharField(required=False)
+
+class HdalabRenkanFavoriteForm(forms.ModelForm):
+ class Meta:
+ model = HdalabRenkan
+ fields = ['favorite']
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/migrations/0014_auto__add_hdalabrenkanstatetransition__chg_field_dbpediafields_tag.py
--- a/src/hdalab/migrations/0014_auto__add_hdalabrenkanstatetransition__chg_field_dbpediafields_tag.py Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/migrations/0014_auto__add_hdalabrenkanstatetransition__chg_field_dbpediafields_tag.py Wed Mar 04 15:24:23 2015 +0100
@@ -1,8 +1,6 @@
# -*- 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):
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/migrations/0015_auto__add_field_hdalabrenkan_favorite.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/migrations/0015_auto__add_field_hdalabrenkan_favorite.py Wed Mar 04 15:24:23 2015 +0100
@@ -0,0 +1,336 @@
+# -*- coding: utf-8 -*-
+from south.db import db
+from south.v2 import SchemaMigration
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Adding field 'HdalabRenkan.favorite'
+ db.add_column(u'hdalab_hdalabrenkan', 'favorite',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'HdalabRenkan.favorite'
+ db.delete_column(u'hdalab_hdalabrenkan', 'favorite')
+
+
+ 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'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'})
+ },
+ u'hdabo.author': {
+ 'Meta': {'object_name': 'Author'},
+ 'firstname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'hda_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'lastname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'})
+ },
+ u'hdabo.datasheet': {
+ 'Meta': {'object_name': 'Datasheet'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Author']", 'null': 'True', 'blank': 'True'}),
+ 'college_periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'college_periods_datasheets'", 'symmetrical': 'False', 'through': u"orm['hdabo.Datasheet_college_periods']", 'to': u"orm['hdabo.TimePeriod']"}),
+ 'college_themes': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'college_themes_datasheets'", 'symmetrical': 'False', 'through': u"orm['hdabo.Datasheet_college_themes']", 'to': u"orm['hdabo.Domain']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'domains': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'datasheets'", 'symmetrical': 'False', 'through': u"orm['hdabo.Datasheet_domains']", 'to': u"orm['hdabo.Domain']"}),
+ 'format': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.DocumentFormat']", 'null': 'True', 'blank': 'True'}),
+ 'hda_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
+ 'highschool_periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'highschool_periods_datasheets'", 'symmetrical': 'False', 'through': u"orm['hdabo.Datasheet_highschool_periods']", 'to': u"orm['hdabo.TimePeriod']"}),
+ 'highschool_themes': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'highschool_themes_datasheets'", 'symmetrical': 'False', 'through': u"orm['hdabo.Datasheet_highschool_themes']", 'to': u"orm['hdabo.Domain']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'manual_order': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'modification_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'organisation': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Organisation']", 'null': 'True'}),
+ 'original_creation_date': ('django.db.models.fields.DateField', [], {}),
+ 'original_modification_date': ('django.db.models.fields.DateField', [], {}),
+ 'primary_periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'primary_periods_datasheets'", 'symmetrical': 'False', 'through': u"orm['hdabo.Datasheet_primary_periods']", 'to': u"orm['hdabo.TimePeriod']"}),
+ 'primary_themes': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'primary_themes_datasheets'", 'symmetrical': 'False', 'through': u"orm['hdabo.Datasheet_primary_themes']", 'to': u"orm['hdabo.Domain']"}),
+ 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['hdabo.Tag']", 'through': u"orm['hdabo.TaggedSheet']", 'symmetrical': 'False'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '2048'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Location']", 'null': 'True', 'blank': 'True'}),
+ 'url': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'validated': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'validation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'validator': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.User']", 'null': 'True', 'blank': 'True'})
+ },
+ u'hdabo.datasheet_college_periods': {
+ 'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_college_periods'},
+ 'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Datasheet']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sort_value': ('django.db.models.fields.IntegerField', [], {}),
+ 'timeperiod': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.TimePeriod']"})
+ },
+ u'hdabo.datasheet_college_themes': {
+ 'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_college_themes'},
+ 'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Datasheet']"}),
+ 'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Domain']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sort_value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'hdabo.datasheet_domains': {
+ 'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_domains'},
+ 'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Datasheet']"}),
+ 'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Domain']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sort_value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'hdabo.datasheet_highschool_periods': {
+ 'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_highschool_periods'},
+ 'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Datasheet']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sort_value': ('django.db.models.fields.IntegerField', [], {}),
+ 'timeperiod': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.TimePeriod']"})
+ },
+ u'hdabo.datasheet_highschool_themes': {
+ 'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_highschool_themes'},
+ 'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Datasheet']"}),
+ 'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Domain']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sort_value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'hdabo.datasheet_primary_periods': {
+ 'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_primary_periods'},
+ 'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Datasheet']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sort_value': ('django.db.models.fields.IntegerField', [], {}),
+ 'timeperiod': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.TimePeriod']"})
+ },
+ u'hdabo.datasheet_primary_themes': {
+ 'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_primary_themes'},
+ 'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Datasheet']"}),
+ 'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Domain']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sort_value': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'hdabo.documentformat': {
+ 'Meta': {'object_name': 'DocumentFormat'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'})
+ },
+ u'hdabo.domain': {
+ 'Meta': {'unique_together': "(('label', 'school_period'),)", 'object_name': 'Domain'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
+ 'natural_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
+ 'school_period': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'hdabo.location': {
+ 'Meta': {'object_name': 'Location'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '5'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'})
+ },
+ u'hdabo.organisation': {
+ 'Meta': {'object_name': 'Organisation'},
+ 'hda_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'location': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
+ 'website': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'})
+ },
+ u'hdabo.tag': {
+ 'Meta': {'unique_together': "(('label', 'original_label', 'url_status'),)", 'object_name': 'Tag'},
+ 'alias': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'alternative_label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'alternative_wikipedia_pageid': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'alternative_wikipedia_url': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'category': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.TagCategory']", 'null': 'True', 'blank': 'True'}),
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'dbpedia_uri': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
+ 'natural_key': ('django.db.models.fields.CharField', [], {'max_length': '7168', 'db_index': 'True'}),
+ 'normalized_label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
+ 'original_label': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
+ 'popularity': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'url_status': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'wikipedia_pageid': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'wikipedia_url': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'})
+ },
+ u'hdabo.tagcategory': {
+ 'Meta': {'object_name': 'TagCategory'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
+ 'natural_key': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'})
+ },
+ u'hdabo.taggedsheet': {
+ 'Meta': {'object_name': 'TaggedSheet'},
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Datasheet']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'index_note': ('django.db.models.fields.FloatField', [], {'default': '0.0', 'db_index': 'True'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'original_order': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'tag': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.Tag']"}),
+ 'wikipedia_revision_id': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ u'hdabo.timeperiod': {
+ 'Meta': {'unique_together': "(('label', 'school_period'),)", 'object_name': 'TimePeriod'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
+ 'natural_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
+ 'school_period': ('django.db.models.fields.IntegerField', [], {})
+ },
+ u'hdabo.user': {
+ 'Meta': {'object_name': 'User', 'db_table': "'auth_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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
+ 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', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'hdalab.country': {
+ 'Meta': {'object_name': 'Country'},
+ 'dbpedia_uri': ('django.db.models.fields.URLField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ 'hdalab.datasheetextras': {
+ 'Meta': {'object_name': 'DatasheetExtras'},
+ 'datasheet': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'extras'", 'unique': 'True', 'to': u"orm['hdabo.Datasheet']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'insee': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdalab.InseeCoords']", 'null': 'True', 'blank': 'True'})
+ },
+ 'hdalab.dbpediafields': {
+ 'Meta': {'object_name': 'DbpediaFields'},
+ 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'dbpedia_uri': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'db_index': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'tag': ('hdalab.fields.OneToOneField', [], {'related_name': "'dbpedia_fields'", 'unique': 'True', 'related_default': None, 'to': u"orm['hdabo.Tag']"}),
+ 'thumbnail': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'})
+ },
+ 'hdalab.dbpediafieldstranslation': {
+ 'Meta': {'unique_together': "(('master', 'language_code'),)", 'object_name': 'DbpediaFieldsTranslation'},
+ 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_abstract_translated': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_label_translated': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'blank': 'True'}),
+ 'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
+ 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['hdalab.DbpediaFields']"})
+ },
+ 'hdalab.geoinclusion': {
+ 'Meta': {'object_name': 'GeoInclusion'},
+ 'country': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'includes'", 'to': "orm['hdalab.Country']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'tag': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'locatedin'", 'unique': 'True', 'to': u"orm['hdabo.Tag']"})
+ },
+ 'hdalab.hdalabrenkan': {
+ 'Meta': {'object_name': 'HdalabRenkan'},
+ 'favorite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'renkan': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['renkanmanager.Renkan']"}),
+ 'state': ('django.db.models.fields.IntegerField', [], {'default': '1'})
+ },
+ 'hdalab.hdalabrenkanstatetransition': {
+ 'Meta': {'object_name': 'HdalabRenkanStateTransition'},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.User']"}),
+ 'from_state': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'message': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'renkan': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdalab.HdalabRenkan']"}),
+ 'to_state': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'})
+ },
+ 'hdalab.hdasession': {
+ 'Meta': {'object_name': 'HdaSession'},
+ 'data': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sessionid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36', 'db_index': 'True'})
+ },
+ 'hdalab.infoboxparameter': {
+ 'Meta': {'unique_together': "(('tag_infobox', 'param_name'),)", 'object_name': 'InfoboxParameter'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'param_name': ('django.db.models.fields.CharField', [], {'max_length': '2048'}),
+ 'param_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'tag_infobox': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdalab.TagInfobox']"})
+ },
+ 'hdalab.inseecoords': {
+ 'Meta': {'object_name': 'InseeCoords'},
+ 'city_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'insee': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'latitude': ('django.db.models.fields.FloatField', [], {}),
+ 'longitude': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'hdalab.taginfobox': {
+ 'Meta': {'unique_together': "(('tag', 'name', 'revision_id'),)", 'object_name': 'TagInfobox'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '2048'}),
+ 'revision_id': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'source': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'infoboxes'", 'to': u"orm['hdabo.Tag']"})
+ },
+ 'hdalab.taglinks': {
+ 'Meta': {'object_name': 'TagLinks'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'object': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'taglinks_objects'", 'to': u"orm['hdabo.Tag']"}),
+ 'subject': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'taglinks_subjects'", 'to': u"orm['hdabo.Tag']"})
+ },
+ 'hdalab.tagwpcategory': {
+ 'Meta': {'unique_together': "(('tag', 'wp_category', 'hidden'),)", 'object_name': 'TagWpCategory'},
+ 'hidden': ('django.db.models.fields.BooleanField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'wp_categories'", 'to': u"orm['hdabo.Tag']"}),
+ 'wp_category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tags'", 'to': "orm['hdalab.WpCategory']"})
+ },
+ 'hdalab.tagyears': {
+ 'Meta': {'object_name': 'TagYears'},
+ 'end_year': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'start_year': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}),
+ 'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'years'", 'unique': 'True', 'to': u"orm['hdabo.Tag']"})
+ },
+ 'hdalab.wpcategory': {
+ 'Meta': {'object_name': 'WpCategory'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048'})
+ },
+ 'hdalab.wpcategoryinclusion': {
+ 'Meta': {'unique_together': "(('parent_category', 'child_category'),)", 'object_name': 'WpCategoryInclusion'},
+ 'child_category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parent_categories'", 'to': "orm['hdalab.WpCategory']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'parent_category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'child_categories'", 'to': "orm['hdalab.WpCategory']"})
+ },
+ 'renkanmanager.renkan': {
+ 'Meta': {'object_name': 'Renkan'},
+ 'content': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'default': "'thumbnails/renkan/renkan_default_icon.png'", 'max_length': '100'}),
+ 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['hdabo.User']", 'null': 'True', 'blank': 'True'}),
+ 'rk_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '1024'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True'})
+ }
+ }
+
+ complete_apps = ['hdalab']
\ No newline at end of file
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/models/renkan.py
--- a/src/hdalab/models/renkan.py Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/models/renkan.py Wed Mar 04 15:24:23 2015 +0100
@@ -42,6 +42,7 @@
renkan = models.ForeignKey(Renkan, blank=False, null=False)
state = models.IntegerField(choices=STATE_CHOICES, default=1)
+ favorite = models.BooleanField(null=False, blank=False, default=False)
class Meta:
app_label = 'hdalab'
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/static/hdalab/css/footer.css
--- a/src/hdalab/static/hdalab/css/footer.css Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/static/hdalab/css/footer.css Wed Mar 04 15:24:23 2015 +0100
@@ -44,7 +44,7 @@
#innerfooter {
margin: auto;
background-color: rgb(181, 186, 186);
- height: 150px;
+ height: 175px;
width: 1280px;
text-align: center;
}
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/static/hdalab/css/profile.css
--- a/src/hdalab/static/hdalab/css/profile.css Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/static/hdalab/css/profile.css Wed Mar 04 15:24:23 2015 +0100
@@ -94,4 +94,16 @@
.sub-content {
padding: 20px 0;
border-top: 1px solid #b0b0b0;
-}
\ No newline at end of file
+}
+
+#new-renkan-button {
+ float: none;
+ color: #7CB0BD;
+ font-size: 16px;
+ margin: 10px 10px 0px;
+}
+
+#new-renkan-button:hover {
+ color: #28292D;
+}
+
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/static/hdalab/js/manage.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/static/hdalab/js/manage.js Wed Mar 04 15:24:23 2015 +0100
@@ -0,0 +1,17 @@
+"use strict";
+
+$(document).ready(function() {
+
+ $(".favorite-checkbox").click(function(e) {
+ var chkbox = $(e.target);
+ var form = $(e.target).parents('form')[0];
+ $.post($(form).attr('action'), $(form).serialize(), function(data) {
+ if(chkbox.prop('checked') !== data.renkan.favorite) {
+ chkbox.prop('checked', data.renkan.favorite);
+ }
+ }).fail(function() {
+ chkbox.prop('checked', !chkbox.prop('checked'));
+ });
+
+ });
+});
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/static/hdalab/js/renkan-search.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/static/hdalab/js/renkan-search.js Wed Mar 04 15:24:23 2015 +0100
@@ -0,0 +1,38 @@
+"use strict";
+
+function setFavorite(val) {
+ var chkbx = $("#filter-favorite-chkbx");
+ chkbx.val(val);
+ $("#filter-favorite").val(val);
+ if(val === 0) {
+ chkbx.prop('indeterminate', false);
+ chkbx.prop('checked', false);
+ }
+ else if (val === 1) {
+ chkbx.prop('indeterminate', false);
+ chkbx.prop('checked', true);
+ }
+ else if (val === 2) {
+ chkbx.prop('indeterminate', true);
+ chkbx.prop('checked', true);
+ }
+}
+
+function initSearch(favorite) {
+ $(document).ready(function() {
+
+ $("#toggle-search").click(function(){
+ $("#advanced-form").toggle();
+ });
+ $(".date").datepicker({ dateFormat: 'yy-mm-dd' });
+
+ setFavorite(favorite);
+
+ $("#filter-favorite-chkbx").click(function (e) {
+ var chkbx = $(e.target);
+ // value must be in 0 (undefined), 1 (true), 2 (false)
+ var val = ($("#filter-favorite").val()+1)%3;
+ setFavorite(val);
+ });
+ });
+}
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/templates/base.html
--- a/src/hdalab/templates/base.html Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/templates/base.html Wed Mar 04 15:24:23 2015 +0100
@@ -92,6 +92,7 @@
{% trans 'Domaines Artistiques' %}
{% trans 'Thésaurus' %}
Renkan
+ {% trans 'Renkan repères' %}
{% trans 'A Propos' %}
Histoire des Arts
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/templates/editorial/manage_renkans.html
--- a/src/hdalab/templates/editorial/manage_renkans.html Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/templates/editorial/manage_renkans.html Wed Mar 04 15:24:23 2015 +0100
@@ -16,13 +16,11 @@
{% block js_import %}
{{block.super}}
+
+
{% endblock %}
@@ -43,6 +41,7 @@
{% trans 'Rejected' %}
+ {% trans 'Favorite' %} : = 1 %} checked="checked" {% endif %} value="{{favorite}}" />
@@ -50,6 +49,8 @@
{% trans 'Title' %}
{% if sort_param == 'title' %} {% endif %}
+ {% trans 'Fav.' %}
+ {% if sort_param == 'favorite' %} {% endif %}
{% trans 'User' %}
{% if sort_param == 'user' %} {% endif %}
{% trans 'Modification date' %}
@@ -65,6 +66,7 @@
{% with hr.renkan as r %}
{{ r.title }}
+
{{ r.owner.username }}
{{ r.modification_date|date:"Y-m-d H:i" }}
{% thumbnail r.image 100x100 as thumb %}
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/templates/profile_home.html
--- a/src/hdalab/templates/profile_home.html Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/templates/profile_home.html Wed Mar 04 15:24:23 2015 +0100
@@ -18,13 +18,10 @@
{% block js_import %}
{{block.super}}
+
{% endblock %}
@@ -51,9 +48,10 @@
/ {% trans 'Gerer mes Renkan' %}
-
- {% trans 'Nouveau Renkan' %}
-
+
{% if page.has_previous %}{% trans 'Previous' %} {% endif %}
{% if page.has_previous and page.has_next %} - {% endif %}{% if page.has_next %}{% trans 'Next' %} {% endif %}
@@ -70,6 +68,7 @@
{% trans 'Rejected' %}
+
{% trans 'Favorite' %} : = 1 %} checked="checked" {% endif %} value="{{favorite}}" />
@@ -77,6 +76,8 @@
{% trans 'Title' %}
{% if sort_param == 'title' %} {% endif %}
+ {% trans 'Fav.' %}
+ {% if sort_param == 'favorite' %} {% endif %}
{% trans 'Modification date' %}
{% if sort_param == 'date' %} {% endif %}
{% trans 'Preview' %}
@@ -90,6 +91,7 @@
{% with hr.renkan as r %}
{{ r.title }}
+ {% if hr.favorite %}✓{% else %} {% endif %}
{{ r.modification_date|date:"Y-m-d H:i" }}
{% thumbnail r.image 100x100 as thumb %}
{{ hr.state|state_to_str }}
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/templates/renkan_list.html
--- a/src/hdalab/templates/renkan_list.html Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/templates/renkan_list.html Wed Mar 04 15:24:23 2015 +0100
@@ -12,18 +12,15 @@
{% endblock %}
-{% block renkans_actif %}actif{% endblock %}
+{% block renkans_actif %}{% if not hide_favorite %}actif{% endif %}{% endblock %}
{% block js_import %}
{{block.super}}
+
{% endblock %}
@@ -40,6 +37,9 @@
{% trans 'Modification date' %} : {% trans 'begin' %} -
{% trans 'end' %} :
{% trans 'Username' %} :
+ {% if not hide_favorite %}
+ {% trans 'Favorite' %} : = 1 %} checked="checked" {% endif %} value="{{favorite}}" />
+ {% endif %}
@@ -47,6 +47,10 @@
{% trans 'Title' %}
{% if sort_param == 'title' %} {% endif %}
+ {% if not hide_favorite %}
+ {% trans 'Fav.' %}
+ {% if sort_param == 'favorite' %} {% endif %}
+ {% endif %}
{% trans 'User' %}
{% if sort_param == 'user' %} {% endif %}
{% trans 'Modification date' %}
@@ -58,6 +62,9 @@
{% with hr.renkan as r %}
{{ r.title }}
+ {% if not hide_favorite %}
+ {% if hr.favorite %}✓{% else %} {% endif %}
+ {% endif %}
{{ r.owner.username }}
{{ r.modification_date|date:"Y-m-d H:i" }}
{% thumbnail r.image 100x100 as thumb %}
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/urls.py
--- a/src/hdalab/urls.py Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/urls.py Wed Mar 04 15:24:23 2015 +0100
@@ -3,7 +3,7 @@
from django.views.generic import TemplateView
from hdalab.views.profile import ProfileHome, RenkanEdit, HdalabRenkanGetPut,\
RenkanNew, RenkanPublicList, HdalabRenkanCopy, HdalabRenkanDelete,\
- HdalabRenkanModerate
+ HdalabRenkanModerate, HdalabRenkanFavorite, RenkanFavoriteList
from django.contrib.auth.decorators import login_required
from django.contrib.admin.views.decorators import staff_member_required
from hdalab.views.editorial import HdalabFolders, HdalabAddOrUpdateFolder,\
@@ -40,12 +40,13 @@
url(r'^renkan/edit/$', RenkanEdit.as_view(), name='renkan_edit'),
url(r'^renkan/getput/$', HdalabRenkanGetPut.as_view(), name='renkan_get_put'),
url(r'^renkan/view/$', TemplateView.as_view(template_name="renkan_view.html"), name='renkan_view'),
- url(r'^renkan/copy/(?P.*)$', login_required(HdalabRenkanCopy.as_view()), name='renkan_copy'),
- url(r'^renkan/delete/(?P.*)$', login_required(HdalabRenkanDelete.as_view()), name='renkan_delete'),
- #url(r'^renkan/moderate/(?P.*)/(?P.*)$', login_required(HdalabRenkanModerate.as_view()), name='renkan_moderate'),
- url(r'^renkan/moderate/(?P.*)$', login_required(HdalabRenkanModerate.as_view()), name='renkan_moderate'),
+ url(r'^renkan/copy/(?P.+)$', login_required(HdalabRenkanCopy.as_view()), name='renkan_copy'),
+ url(r'^renkan/delete/(?P.+)$', login_required(HdalabRenkanDelete.as_view()), name='renkan_delete'),
+ url(r'^renkan/moderate/(?P.+)$', login_required(HdalabRenkanModerate.as_view()), name='renkan_moderate'),
+ url(r'^renkan/favorite/(?P.+)$', login_required(HdalabRenkanFavorite.as_view()), name='renkan_favorite'),
url(r'^profile/$', login_required(ProfileHome.as_view()), name='profile_home'),
url(r'^renkan/public/$', RenkanPublicList.as_view(), name='renkan_public_list'),
+ url(r'^renkan/favorite/$', RenkanFavoriteList.as_view(), name='renkan_favorite_list'),
url(r'^ajaxlogin/$', "hdalab.views.profile.ajax_login", name='ajax_login'),
url(r'^ajaxloginok/$', TemplateView.as_view(template_name="ajax_identification/ajax_login_ok.html"), name='ajax_login_ok'),
url(r'^edito/$', staff_member_required(TemplateView.as_view(template_name="editorial/edito_home.html")), name='edito_home'),
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/views/editorial.py
--- a/src/hdalab/views/editorial.py Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/views/editorial.py Wed Mar 04 15:24:23 2015 +0100
@@ -5,11 +5,13 @@
@author: tc
'''
+import logging
+
+from hdabo.views import Folders, AddOrUpdateFolder, DeleteFolder
from hdalab.models.renkan import HdalabRenkan
-from hdabo.views import Folders, AddOrUpdateFolder, DeleteFolder
from hdalab.views.profile import BaseRenkanList
-import logging
+
logger = logging.getLogger(__name__)
@@ -30,6 +32,5 @@
redirect_view = 'hdalab_folders'
-
class HdalabDeleteFolder(DeleteFolder):
redirect_view = 'hdalab_folders'
\ No newline at end of file
diff -r 6575b9f53601 -r f469ab22542d src/hdalab/views/profile.py
--- a/src/hdalab/views/profile.py Tue Mar 03 14:03:38 2015 +0100
+++ b/src/hdalab/views/profile.py Wed Mar 04 15:24:23 2015 +0100
@@ -6,6 +6,14 @@
'''
from datetime import datetime
+import json
+import logging
+from renkanmanager.models import Renkan
+from renkanmanager.utils import LineNodePlacer, HorLineNodePlacer, renkan_copier, renkan_deleter, \
+ CircleNodePlacer
+from renkanmanager.views import RenkanGetPut
+import uuid
+
from django.conf import settings
from django.contrib.auth import REDIRECT_FIELD_NAME, login as auth_login
from django.contrib.auth.forms import AuthenticationForm
@@ -26,22 +34,15 @@
from django.views.decorators.csrf import csrf_exempt, csrf_protect
from django.views.decorators.debug import sensitive_post_parameters
from django.views.generic import TemplateView, View
+
from hdabo.models import Tag, Datasheet, TaggedSheet, Folder
+from hdalab.forms import HdalabRenkanStateForm, HdalabRenkanFavoriteForm
from hdalab.models.dataviz import DbpediaFieldsTranslation
from hdalab.models.renkan import HdalabRenkan
+from hdalab.services import change_renkan_state
from hdalab.views.ajax import filter_generic
-from renkanmanager.models import Renkan
-from renkanmanager.utils import LineNodePlacer, HorLineNodePlacer, renkan_copier, renkan_deleter,\
- CircleNodePlacer
-from renkanmanager.views import RenkanGetPut
-import json
-import uuid
-import logging
-from django.views.generic.edit import ModelFormMixin
-from hdalab.forms import HdalabRenkanStateForm
-from django.contrib.admin.models import CHANGE
-from hdalab.services import change_renkan_state
+
logger = logging.getLogger(__name__)
@@ -75,19 +76,23 @@
if filter_enddate!="":
renkan_queryset = renkan_queryset.filter(renkan__modification_date__lt=filter_enddate + " 23:59:59")
filters += "&enddate=" + filter_enddate
-
-
+ filter_favorite = int(self.request.GET.get('favorite', "2"))
+ if filter_favorite == 1:
+ renkan_queryset = renkan_queryset.filter(favorite=True)
+ elif filter_favorite == 0:
+ renkan_queryset = renkan_queryset.filter(favorite=False)
+
sort_param = self.request.GET.get('sort', "date")
order_param = self.request.GET.get('order', "desc")
- sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state", "user":"renkan__owner__username"}.get(sort_param)
+ sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state", "user":"renkan__owner__username", "favorite":"favorite"}.get(sort_param, None)
if order_param=="desc":
order = "-"
opposite = "asc"
else:
order = ""
opposite = "desc"
-
- renkan_queryset = renkan_queryset.order_by(order + sort)
+ if sort:
+ renkan_queryset = renkan_queryset.order_by(order + sort)
p = Paginator(renkan_queryset, settings.RENKANS_PER_PAGE)
page_nb = self.request.GET.get('page')
try:
@@ -99,7 +104,7 @@
context.update({"page": page, "sort_param":sort_param, "order_param":order_param, "opposite":opposite,
"filters":filters, "title": filter_title, "username": filter_username, "state": filter_state,
- "startdate":filter_startdate, "enddate":filter_enddate})
+ "startdate":filter_startdate, "enddate":filter_enddate, "favorite": filter_favorite})
return context
@@ -121,11 +126,19 @@
return self.update_context( super(RenkanPublicList, self).get_context_data(**kwargs), HdalabRenkan.objects.select_related("renkan", "renkan__owner").filter(state=HdalabRenkan.PUBLISHED) )
-#TODO transform in post
+class RenkanFavoriteList(BaseRenkanList):
+
+ template_name = "renkan_list.html"
+
+ def get_context_data(self, **kwargs):
+ context = super(BaseRenkanList, self).get_context_data(**kwargs)
+ context['hide_favorite'] = True
+ return self.update_context(context , HdalabRenkan.objects.select_related("renkan", "renkan__owner").filter(state=HdalabRenkan.PUBLISHED, favorite=True) )
+
+
class RenkanNew(View):
- def get(self, request):
-
+ def post(self, request):
rk = Renkan()
rk_id = unicode(uuid.uuid1())
rk.rk_id = rk_id
@@ -140,7 +153,6 @@
return redirect("%s?rk_id=%s" % (reverse('renkan_edit'), rk_id))
-
class RenkanEdit(TemplateView):
template_name="renkan_edit.html"
@@ -648,13 +660,13 @@
return redirect(reverse('profile_home'))
-class HdalabRenkanModerate(View, ModelFormMixin):
+class HdalabRenkanModerate(View):
def post(self, request, rk_id):
form = HdalabRenkanStateForm(request.POST)
if form.is_valid():
logger.debug("FORM DATA %r", form.cleaned_data)
- renkan_hda = get_object_or_404(HdalabRenkan, renkan__rk_id=rk_id)
+ renkan_hda = get_object_or_404(HdalabRenkan.objects.select_related(), renkan__rk_id=rk_id)
change_renkan_state(renkan_hda, form.cleaned_data['state'], form.cleaned_data['message'], request.user)
next_url = form.cleaned_data.get('next', None)
if next_url:
@@ -665,6 +677,18 @@
logger.debug("FORM INVALID %r : %r", request.POST, form.errors)
return HttpResponseBadRequest("State form invalid")
+class HdalabRenkanFavorite(View):
+
+ def post(self, request, rk_id):
+ form = HdalabRenkanFavoriteForm(request.POST)
+ if form.is_valid():
+ renkan_hda = get_object_or_404(HdalabRenkan.objects.select_related(), renkan__rk_id=rk_id)
+ renkan_hda.favorite = form.cleaned_data['favorite']
+ renkan_hda.save()
+ return HttpResponse(
+ json.dumps({'status': 'ok', 'renkan': {'rk_id': renkan_hda.renkan.rk_id, 'favorite': renkan_hda.favorite}}),
+ content_type="application/json"
+ )
# Function copied from django.contrib.auth.views to simplify ajax login
@@ -707,4 +731,3 @@
context.update(extra_context)
return TemplateResponse(request, template_name, context,
current_app=current_app)
-
\ No newline at end of file