1 |
commit: 024d77654ecb1749c2e7eb16dc58d77db711ff47 |
2 |
Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org> |
3 |
AuthorDate: Wed Jun 27 19:10:05 2012 +0000 |
4 |
Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua> |
5 |
CommitDate: Wed Jun 27 19:10:05 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=024d7765 |
7 |
|
8 |
Add base view for packages |
9 |
|
10 |
--- |
11 |
gpackages/apps/packages/managers.py | 3 ++ |
12 |
gpackages/apps/packages/urls.py | 4 ++- |
13 |
gpackages/apps/packages/views.py | 12 ++++++- |
14 |
gpackages/templates/packages.html | 60 +++++++++++++++++++++++++++++++++++ |
15 |
4 files changed, 77 insertions(+), 2 deletions(-) |
16 |
|
17 |
diff --git a/gpackages/apps/packages/managers.py b/gpackages/apps/packages/managers.py |
18 |
index 8cc015c..557cd48 100644 |
19 |
--- a/gpackages/apps/packages/managers.py |
20 |
+++ b/gpackages/apps/packages/managers.py |
21 |
@@ -81,6 +81,9 @@ class EbuildMixin(object):#{{{ |
22 |
'revision': ebuild.revision }) |
23 |
return super(EbuildMixin, self).get(*args, **kwargs)#}}} |
24 |
|
25 |
+ def all_by_numbers(self): |
26 |
+ return super(EbuildMixin, self).order_by('version', 'revision') |
27 |
+ |
28 |
|
29 |
class HerdsMixin(object):#{{{ |
30 |
def filter(self, *args, **kwargs): |
31 |
|
32 |
diff --git a/gpackages/apps/packages/urls.py b/gpackages/apps/packages/urls.py |
33 |
index 33af35d..569417e 100644 |
34 |
--- a/gpackages/apps/packages/urls.py |
35 |
+++ b/gpackages/apps/packages/urls.py |
36 |
@@ -1,6 +1,7 @@ |
37 |
from django.conf.urls import patterns, include, url |
38 |
from views import CategoriesListView, HerdsListView, MaintainersListView, \ |
39 |
- RepositoriesListView, LicenseGroupsView , EbuildsListView |
40 |
+ RepositoriesListView, LicenseGroupsView , EbuildsListView, \ |
41 |
+ PackagesListsView |
42 |
|
43 |
urlpatterns = patterns('', |
44 |
url(r'^categories/$', CategoriesListView.as_view(), name = 'categories'), |
45 |
@@ -9,4 +10,5 @@ urlpatterns = patterns('', |
46 |
url(r'^repositories/$', RepositoriesListView.as_view(), name = 'repositories'), |
47 |
url(r'^license-groups/$', LicenseGroupsView.as_view(), name = 'license_groups'), |
48 |
url(r'^$', EbuildsListView.as_view(), name = 'ebuilds'), |
49 |
+ url(r'^packages/$', PackagesListsView.as_view(), name = 'packages'), |
50 |
) |
51 |
|
52 |
diff --git a/gpackages/apps/packages/views.py b/gpackages/apps/packages/views.py |
53 |
index 93a1abd..6f73fdd 100644 |
54 |
--- a/gpackages/apps/packages/views.py |
55 |
+++ b/gpackages/apps/packages/views.py |
56 |
@@ -1,6 +1,7 @@ |
57 |
from generic.views import ContextListView, ContextTemplateView |
58 |
from models import CategoryModel, HerdsModel, MaintainerModel, \ |
59 |
- RepositoryModel, LicenseGroupModel, EbuildModel |
60 |
+ RepositoryModel, LicenseGroupModel, EbuildModel, \ |
61 |
+ PackageModel |
62 |
|
63 |
class CategoriesListView(ContextListView): |
64 |
extra_context = {'page_name': 'Categories',} |
65 |
@@ -42,3 +43,12 @@ class EbuildsListView(ContextListView): |
66 |
select_related('package', |
67 |
'package__virtual_package', |
68 |
'package__virtual_package__category') |
69 |
+ |
70 |
+class PackagesListsView(ContextListView): |
71 |
+ paginate_by = 40 |
72 |
+ extra_context = {'page_name': 'Packages',} |
73 |
+ template_name = 'packages.html' |
74 |
+ context_object_name = 'packages' |
75 |
+ queryset = PackageModel.objects.all(). \ |
76 |
+ select_related('virtual_package', 'virtual_package__category') |
77 |
+ #prefetch_related('ebuildmodel_set') |
78 |
|
79 |
diff --git a/gpackages/templates/packages.html b/gpackages/templates/packages.html |
80 |
new file mode 100644 |
81 |
index 0000000..adead16 |
82 |
--- /dev/null |
83 |
+++ b/gpackages/templates/packages.html |
84 |
@@ -0,0 +1,60 @@ |
85 |
+{% extends "base.html" %} |
86 |
+ |
87 |
+{% block content %} |
88 |
+{% for package in packages %} |
89 |
+ <div class="well package-well"> |
90 |
+ <div class="package-name"> |
91 |
+ <span>{{ package.cp }}</span> |
92 |
+ <span class="package_update_datetime">{{ package.updated_datetime }}</span> |
93 |
+ </div> |
94 |
+ {% if package.description %} |
95 |
+ <div style="padding-bottom: 10px; margin 10px;">{{ package.description }}</div> |
96 |
+ {% endif %} |
97 |
+ <table class="keywords table table-bordered table-condensed"> |
98 |
+ <colgroup> |
99 |
+ <col class="span2"> |
100 |
+ <col class="span1"> |
101 |
+ <col class="span1"> |
102 |
+ <col class="span1"> |
103 |
+ <col class="span1"> |
104 |
+ <col class="span1"> |
105 |
+ <col class="span1"> |
106 |
+ <col class="span1"> |
107 |
+ <col class="span1"> |
108 |
+ <col class="span1"> |
109 |
+ </colgroup> |
110 |
+ <thead> |
111 |
+ <tr class=""> |
112 |
+ <th class=""></th> |
113 |
+ <th class="">alpha</th> |
114 |
+ <th class="">amd64</th> |
115 |
+ <th class="">arm</th> |
116 |
+ <th class="">hppa</th> |
117 |
+ <th class="">ia64</th> |
118 |
+ <th class="">ppc</th> |
119 |
+ <th class="">ppc64</th> |
120 |
+ <th class="">sparc</th> |
121 |
+ <th class="">x86</th> |
122 |
+ </tr> |
123 |
+ </thead> |
124 |
+ <tbody> |
125 |
+ {% for ebuild in package.ebuildmodel_set.all_by_numbers %} |
126 |
+ <tr> |
127 |
+ <td class="ebuild">{{ ebuild.fullversion }}</td> |
128 |
+ <td class="blank"></td> |
129 |
+ <td class="unstable">~</td> |
130 |
+ <td class="blank"></td> |
131 |
+ <td class="blank"></td> |
132 |
+ <td class="blank"></td> |
133 |
+ <td class="blank"></td> |
134 |
+ <td class="blank"></td> |
135 |
+ <td class="blank"></td> |
136 |
+ <td class="unstable">~</td> |
137 |
+ </tr> |
138 |
+ {% endfor %} |
139 |
+ </tbody> |
140 |
+ </table> |
141 |
+ </div> |
142 |
+{% endfor %} |
143 |
+{% include 'paginator.html' %} |
144 |
+{% endblock content %} |