1 |
commit: 945c8a65ae75bb0a206d17adcddf35aa9ab9eb17 |
2 |
Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org> |
3 |
AuthorDate: Tue Jul 31 12:24:02 2012 +0000 |
4 |
Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua> |
5 |
CommitDate: Tue Jul 31 12:24:02 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=945c8a65 |
7 |
|
8 |
Cache data in package view |
9 |
|
10 |
--- |
11 |
gpackages/apps/packages/models.py | 12 ++++++++++++ |
12 |
gpackages/apps/packages/templatetags/packages.py | 9 ++++++++- |
13 |
gpackages/templates/package.html | 2 +- |
14 |
3 files changed, 21 insertions(+), 2 deletions(-) |
15 |
|
16 |
diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py |
17 |
index 7207ad9..5cf2b03 100644 |
18 |
--- a/gpackages/apps/packages/models.py |
19 |
+++ b/gpackages/apps/packages/models.py |
20 |
@@ -16,6 +16,9 @@ from package_info.validators import validate_url, validate_email, \ |
21 |
from package_info.parse_cp import VersionParse |
22 |
|
23 |
from django.utils.html import urlize, linebreaks |
24 |
+from package_info.generic_metadata.changelog_highlight import changelog_highlight |
25 |
+from django.utils.safestring import mark_safe |
26 |
+from django.core.cache import cache |
27 |
|
28 |
|
29 |
def simple_markup(value): |
30 |
@@ -456,6 +459,15 @@ class PackageModel(StatsModel, AbstractDateTimeModel): |
31 |
def short_description(self): |
32 |
return self.latest_ebuild.description |
33 |
|
34 |
+ @property |
35 |
+ def highlighted_changelog(self): |
36 |
+ key = 'changelog_package_' + str(self.pk) |
37 |
+ c = cache.get(key) |
38 |
+ if c is None: |
39 |
+ c = mark_safe(changelog_highlight(self.changelog)) |
40 |
+ cache.set(key, c) |
41 |
+ return c |
42 |
+ |
43 |
def init_by_package(self, package, category = None, virtual_package = None): |
44 |
#self.name = package.name |
45 |
self.update_info(package) |
46 |
|
47 |
diff --git a/gpackages/apps/packages/templatetags/packages.py b/gpackages/apps/packages/templatetags/packages.py |
48 |
index 5f0f3f0..820daaf 100644 |
49 |
--- a/gpackages/apps/packages/templatetags/packages.py |
50 |
+++ b/gpackages/apps/packages/templatetags/packages.py |
51 |
@@ -82,7 +82,14 @@ def filtering_modal(context): |
52 |
form = FilteringForm(initial = initial) |
53 |
return {'form': form } |
54 |
|
55 |
-@××××××××.inclusion_tag('packages_use_flag.html') |
56 |
+def use_flag_table_key(package): |
57 |
+ if package.latest_ebuild: |
58 |
+ return 'use_flag_table_ebuild' + str(package.latest_ebuild.pk) |
59 |
+ else: |
60 |
+ return 'use_flag_table_package' + str(package.pk) |
61 |
+ |
62 |
+@inclusion_cached_tag('packages_use_flag.html', register, use_flag_table_key, |
63 |
+ time_zone = False) |
64 |
def use_flag_table(package): |
65 |
if package.latest_ebuild: |
66 |
use_flags = package.latest_ebuild.use_flags_with_descr() |
67 |
|
68 |
diff --git a/gpackages/templates/package.html b/gpackages/templates/package.html |
69 |
index 2b6760c..00f1191 100644 |
70 |
--- a/gpackages/templates/package.html |
71 |
+++ b/gpackages/templates/package.html |
72 |
@@ -11,7 +11,7 @@ |
73 |
</ul> |
74 |
<div class="tab-content"> |
75 |
<div class="tab-pane active" id="tab1"> |
76 |
- {{ package.changelog|changelog_highlight }} |
77 |
+ {{ package.highlighted_changelog }} |
78 |
</div> |
79 |
<div class="tab-pane" id="tab2"> |
80 |
{% use_flag_table package %} |