fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Simpler payments and introduce seasonal banner.
[wolnelektury.git]
/
src
/
social
/
models.py
diff --git
a/src/social/models.py
b/src/social/models.py
index
862db4c
..
45ee0f4
100644
(file)
--- a/
src/social/models.py
+++ b/
src/social/models.py
@@
-277,6
+277,11
@@
class Progress(Syncable, models.Model):
return super().save(*args, **kwargs)
return super().save(*args, **kwargs)
+class ActiveManager(models.Manager):
+ def get_queryset(self):
+ return super().get_queryset().filter(deleted=False)
+
+
class UserList(Syncable, models.Model):
slug = models.SlugField(unique=True)
user = models.ForeignKey(User, models.CASCADE)
class UserList(Syncable, models.Model):
slug = models.SlugField(unique=True)
user = models.ForeignKey(User, models.CASCADE)
@@
-289,7
+294,10
@@
class UserList(Syncable, models.Model):
reported_timestamp = models.DateTimeField()
syncable_fields = ['name', 'public', 'deleted']
reported_timestamp = models.DateTimeField()
syncable_fields = ['name', 'public', 'deleted']
-
+
+ objects = ActiveManager()
+ all_objects = models.Manager()
+
def get_absolute_url(self):
return reverse(
'tagged_object_list',
def get_absolute_url(self):
return reverse(
'tagged_object_list',
@@
-351,7
+359,7
@@
class UserList(Syncable, models.Model):
# merge?
lists = list(cls.objects.filter(user=user, favorites=True))
for l in lists[1:]:
# merge?
lists = list(cls.objects.filter(user=user, favorites=True))
for l in lists[1:]:
-
t
.userlistitem_set.all().update(
+
l
.userlistitem_set.all().update(
list=lists[0]
)
l.delete()
list=lists[0]
)
l.delete()
@@
-410,11
+418,11
@@
class UserList(Syncable, models.Model):
class UserListItem(Syncable, models.Model):
list = models.ForeignKey(UserList, models.CASCADE)
uuid = models.UUIDField(unique=True, default=uuid.uuid4, editable=False, blank=True)
class UserListItem(Syncable, models.Model):
list = models.ForeignKey(UserList, models.CASCADE)
uuid = models.UUIDField(unique=True, default=uuid.uuid4, editable=False, blank=True)
- order = models.IntegerField()
+ order = models.IntegerField(
default=0
)
deleted = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
deleted = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
- reported_timestamp = models.DateTimeField()
+ reported_timestamp = models.DateTimeField(
default=now
)
book = models.ForeignKey('catalogue.Book', models.SET_NULL, null=True, blank=True)
fragment = models.ForeignKey('catalogue.Fragment', models.SET_NULL, null=True, blank=True)
book = models.ForeignKey('catalogue.Book', models.SET_NULL, null=True, blank=True)
fragment = models.ForeignKey('catalogue.Fragment', models.SET_NULL, null=True, blank=True)
@@
-425,6
+433,14
@@
class UserListItem(Syncable, models.Model):
syncable_fields = ['order', 'deleted', 'book', 'fragment', 'quote', 'bookmark', 'note']
syncable_fields = ['order', 'deleted', 'book', 'fragment', 'quote', 'bookmark', 'note']
+ objects = ActiveManager()
+ all_objects = models.Manager()
+
+ def save(self, *args, **kwargs):
+ if not self.order:
+ self.order = self.list.userlistitem_set.all().count() + 1
+ super().save(*args, **kwargs)
+
@classmethod
def create_from_data(cls, user, data):
if data.get('favorites'):
@classmethod
def create_from_data(cls, user, data):
if data.get('favorites'):