mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Stopgap solution for lack of timezone support. Marking a feed as read uses the timestamp of the latest story OR current time, whichever is later.
This commit is contained in:
parent
d18ee60599
commit
6be96b05d3
5 changed files with 34 additions and 68 deletions
|
@ -31,12 +31,14 @@ class UserSubscription(models.Model):
|
|||
super(UserSubscription, self).save(force_insert, force_update, *args, **kwargs)
|
||||
|
||||
def mark_feed_read(self):
|
||||
self.last_read_date = datetime.datetime.now()
|
||||
self.mark_read_date = datetime.datetime.now()
|
||||
latest_story = self.feed.stories.order_by('-story_date')[0]
|
||||
now = datetime.datetime.now()
|
||||
self.last_read_date = max(now, latest_story.story_date)
|
||||
self.mark_read_date = max(now, latest_story.story_date)
|
||||
self.unread_count_negative = 0
|
||||
self.unread_count_positive = 0
|
||||
self.unread_count_neutral = 0
|
||||
self.unread_count_updated = datetime.datetime.now()
|
||||
self.unread_count_updated = max(now, latest_story.story_date)
|
||||
self.needs_unread_relcalc = False
|
||||
self.save()
|
||||
|
||||
|
|
|
@ -1,18 +1,4 @@
|
|||
[
|
||||
|
||||
|
||||
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "reader.usersubscriptionfolders",
|
||||
"fields": {
|
||||
"feed": 1,
|
||||
"user_sub": 1,
|
||||
"folder": "Blogs",
|
||||
"user": 1
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "reader.usersubscription",
|
||||
|
@ -20,18 +6,18 @@
|
|||
"feed": 1,
|
||||
"unread_count_updated": "2009-08-01 00:23:42",
|
||||
"mark_read_date": "2009-07-28 23:17:27",
|
||||
"unread_count": 0,
|
||||
"unread_count_neutral": 0,
|
||||
"unread_count_positive": 0,
|
||||
"unread_count_negative": 0,
|
||||
"user": 1,
|
||||
"last_read_date": "2009-07-28 23:17:27"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 2,
|
||||
"pk": 1,
|
||||
"model": "reader.usersubscriptionfolders",
|
||||
"fields": {
|
||||
"feed": 2,
|
||||
"user_sub": 2,
|
||||
"folder": "Blogs",
|
||||
"folders": "[{\"Tech\": [4, 5]}, 1, 2, 3]",
|
||||
"user": 1
|
||||
}
|
||||
},
|
||||
|
@ -43,22 +29,13 @@
|
|||
"feed": 2,
|
||||
"unread_count_updated": "2009-08-01 00:23:42",
|
||||
"mark_read_date": "2009-07-28 23:17:27",
|
||||
"unread_count": 0,
|
||||
"unread_count_neutral": 0,
|
||||
"unread_count_positive": 0,
|
||||
"unread_count_negative": 0,
|
||||
"user": 1,
|
||||
"last_read_date": "2009-07-28 23:17:27"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 3,
|
||||
"model": "reader.usersubscriptionfolders",
|
||||
"fields": {
|
||||
"feed": 3,
|
||||
"user_sub": 3,
|
||||
"folder": "Blogs",
|
||||
"user": 1
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"pk": 3,
|
||||
"model": "reader.usersubscription",
|
||||
|
@ -66,22 +43,13 @@
|
|||
"feed": 3,
|
||||
"unread_count_updated": "2009-08-01 00:23:42",
|
||||
"mark_read_date": "2009-07-28 23:17:27",
|
||||
"unread_count": 0,
|
||||
"unread_count_neutral": 0,
|
||||
"unread_count_positive": 0,
|
||||
"unread_count_negative": 0,
|
||||
"user": 1,
|
||||
"last_read_date": "2009-07-28 23:17:27"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 4,
|
||||
"model": "reader.usersubscriptionfolders",
|
||||
"fields": {
|
||||
"feed": 4,
|
||||
"user_sub": 4,
|
||||
"folder": "Blogs",
|
||||
"user": 1
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"pk": 4,
|
||||
"model": "reader.usersubscription",
|
||||
|
@ -89,25 +57,13 @@
|
|||
"feed": 4,
|
||||
"unread_count_updated": "2009-08-01 00:23:42",
|
||||
"mark_read_date": "2009-07-28 23:17:27",
|
||||
"unread_count": 0,
|
||||
"unread_count_neutral": 0,
|
||||
"unread_count_positive": 0,
|
||||
"unread_count_negative": 0,
|
||||
"user": 1,
|
||||
"last_read_date": "2009-07-28 23:17:27"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
"pk": 5,
|
||||
"model": "reader.usersubscriptionfolders",
|
||||
"fields": {
|
||||
"feed": 5,
|
||||
"user_sub": 5,
|
||||
"folder": "Blogs",
|
||||
"user": 1
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"pk": 5,
|
||||
"model": "reader.usersubscription",
|
||||
|
@ -115,7 +71,9 @@
|
|||
"feed": 5,
|
||||
"unread_count_updated": "2009-08-01 00:23:42",
|
||||
"mark_read_date": "2009-07-28 23:17:27",
|
||||
"unread_count": 0,
|
||||
"unread_count_neutral": 0,
|
||||
"unread_count_positive": 0,
|
||||
"unread_count_negative": 0,
|
||||
"user": 1,
|
||||
"last_read_date": "2009-07-28 23:17:27"
|
||||
}
|
||||
|
|
|
@ -317,7 +317,7 @@ class StoryAuthor(models.Model):
|
|||
|
||||
class Story(models.Model):
|
||||
'''A feed item'''
|
||||
story_feed = models.ForeignKey(Feed)
|
||||
story_feed = models.ForeignKey(Feed, related_name="stories")
|
||||
story_date = models.DateTimeField()
|
||||
story_title = models.CharField(max_length=255)
|
||||
story_content = StoryField(null=True, blank=True)
|
||||
|
|
|
@ -14,10 +14,10 @@ class FeedTest(TestCase):
|
|||
self.client.login(username='conesus', password='test')
|
||||
|
||||
management.call_command('loaddata', 'gawker1.json', verbosity=0)
|
||||
response = self.client.get('/reader/refresh_feed', { "feed_id": 1, "force": True })
|
||||
management.call_command('refresh_feed', force=1, feed=1, daemonize=False)
|
||||
|
||||
management.call_command('loaddata', 'gawker2.json', verbosity=0)
|
||||
response = self.client.get('/reader/refresh_feed', { "feed_id": 1, "force": True })
|
||||
management.call_command('refresh_feed', force=1, feed=1, daemonize=False)
|
||||
|
||||
response = self.client.get('/reader/load_single_feed', { "feed_id": 1 })
|
||||
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
from settings import *
|
||||
|
||||
DATABASE_ENGINE = 'sqlite3'
|
||||
DATABASE_NAME = ':memory:'
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'NAME': ':memory:',
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
'USER': 'newsblur',
|
||||
'PASSWORD': '',
|
||||
'HOST': '127.0.0.1',
|
||||
}
|
||||
}
|
||||
TEST_DATABASE_NAME = ":memory:"
|
||||
|
||||
# from django.db import connection
|
||||
|
|
Loading…
Add table
Reference in a new issue