From: "Slava Bacherikov" <slava@bacherikov.org.ua>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/templates/
Date: Wed, 4 Jul 2012 22:13:18 +0000 (UTC) [thread overview]
Message-ID: <1341409832.1cf4caecb751b6d7990e60c0e5382642e73e93ee.bacher09@gentoo> (raw)
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=proj/gentoo-packages.git;a=commit;h=1cf4caec
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
def simple_markup(value):
- temp = urlize(value,trim_url_limit = 57, autoescape=True) # maybe nofollow
+ temp = urlize(value,trim_url_limit = 70, autoescape=True) # maybe nofollow
return linebreaks(temp)
class AbstractDateTimeModel(models.Model):
@@ -47,6 +47,10 @@ class PortageNewsModel(AbstractDateTimeModel):
objects = managers.PortageNewsManager()
+ @models.permalink
+ def get_absolute_url(self):
+ return ('news_item',(), {'pk': self.pk})
+
def init_by_news(self, news):
self.date = news.date
self.name = news.name
diff --git a/gpackages/apps/packages/urls.py b/gpackages/apps/packages/urls.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 , EbuildsListView, \
PackagesListsView, PackageDetailView, EbuildDetailView, \
- GlobalUseListView
+ GlobalUseListView, NewsListView, NewsDetailView
urlpatterns = patterns('',
url(r'^categories/$', CategoriesListView.as_view(), name = 'categories'),
@@ -16,8 +16,10 @@ urlpatterns = patterns('',
url(r'^ebuild/(?P<cpvr>[^/]+/[^/]+)/$', EbuildDetailView.as_view(), name = 'ebuild'),
url(r'^packages/{0}$'.format(PackagesListsView.get_url_part()), PackagesListsView.as_view(), name = 'packages'),
- # In Future I will write my onw URL Resolver !!!
#url(r'^package/(?:(?P<pk>\d+)|(?P<category>[^/]+)/(?P<name>[^/]+))/$', PackageDetailView.as_view(), name = 'package'),
url(r'^package/(?P<pk>\d+)/$', PackageDetailView.as_view(), name = 'package'),
url(r'^package/(?P<cpr>[^/]+/[^/]+)/$', PackageDetailView.as_view(), name = 'package'),
+ url(r'^news/$', NewsListView.as_view(), name = 'news'),
+ url(r'^news/(?P<pk>\d+)/$', NewsDetailView.as_view(), name = 'news_item'),
+ url(r'^news/(?P<slug>[^/]+)/$', NewsDetailView.as_view(), name = 'news_item'),
)
diff --git a/gpackages/apps/packages/views.py b/gpackages/apps/packages/views.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, ContextTemplateView, ContextView, \
MultipleFilterListViewMixin
from models import CategoryModel, HerdsModel, MaintainerModel, \
RepositoryModel, LicenseGroupModel, EbuildModel, \
- PackageModel, UseFlagModel
+ PackageModel, UseFlagModel, PortageNewsModel
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 = 'global_use.html'
context_object_name = 'uses'
queryset = UseFlagModel.objects.exclude(description = '')
+
+class NewsListView(ContextListView):
+ extra_context = {'page_name': 'News'}
+ template_name = 'portage_news.html'
+ context_object_name = 'news'
+ paginate_by = 20
+ queryset = PortageNewsModel.objects.filter(lang = 'en'). \
+ prefetch_related('authors', 'translators')
+
+class NewsDetailView(ContextView, DetailView):
+ extra_context = {'page_name': 'News Item'}
+ template_name = 'portage_news_item.html'
+ context_object_name = 'news_item'
+ slug_field = 'name'
+ queryset = PortageNewsModel.objects.filter(lang = 'en'). \
+ prefetch_related('authors', 'translators')
diff --git a/gpackages/templates/base.html b/gpackages/templates/base.html
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;
+ }
</style>
<link href="{{ STATIC_URL }}css/bootstrap-responsive.css" rel="stylesheet">
@@ -66,6 +73,7 @@
<ul class="nav">
{% get_flatpages '/about/' as about_pages %}
<li class="{% active_str '/' %}"><a href="/">Home</a></li>
+ {% active_link 'news' 'Portage News' %}
{% for about in about_pages %}<li class="{% active_str about.url %}"><a href="{{ about.url }}">{{ about.title }}</a></li>{% endfor %}
<li><a href="#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/templates/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/templates/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="news_item">
+ <h2><a href="{% url 'news_item' slug=news_item.name %}">{{ news_item.title }}</a></h2>
+ <p>{{ news_item.message_as_html|safe }}</p>
+ <div class="metadata" >
+ <span>Date: {{ news_item.date }}</span>
+ <span>Revision: {{ news_item.revision }}</span>
+ {% with authors=news_item.authors.all %}
+ <span>
+ {% if authors|length_is:"1" %}
+ Author:
+ {% else %}
+ Authors:
+ {% endif %}
+ {% for author in authors %}
+ <a href="{% url 'packages' maintainer=author.pk %}">{{ author.name }}</a>
+ {% if not forloop.last %},{% endif %}
+ {% endfor %}
+ </span>
+ {% endwith %}
+ </div>
+</div>
next reply other threads:[~2012-07-04 22:13 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-04 22:13 Slava Bacherikov [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-08-20 13:03 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/templates/ Slava Bacherikov
2012-07-19 23:50 Slava Bacherikov
2012-07-19 23:50 Slava Bacherikov
2012-07-12 22:16 Slava Bacherikov
2012-07-12 22:16 Slava Bacherikov
2012-07-10 23:13 Slava Bacherikov
2012-07-08 19:54 Slava Bacherikov
2012-07-08 19:54 Slava Bacherikov
2012-07-08 19:54 Slava Bacherikov
2012-07-06 23:09 Slava Bacherikov
2012-07-06 23:09 Slava Bacherikov
2012-07-02 22:25 Slava Bacherikov
2012-06-30 21:02 Slava Bacherikov
2012-06-30 21:02 Slava Bacherikov
2012-06-30 0:22 Slava Bacherikov
2012-06-29 19:25 Slava Bacherikov
2012-06-28 23:59 Slava Bacherikov
2012-06-27 22:52 Slava Bacherikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1341409832.1cf4caecb751b6d7990e60c0e5382642e73e93ee.bacher09@gentoo \
--to=slava@bacherikov.org.ua \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox