From ec867584ef2078492d70b555ca419ea9e01dca8e Mon Sep 17 00:00:00 2001 From: Filipp Lepalaan Date: Mon, 21 Mar 2016 20:37:11 +0200 Subject: Fixed article flag marking --- servo/migrations/0053_auto_20160321_2013.py | 26 ++++++++++++++++++++++ servo/migrations/0054_auto_20160321_2018.py | 26 ++++++++++++++++++++++ servo/migrations/0055_auto_20160321_2027.py | 26 ++++++++++++++++++++++ servo/models/note.py | 34 ++++++++++++++++++++++++++--- servo/templates/notes/list_notes.html | 2 +- servo/templates/notes/view_article.html | 4 ++-- servo/templates/notes/view_note.html | 4 ++-- servo/urls/note.py | 2 +- servo/views/note.py | 21 ++++++++++++++---- 9 files changed, 132 insertions(+), 13 deletions(-) create mode 100644 servo/migrations/0053_auto_20160321_2013.py create mode 100644 servo/migrations/0054_auto_20160321_2018.py create mode 100644 servo/migrations/0055_auto_20160321_2027.py (limited to 'servo') diff --git a/servo/migrations/0053_auto_20160321_2013.py b/servo/migrations/0053_auto_20160321_2013.py new file mode 100644 index 0000000..22d7b2e --- /dev/null +++ b/servo/migrations/0053_auto_20160321_2013.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.4 on 2016-03-21 18:13 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servo', '0052_auto_20160321_1835'), + ] + + operations = [ + migrations.AlterField( + model_name='article', + name='flagged_by', + field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), default=[], size=None), + ), + migrations.AlterField( + model_name='article', + name='read_by', + field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), default=[], size=None), + ), + ] diff --git a/servo/migrations/0054_auto_20160321_2018.py b/servo/migrations/0054_auto_20160321_2018.py new file mode 100644 index 0000000..d1c04d6 --- /dev/null +++ b/servo/migrations/0054_auto_20160321_2018.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.4 on 2016-03-21 18:18 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servo', '0053_auto_20160321_2013'), + ] + + operations = [ + migrations.AlterField( + model_name='article', + name='flagged_by', + field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), null=True, size=None), + ), + migrations.AlterField( + model_name='article', + name='read_by', + field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), null=True, size=None), + ), + ] diff --git a/servo/migrations/0055_auto_20160321_2027.py b/servo/migrations/0055_auto_20160321_2027.py new file mode 100644 index 0000000..496f868 --- /dev/null +++ b/servo/migrations/0055_auto_20160321_2027.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.4 on 2016-03-21 18:27 +from __future__ import unicode_literals + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('servo', '0054_auto_20160321_2018'), + ] + + operations = [ + migrations.AlterField( + model_name='article', + name='flagged_by', + field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), default=[], size=None), + ), + migrations.AlterField( + model_name='article', + name='read_by', + field=django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), default=[], size=None), + ), + ] diff --git a/servo/models/note.py b/servo/models/note.py index 40ce021..a598a95 100644 --- a/servo/models/note.py +++ b/servo/models/note.py @@ -637,8 +637,8 @@ class Article(models.Model): product_model = ArrayField(models.CharField(max_length=128), null=True, editable=False) - read_by = ArrayField(models.IntegerField(), null=True) - flagged_by = ArrayField(models.IntegerField(), null=True) + read_by = ArrayField(models.IntegerField(), default=[]) + flagged_by = ArrayField(models.IntegerField(), default=[]) def get_creation_date(self): return self.date_created @@ -651,7 +651,35 @@ class Article(models.Model): def get_title(self): return self.title - + + def get_read_title(self, user): + if user.pk in self.read_by: + return _('Mark as unread') + + return _('Mark as read') + + def get_flagged_title(self, user): + if user.pk in self.flagged_by: + return _('Mark as unflagged') + + return _('Mark as flagged') + + def toggle_read(self, user): + if user.pk in self.read_by: + self.read_by.remove(user.pk) + else: + self.read_by = self.read_by + [user.pk] + + return self.save() + + def toggle_flagged(self, user): + if user.pk in self.flagged_by: + self.flagged_by.remove(user.pk) + else: + self.flagged_by = self.flagged_by + [user.pk] + + return self.save() + @classmethod def from_gsx(cls, article): """ diff --git a/servo/templates/notes/list_notes.html b/servo/templates/notes/list_notes.html index 30fdb3d..187d421 100755 --- a/servo/templates/notes/list_notes.html +++ b/servo/templates/notes/list_notes.html @@ -35,7 +35,7 @@