Gentoo Archives: gentoo-commits

From: Slava Bacherikov <slava@××××××××××××××.ua>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/templatetags/, ...
Date: Tue, 31 Jul 2012 14:23:27
Message-Id: 1343737442.945c8a65ae75bb0a206d17adcddf35aa9ab9eb17.bacher09@gentoo
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 %}