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.77) (envelope-from <gentoo-commits+bounces-482853-garchives=archives.gentoo.org@lists.gentoo.org>) id 1SmXpM-0003Ws-8N for garchives@archives.gentoo.org; Wed, 04 Jul 2012 22:13:40 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 64166E059B; Wed, 4 Jul 2012 22:13:23 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 251E4E059B for <gentoo-commits@lists.gentoo.org>; Wed, 4 Jul 2012 22:13:22 +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 3E24F1B4011 for <gentoo-commits@lists.gentoo.org>; Wed, 4 Jul 2012 22:13:22 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 2E53FE5448 for <gentoo-commits@lists.gentoo.org>; Wed, 4 Jul 2012 22:13:18 +0000 (UTC) From: "Slava Bacherikov" <slava@bacherikov.org.ua> To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Slava Bacherikov" <slava@bacherikov.org.ua> Message-ID: <1341409832.1cf4caecb751b6d7990e60c0e5382642e73e93ee.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/base.html gpackages/templates/portage_news.html gpackages/templates/portage_news_item.html gpackages/templates/portage_news_object.html X-VCS-Directories: gpackages/apps/packages/ gpackages/templates/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: 1cf4caecb751b6d7990e60c0e5382642e73e93ee X-VCS-Branch: master Date: Wed, 4 Jul 2012 22:13:18 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 63febf2e-19a8-4526-bfd7-142c959dce4d X-Archives-Hash: 3d1acecca8138061f20210ef673aec24 commit: 1cf4caecb751b6d7990e60c0e5382642e73e93ee Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org> AuthorDate: Wed Jul 4 13:50:32 2012 +0000 Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua> CommitDate: Wed Jul 4 13:50:32 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoo-packag= es.git;a=3Dcommit;h=3D1cf4caec Add views for portage news --- gpackages/apps/packages/models.py | 6 +++++- gpackages/apps/packages/urls.py | 6 ++++-- gpackages/apps/packages/views.py | 18 +++++++++++++++++- gpackages/templates/base.html | 14 +++++++++++--- gpackages/templates/portage_news.html | 13 +++++++++++++ gpackages/templates/portage_news_item.html | 4 ++++ gpackages/templates/portage_news_object.html | 22 ++++++++++++++++++++= ++ 7 files changed, 76 insertions(+), 7 deletions(-) diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/= models.py index 7c21a46..c5a51e3 100644 --- a/gpackages/apps/packages/models.py +++ b/gpackages/apps/packages/models.py @@ -14,7 +14,7 @@ from django.utils.html import urlize, linebreaks =20 =20 def simple_markup(value): - temp =3D urlize(value,trim_url_limit =3D 57, autoescape=3DTrue) # ma= ybe nofollow + temp =3D urlize(value,trim_url_limit =3D 70, autoescape=3DTrue) # ma= ybe nofollow return linebreaks(temp) =20 class AbstractDateTimeModel(models.Model): @@ -47,6 +47,10 @@ class PortageNewsModel(AbstractDateTimeModel): =20 objects =3D managers.PortageNewsManager() =20 + @models.permalink + def get_absolute_url(self): + return ('news_item',(), {'pk': self.pk}) + def init_by_news(self, news): self.date =3D news.date self.name =3D news.name diff --git a/gpackages/apps/packages/urls.py b/gpackages/apps/packages/ur= ls.py index 1eb23ef..c7e6ac5 100644 --- a/gpackages/apps/packages/urls.py +++ b/gpackages/apps/packages/urls.py @@ -2,7 +2,7 @@ from django.conf.urls import patterns, include, url from views import CategoriesListView, HerdsListView, MaintainersListView= , \ RepositoriesListView, LicenseGroupsView , EbuildsListV= iew, \ PackagesListsView, PackageDetailView, EbuildDetailView= , \ - GlobalUseListView + GlobalUseListView, NewsListView, NewsDetailView =20 urlpatterns =3D patterns('', url(r'^categories/$', CategoriesListView.as_view(), name =3D 'catego= ries'), @@ -16,8 +16,10 @@ urlpatterns =3D patterns('', url(r'^ebuild/(?P<cpvr>[^/]+/[^/]+)/$', EbuildDetailView.as_view(), = name =3D 'ebuild'), url(r'^packages/{0}$'.format(PackagesListsView.get_url_part()), Pack= agesListsView.as_view(), name =3D 'packages'), =20 - # In Future I will write my onw URL Resolver !!! #url(r'^package/(?:(?P<pk>\d+)|(?P<category>[^/]+)/(?P<name>[^/]+))/= $', PackageDetailView.as_view(), name =3D 'package'), url(r'^package/(?P<pk>\d+)/$', PackageDetailView.as_view(), name =3D= 'package'), url(r'^package/(?P<cpr>[^/]+/[^/]+)/$', PackageDetailView.as_view(),= name =3D 'package'), + url(r'^news/$', NewsListView.as_view(), name =3D 'news'), + url(r'^news/(?P<pk>\d+)/$', NewsDetailView.as_view(), name =3D 'news= _item'), + url(r'^news/(?P<slug>[^/]+)/$', NewsDetailView.as_view(), name =3D '= news_item'), ) diff --git a/gpackages/apps/packages/views.py b/gpackages/apps/packages/v= iews.py index a0ce56a..32a2aee 100644 --- a/gpackages/apps/packages/views.py +++ b/gpackages/apps/packages/views.py @@ -3,7 +3,7 @@ from generic.views import ContextListView, ContextTemplat= eView, ContextView, \ MultipleFilterListViewMixin from models import CategoryModel, HerdsModel, MaintainerModel, \ RepositoryModel, LicenseGroupModel, EbuildModel, \ - PackageModel, UseFlagModel + PackageModel, UseFlagModel, PortageNewsModel =20 from django.shortcuts import get_object_or_404 from package_info.parse_cp import EbuildParseCPVR, PackageParseCPR @@ -147,3 +147,19 @@ class GlobalUseListView(ContextListView): template_name =3D 'global_use.html' context_object_name =3D 'uses' queryset =3D UseFlagModel.objects.exclude(description =3D '')=20 + +class NewsListView(ContextListView): + extra_context =3D {'page_name': 'News'} + template_name =3D 'portage_news.html' + context_object_name =3D 'news' + paginate_by =3D 20 + queryset =3D PortageNewsModel.objects.filter(lang =3D 'en'). \ + prefetch_related('authors', 'translators') + +class NewsDetailView(ContextView, DetailView): + extra_context =3D {'page_name': 'News Item'} + template_name =3D 'portage_news_item.html' + context_object_name =3D 'news_item' + slug_field =3D 'name' + queryset =3D PortageNewsModel.objects.filter(lang =3D 'en'). \ + prefetch_related('authors', 'translators') diff --git a/gpackages/templates/base.html b/gpackages/templates/base.htm= l index 172dd9d..8c8ccb6 100644 --- a/gpackages/templates/base.html +++ b/gpackages/templates/base.html @@ -24,22 +24,29 @@ .package-well { padding: 10px 10px 0px 10px; } - .package-name { border-radius: 6px 6px 6px 6px; padding: 8px 10px 8px 10px; margin: 0px 0px 10px 0px; background-color: #CCC; } - .nowrap { white-space: nowrap; } - .package_update_datetime { text-align: right; float: right; } + .metadata { + font-size: 11px; + color: grey; + } + .metadata span { + display: block; + } + .news_item { + padding-top: 15px; + } =20 </style> <link href=3D"{{ STATIC_URL }}css/bootstrap-responsive.css" rel=3D"s= tylesheet"> @@ -66,6 +73,7 @@ <ul class=3D"nav"> {% get_flatpages '/about/' as about_pages %} <li class=3D"{% active_str '/' %}"><a href=3D"/">Home</a><= /li> + {% active_link 'news' 'Portage News' %} {% for about in about_pages %}<li class=3D"{% active_str a= bout.url %}"><a href=3D"{{ about.url }}">{{ about.title }}</a></li>{% end= for %} <li><a href=3D"#contact">Contact</a></li> </ul> diff --git a/gpackages/templates/portage_news.html b/gpackages/templates/= portage_news.html new file mode 100644 index 0000000..ee0bfc2 --- /dev/null +++ b/gpackages/templates/portage_news.html @@ -0,0 +1,13 @@ +{% extends "base.html" %} +{% load url from future %} +{% load paginator %} + +{% block content %} + +{% for news_item in news %} + {% include 'portage_news_object.html' %} +{% endfor %} + +{% paginator page_obj 3 1 %} + +{% endblock content %} diff --git a/gpackages/templates/portage_news_item.html b/gpackages/templ= ates/portage_news_item.html new file mode 100644 index 0000000..9f4c711 --- /dev/null +++ b/gpackages/templates/portage_news_item.html @@ -0,0 +1,4 @@ +{% extends "base.html" %} +{% block content %} + {% include 'portage_news_object.html' %} +{% endblock content %} diff --git a/gpackages/templates/portage_news_object.html b/gpackages/tem= plates/portage_news_object.html new file mode 100644 index 0000000..fc03658 --- /dev/null +++ b/gpackages/templates/portage_news_object.html @@ -0,0 +1,22 @@ +{% load url from future %} +<div class=3D"news_item"> + <h2><a href=3D"{% url 'news_item' slug=3Dnews_item.name %}">{{ news_= item.title }}</a></h2> + <p>{{ news_item.message_as_html|safe }}</p> + <div class=3D"metadata" > + <span>Date: {{ news_item.date }}</span> + <span>Revision: {{ news_item.revision }}</span> + {% with authors=3Dnews_item.authors.all %} + <span> + {% if authors|length_is:"1" %} + Author: + {% else %} + Authors: + {% endif %} + {% for author in authors %} + <a href=3D"{% url 'packages' maintainer=3Dauthor.pk %}">= {{ author.name }}</a> + {% if not forloop.last %},{% endif %} + {% endfor %} + </span> + {% endwith %} + </div> +</div>