From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1SkOdH-0007pe-Fu for garchives@archives.gentoo.org; Fri, 29 Jun 2012 00:00:19 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 66BE0E0595; Thu, 28 Jun 2012 23:59:57 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 26743E0595 for ; Thu, 28 Jun 2012 23:59:56 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id DD4691B4085 for ; Thu, 28 Jun 2012 23:59:55 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 774BAE543C for ; Thu, 28 Jun 2012 23:59:53 +0000 (UTC) From: "Slava Bacherikov" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Slava Bacherikov" Message-ID: <1340923514.da9ac5b7a7b636fdf67a528386e676ee95c10e9a.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/templates/ X-VCS-Repository: proj/gentoo-packages X-VCS-Files: gpackages/apps/packages/models.py gpackages/apps/packages/urls.py gpackages/apps/packages/views.py gpackages/templates/package.html gpackages/templates/package_object.html gpackages/templates/packages.html X-VCS-Directories: gpackages/apps/packages/ gpackages/templates/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: da9ac5b7a7b636fdf67a528386e676ee95c10e9a X-VCS-Branch: master Date: Thu, 28 Jun 2012 23:59:53 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 2dd983f0-9ffa-45da-8387-7f022c79e775 X-Archives-Hash: 7cb24c47297b305c589045ac62b31866 commit: da9ac5b7a7b636fdf67a528386e676ee95c10e9a Author: Slava Bacherikov bacher09 org> AuthorDate: Thu Jun 28 22:45:14 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Thu Jun 28 22:45:14 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoo-packag= es.git;a=3Dcommit;h=3Dda9ac5b7 Add PackageDetailView --- gpackages/apps/packages/models.py | 13 ++++++++ gpackages/apps/packages/urls.py | 7 ++++- gpackages/apps/packages/views.py | 50 +++++++++++++++++++++++++= ++++- gpackages/templates/package.html | 5 +++ gpackages/templates/package_object.html | 12 +++++++ gpackages/templates/packages.html | 12 +------ 6 files changed, 86 insertions(+), 13 deletions(-) diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/= models.py index aa7bd65..1e50175 100644 --- a/gpackages/apps/packages/models.py +++ b/gpackages/apps/packages/models.py @@ -316,6 +316,19 @@ class PackageModel(AbstractDateTimeModel): for ebuild in self.ebuilds: l.extend(ebuild.get_ebuilds_and_keywords(arch_list)) return l + + @models.permalink + def get_absolute_url_by_pk(self): + return ('package',(), {'pk': self.pk}) + + @models.permalink + def get_absolute_url(self): + # It coold been in many repositories + kwargs =3D { 'category': self.virtual_package.category.category, + 'name': self.virtual_package.name } + if self.repository.name !=3D 'gentoo': + kwargs['repository'] =3D self.repository.name + return ('package',(), kwargs ) =20 class Meta: unique_together =3D ('virtual_package', 'repository') diff --git a/gpackages/apps/packages/urls.py b/gpackages/apps/packages/ur= ls.py index 569417e..3744802 100644 --- a/gpackages/apps/packages/urls.py +++ b/gpackages/apps/packages/urls.py @@ -1,7 +1,7 @@ from django.conf.urls import patterns, include, url from views import CategoriesListView, HerdsListView, MaintainersListView= , \ RepositoriesListView, LicenseGroupsView , EbuildsListV= iew, \ - PackagesListsView + PackagesListsView, PackageDetailView =20 urlpatterns =3D patterns('', url(r'^categories/$', CategoriesListView.as_view(), name =3D 'catego= ries'), @@ -11,4 +11,9 @@ urlpatterns =3D patterns('', url(r'^license-groups/$', LicenseGroupsView.as_view(), name =3D 'lic= ense_groups'), url(r'^$', EbuildsListView.as_view(), name =3D 'ebuilds'), url(r'^packages/$', PackagesListsView.as_view(), name =3D 'packages'= ), + + # In Future I will write my onw URL Resolver !!! + #url(r'^package/(?:(?P\d+)|(?P[^/]+)/(?P[^/]+))/= $', PackageDetailView.as_view(), name =3D 'package'), + url(r'^package/(?P\d+)/$', PackageDetailView.as_view(), name =3D= 'package'), + url(r'^package/(?P[^/]+)/(?P[^/:]+)(::(?P[^/]+))?/$', PackageDetailView.as_view(), name =3D 'package'), ) diff --git a/gpackages/apps/packages/views.py b/gpackages/apps/packages/v= iews.py index 4639555..98672d4 100644 --- a/gpackages/apps/packages/views.py +++ b/gpackages/apps/packages/views.py @@ -1,8 +1,11 @@ -from generic.views import ContextListView, ContextTemplateView +from django.views.generic import DetailView +from generic.views import ContextListView, ContextTemplateView, ContextV= iew from models import CategoryModel, HerdsModel, MaintainerModel, \ RepositoryModel, LicenseGroupModel, EbuildModel, \ PackageModel =20 +from django.shortcuts import get_object_or_404 + class CategoriesListView(ContextListView): extra_context =3D {'page_name': 'Categories',} template_name =3D 'categories.html' @@ -52,5 +55,48 @@ class PackagesListsView(ContextListView): template_name =3D 'packages.html' context_object_name =3D 'packages' queryset =3D PackageModel.objects.all(). \ - select_related('virtual_package', 'virtual_package__category'). = \ + select_related('virtual_package', + 'virtual_package__category', + 'repository'). \ + defer('repository__description', + 'repository__owner_name', + 'repository__owner_email', + 'repository__homepage', + 'repository__official', + 'repository__quality', + 'changelog'). \ prefetch_keywords(arches) + +class PackageDetailView(ContextView, DetailView): + arches =3D ['alpha', 'amd64', 'arm', 'hppa', 'ia64', 'ppc', 'ppc64',= 'sparc', 'x86'] + template_name =3D 'package.html' + extra_context =3D {'page_name': 'Package', 'arches': arches} + context_object_name =3D 'package' + queryset =3D PackageModel.objects.all(). \ + select_related('virtual_package', + 'virtual_package__category', + 'repository'). \ + defer('repository__description', + 'repository__owner_name', + 'repository__owner_email', + 'repository__homepage', + 'repository__official', + 'repository__quality', + 'changelog'). \ + prefetch_keywords(arches) + + def get_object(self, queryset =3D None): + pk =3D self.kwargs.get('pk') + if pk is not None: + return super(PackageDetailView, self).get_object(queryset) + if queryset is None: + queryset =3D self.get_queryset() + + name, category =3D self.kwargs.get('name'), self.kwargs.get('cat= egory') + repository =3D self.kwargs.get('repository') + if repository is None: + repository =3D 'gentoo' + obj =3D get_object_or_404(queryset, name =3D name, + category =3D category, + repository__name =3D repositor= y) + return obj diff --git a/gpackages/templates/package.html b/gpackages/templates/packa= ge.html new file mode 100644 index 0000000..9023001 --- /dev/null +++ b/gpackages/templates/package.html @@ -0,0 +1,5 @@ +{% extends "base.html" %} + +{% block content %} + {% include 'package_object.html' %} +{% endblock content %} diff --git a/gpackages/templates/package_object.html b/gpackages/template= s/package_object.html new file mode 100644 index 0000000..d713d4a --- /dev/null +++ b/gpackages/templates/package_object.html @@ -0,0 +1,12 @@ +{% load url from future %} +{% load packages %} +
+
+ {{ package.cp }= }:: {{ package.repository.name }} + {{ package.updated_datet= ime }} +
+ {% if package.description %} +
{{ package.des= cription }}
+ {% endif %} + {% render_keywords_table package arches %} +
diff --git a/gpackages/templates/packages.html b/gpackages/templates/pack= ages.html index ec6d22a..f7ac01a 100644 --- a/gpackages/templates/packages.html +++ b/gpackages/templates/packages.html @@ -1,18 +1,10 @@ {% extends "base.html" %} +{% load url from future %} {% load packages %} =20 {% block content %} {% for package in packages %} -
-
- {{ package.cp }} - {{ package.updated_d= atetime }} -
- {% if package.description %} -
{{ package.des= cription }}
- {% endif %} - {% render_keywords_table package arches %} -
+ {% include 'package_object.html' %} {% endfor %} {% include 'paginator.html' %} {% endblock content %}