cache rating for trending
This commit is contained in:
parent
d8d07c3777
commit
1fe394c10e
4 changed files with 27 additions and 16 deletions
|
@ -167,7 +167,8 @@ class GoodreadsTestCase(TestCase):
|
|||
t_url = "https://www.goodreads.com/book/show/77566.Hyperion"
|
||||
t_url2 = "https://www.goodreads.com/book/show/77566"
|
||||
isbn = "9780553283686"
|
||||
site = SiteManager.get_site_by_url(t_url)
|
||||
site = SiteManager.get_site_by_url(t_url, False)
|
||||
self.assertIsNotNone(site)
|
||||
self.assertEqual(site.ready, False)
|
||||
self.assertEqual(site.url, t_url2)
|
||||
site.get_resource()
|
||||
|
|
|
@ -263,6 +263,7 @@ class ItemInSchema(Schema):
|
|||
cover_image_url: str | None
|
||||
rating: float | None
|
||||
rating_count: int | None
|
||||
rating_distribution: dict[str, int] | None
|
||||
# brief is deprecated
|
||||
brief: str = Field(deprecated=True, alias="display_description")
|
||||
|
||||
|
@ -768,25 +769,25 @@ class Item(PolymorphicModel):
|
|||
def editable(self):
|
||||
return not self.is_deleted and self.merged_to_item is None
|
||||
|
||||
@property
|
||||
@cached_property
|
||||
def rating(self):
|
||||
from journal.models import Rating
|
||||
|
||||
return Rating.get_rating_for_item(self)
|
||||
|
||||
@property
|
||||
@cached_property
|
||||
def rating_count(self):
|
||||
from journal.models import Rating
|
||||
|
||||
return Rating.get_rating_count_for_item(self)
|
||||
|
||||
@property
|
||||
def rating_dist(self):
|
||||
@cached_property
|
||||
def rating_distribution(self):
|
||||
from journal.models import Rating
|
||||
|
||||
return Rating.get_rating_distribution_for_item(self)
|
||||
|
||||
@property
|
||||
@cached_property
|
||||
def tags(self):
|
||||
from journal.models import TagManager
|
||||
|
||||
|
|
|
@ -121,6 +121,10 @@ class DiscoverGenerator(BaseJob):
|
|||
"category": category,
|
||||
}
|
||||
)
|
||||
for i in items:
|
||||
i.rating
|
||||
i.rating_count
|
||||
i.rating_distribution
|
||||
cache.set(key, items, timeout=None)
|
||||
|
||||
item_ids = self.get_popular_marked_item_ids(category, DAYS_FOR_TRENDS, [])[
|
||||
|
|
|
@ -167,20 +167,25 @@
|
|||
</div>
|
||||
<div data-placement="top">
|
||||
<ul class="chart">
|
||||
<li data-tooltip="{{ item.rating_dist.0 }}%" data-placement="left">
|
||||
<span style="height:{{ item.rating_dist.0 }}%"></span>
|
||||
<li data-tooltip="{{ item.rating_distribution.0 }}%"
|
||||
data-placement="left">
|
||||
<span style="height:{{ item.rating_distribution.0 }}%"></span>
|
||||
</li>
|
||||
<li data-tooltip="{{ item.rating_dist.1 }}%" data-placement="left">
|
||||
<span style="height:{{ item.rating_dist.1 }}%"></span>
|
||||
<li data-tooltip="{{ item.rating_distribution.1 }}%"
|
||||
data-placement="left">
|
||||
<span style="height:{{ item.rating_distribution.1 }}%"></span>
|
||||
</li>
|
||||
<li data-tooltip="{{ item.rating_dist.2 }}%" data-placement="left">
|
||||
<span style="height:{{ item.rating_dist.2 }}%"></span>
|
||||
<li data-tooltip="{{ item.rating_distribution.2 }}%"
|
||||
data-placement="left">
|
||||
<span style="height:{{ item.rating_distribution.2 }}%"></span>
|
||||
</li>
|
||||
<li data-tooltip="{{ item.rating_dist.3 }}%" data-placement="left">
|
||||
<span style="height:{{ item.rating_dist.3 }}%"></span>
|
||||
<li data-tooltip="{{ item.rating_distribution.3 }}%"
|
||||
data-placement="left">
|
||||
<span style="height:{{ item.rating_distribution.3 }}%"></span>
|
||||
</li>
|
||||
<li data-tooltip="{{ item.rating_dist.4 }}%" data-placement="left">
|
||||
<span style="height:{{ item.rating_dist.4 }}%"></span>
|
||||
<li data-tooltip="{{ item.rating_distribution.4 }}%"
|
||||
data-placement="left">
|
||||
<span style="height:{{ item.rating_distribution.4 }}%"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Reference in a new issue