diff --git a/apps/blogs/templates/blogs/index.html b/apps/blogs/templates/blogs/index.html index 7c91f8838..175adb2d1 100644 --- a/apps/blogs/templates/blogs/index.html +++ b/apps/blogs/templates/blogs/index.html @@ -1,5 +1,5 @@ {% extends "base.html" %} -{% load boxes %} +{% load boxes cms %} {% block page_title %}Our Blogs | {{ SITE_INFO.site_name }}{% endblock %} {% block og_title %}Our Blogs{% endblock %} @@ -27,14 +27,9 @@

{{ latest_entry.title }}

Latest News

-

More

-
@@ -44,6 +39,16 @@

{{ entry.title }}

{% box 'blogs-subscriptions' %}
+
+

News Sources

+ +
+ diff --git a/apps/blogs/tests/test_views.py b/apps/blogs/tests/test_views.py index e4f8949f7..d175da297 100644 --- a/apps/blogs/tests/test_views.py +++ b/apps/blogs/tests/test_views.py @@ -1,3 +1,5 @@ +import datetime as dt + from django.core.management import call_command from django.test import TestCase from django.urls import reverse @@ -5,6 +7,7 @@ from apps.blogs.models import BlogEntry, Feed from apps.blogs.tests.utils import get_test_rss_path +from apps.blogs.views import ENTRY_LIST_LIMIT class BlogViewTest(TestCase): @@ -38,3 +41,38 @@ def test_blog_home_escapes_excerpt(self): resp = self.client.get(reverse("blog")) self.assertNotContains(resp, "Copyright\r\n

Python Insider by the Python Core Developers is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Based on a work at blog.python.org.

", + "content": "

Copyright

\r\n

Python Insider by the Python core team is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Based on a work at blog.python.org.

", "content_markup_type": "html", - "_content_rendered": "

Copyright

\r\n

Python Insider by the Python Core Developers is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Based on a work at blog.python.org.

" + "_content_rendered": "

Copyright

\r\n

Python Insider by the Python core team is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Based on a work at blog.python.org.

" } }, { diff --git a/fixtures/sitetree_menus.json b/fixtures/sitetree_menus.json index 99fc1af6b..3bdd96eef 100644 --- a/fixtures/sitetree_menus.json +++ b/fixtures/sitetree_menus.json @@ -1189,7 +1189,7 @@ "fields": { "title": "PSF Blog", "hint": "", - "url": "http://pyfound.blogspot.com/", + "url": "https://pyfound.blogspot.com/", "urlaspattern": false, "tree": 1, "hidden": false, @@ -2076,13 +2076,13 @@ "pk": 96, "fields": { "title": "Python News", - "hint": "Python Insider Blog Posts", + "hint": "Python news and blog posts", "url": "blog", "urlaspattern": true, "tree": 1, "hidden": false, "alias": null, - "description": "Python Insider is the blog used by the Python Core Developers to announce news related to the Python programming language.", + "description": "News about the Python programming language, including posts from Python Insider, the blog of the Python core team.", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, @@ -2095,13 +2095,37 @@ "access_permissions": [] } }, +{ + "model": "sitetree.treeitem", + "pk": 126, + "fields": { + "title": "Python Insider", + "hint": "News and updates from the Python core team", + "url": "https://blog.python.org/", + "urlaspattern": false, + "tree": 1, + "hidden": false, + "alias": null, + "description": "Python Insider carries news and updates from the Python core team.", + "inmenu": true, + "inbreadcrumbs": true, + "insitetree": true, + "access_loggedin": false, + "access_guest": false, + "access_restricted": false, + "access_perm_type": 1, + "parent": 12, + "sort_order": 97, + "access_permissions": [] + } +}, { "model": "sitetree.treeitem", "pk": 97, "fields": { "title": "PSF News", "hint": "PSF Blog", - "url": "http://pyfound.blogspot.com/", + "url": "https://pyfound.blogspot.com/", "urlaspattern": false, "tree": 1, "hidden": false, @@ -2115,7 +2139,7 @@ "access_restricted": false, "access_perm_type": 1, "parent": 12, - "sort_order": 98, + "sort_order": 99, "access_permissions": [] } }, @@ -2125,7 +2149,7 @@ "fields": { "title": "Community News", "hint": "Planet Python", - "url": "http://planetpython.org/", + "url": "https://planetpython.org/", "urlaspattern": false, "tree": 1, "hidden": false, @@ -2139,7 +2163,7 @@ "access_restricted": false, "access_perm_type": 1, "parent": 12, - "sort_order": 97, + "sort_order": 98, "access_permissions": [] } }, @@ -2149,7 +2173,7 @@ "fields": { "title": "PyCon News", "hint": "PyCon Blog", - "url": "http://pycon.blogspot.com/", + "url": "https://pycon.blogspot.com/", "urlaspattern": false, "tree": 1, "hidden": false, @@ -2163,7 +2187,7 @@ "access_restricted": false, "access_perm_type": 1, "parent": 12, - "sort_order": 99, + "sort_order": 100, "access_permissions": [] } }, @@ -2389,7 +2413,7 @@ "fields": { "title": "Self-certify as voting member", "hint": "", - "url": "http://pyfound.blogspot.de/2015/02/enroll-as-psf-voting-member.html", + "url": "https://pyfound.blogspot.com/2015/02/enroll-as-psf-voting-member.html", "urlaspattern": false, "tree": 1, "hidden": false, @@ -2509,7 +2533,7 @@ "fields": { "title": "Python Brochure", "hint": "", - "url": "http://brochure.getpython.info/", + "url": "https://brochure.getpython.info/", "urlaspattern": false, "tree": 1, "hidden": false, diff --git a/static/css/style.css b/static/css/style.css index 7ba2bf0f5..c1b5a1633 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -2287,8 +2287,9 @@ p.quote-by-organization { .latest-blog-post .readmore:hover, .latest-blog-post .readmore:focus, .featured-event .readmore:hover, .featured-event .readmore:focus { color: white; } -.most-recent-posts li time { - position: relative; } +.most-recent-posts li > a { + font-size: 1.125em; + line-height: 1.4em; } /* ! ===== Events landing page ===== */ /*h3*/ diff --git a/templates/components/blog-posts.html b/templates/components/blog-posts.html index 6cdd3bc66..a875aaf7a 100644 --- a/templates/components/blog-posts.html +++ b/templates/components/blog-posts.html @@ -2,7 +2,7 @@

Latest News

-

More

+

More news