Skip to content

Commit

Permalink
Merge pull request #65 from liangliangyy/dev
Browse files Browse the repository at this point in the history
修改侧边栏功能,增加分页测试。  close #59
  • Loading branch information
liangliangyy committed Dec 16, 2017
2 parents d6346b3 + 3b61b80 commit a29290a
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 16 deletions.
9 changes: 7 additions & 2 deletions blog/admin.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.contrib import admin

# Register your models here.
from .models import Article, Category, Tag, Links
from .models import Article, Category, Tag, Links, SideBar
from pagedown.widgets import AdminPagedownWidget
from django import forms
from django.contrib.auth import get_user_model
Expand Down Expand Up @@ -64,8 +64,13 @@ class LinksAdmin(admin.ModelAdmin):
exclude = ('last_mod_time', 'created_time')


class SideBarAdmin(admin.ModelAdmin):
list_display = ('name', 'content', 'is_enable', 'sequence')
exclude = ('last_mod_time', 'created_time')


admin.site.register(Article, ArticlelAdmin)
# admin.site.register(BlogPage, ArticlelAdmin)
admin.site.register(Category, CategoryAdmin)
admin.site.register(Tag, TagAdmin)
admin.site.register(Links, LinksAdmin)
admin.site.register(SideBar, SideBarAdmin)
18 changes: 18 additions & 0 deletions blog/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,3 +211,21 @@ class Meta:

def __str__(self):
return self.name


class SideBar(models.Model):
"""侧边栏,可以展示一些html内容"""
name = models.CharField('标题', max_length=100)
content = models.TextField("内容")
sequence = models.IntegerField('排序', unique=True)
is_enable = models.BooleanField('是否启用', default=True)
created_time = models.DateTimeField('创建时间', default=now)
last_mod_time = models.DateTimeField('修改时间', default=now)

class Meta:
ordering = ['sequence']
verbose_name = '侧边栏'
verbose_name_plural = verbose_name

def __str__(self):
return self.name
6 changes: 4 additions & 2 deletions blog/templatetags/blog_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from django.utils.safestring import mark_safe
import random
from django.core.urlresolvers import reverse
from blog.models import Article, Category, Tag, Links
from blog.models import Article, Category, Tag, Links, SideBar
from django.utils.encoding import force_text
from django.shortcuts import get_object_or_404
import hashlib
Expand Down Expand Up @@ -125,6 +125,7 @@ def load_sidebar(user):
logger.info('load sidebar')
recent_articles = Article.objects.filter(status='p')[:settings.SIDEBAR_ARTICLE_COUNT]
sidebar_categorys = Category.objects.all()
extra_sidebars = SideBar.objects.filter(is_enable=True).order_by('sequence')
most_read_articles = Article.objects.filter(status='p').order_by('-views')[:settings.SIDEBAR_ARTICLE_COUNT]
dates = Article.objects.datetimes('created_time', 'month', order='DESC')
links = Links.objects.all()
Expand All @@ -150,7 +151,8 @@ def load_sidebar(user):
'sidebar_comments': commment_list,
'user': user,
'show_adsense': show_adsense,
'sidebar_tags': sidebar_tags
'sidebar_tags': sidebar_tags,
'extra_sidebars': extra_sidebars
}


Expand Down
54 changes: 42 additions & 12 deletions blog/tests.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django.test import Client, RequestFactory, TestCase
from blog.models import Article, Category, Tag
from blog.models import Article, Category, Tag, SideBar
from django.contrib.auth import get_user_model
from django.contrib.sites.models import Site
from blog.forms import BlogSearchForm
Expand Down Expand Up @@ -29,6 +29,13 @@ def test_validate_article(self):
response = self.client.get(user.get_absolute_url())
self.assertEqual(response.status_code, 200)

s = SideBar()
s.sequence = 1
s.name = 'test'
s.content = 'test content'
s.is_enable = True
s.save()

category = Category()
category.name = "category"
category.created_time = datetime.datetime.now()
Expand All @@ -53,6 +60,17 @@ def test_validate_article(self):
article.save()
self.assertEqual(1, article.tags.count())

for i in range(20):
article = Article()
article.title = "nicetitle" + str(i)
article.body = "nicetitle" + str(i)
article.author = user
article.category = category
article.type = 'a'
article.status = 'p'
article.save()
article.tags.add(tag)
article.save()
response = self.client.get(article.get_absolute_url())
self.assertEqual(response.status_code, 200)
from DjangoBlog.spider_notify import SpiderNotify
Expand All @@ -69,20 +87,16 @@ def test_validate_article(self):
self.assertIsNotNone(s)

p = Paginator(Article.objects.all(), 2)
s = load_pagination_info(p.page(1), '', '')
self.assertIsNotNone(s)
self.__check_pagination__(p, '', '')

p = Paginator(Tag.objects.all(), 2)
s = load_pagination_info(p.page(1), '分类标签归档', tag.slug)
self.assertIsNotNone(s)
p = Paginator(Article.objects.filter(tags=tag), 2)
self.__check_pagination__(p, '分类标签归档', tag.slug)

p = Paginator(BlogUser.objects.all(), 2)
s = load_pagination_info(p.page(1), '作者文章归档', 'liangliangyy')
self.assertIsNotNone(s)
p = Paginator(Article.objects.filter(author__username='liangliangyy'), 2)
self.__check_pagination__(p, '作者文章归档', 'liangliangyy')

p = Paginator(Category.objects.all(), 2)
s = load_pagination_info(p.page(1), '分类目录归档', category.slug)
self.assertIsNotNone(s)
p = Paginator(Article.objects.filter(category=category), 2)
self.__check_pagination__(p, '分类目录归档', category.slug)

f = BlogSearchForm()
f.search()
Expand All @@ -95,6 +109,21 @@ def test_validate_article(self):
u = gravatar_url('liangliangyy@gmail.com')
u = gravatar('liangliangyy@gmail.com')

def __check_pagination__(self, p, type, value):
s = load_pagination_info(p.page(1), type, value)
self.assertIsNotNone(s)
response = self.client.get(s['previous_url'])
self.assertEqual(response.status_code, 200)
response = self.client.get(s['next_url'])
self.assertEqual(response.status_code, 200)

s = load_pagination_info(p.page(2), type, value)
self.assertIsNotNone(s)
response = self.client.get(s['previous_url'])
self.assertEqual(response.status_code, 200)
response = self.client.get(s['next_url'])
self.assertEqual(response.status_code, 200)

def test_validate_feed(self):
user = BlogUser.objects.get_or_create(email="liangliangyy12@gmail.com", username="liangliangyy")[0]
user.set_password("liangliangyy")
Expand Down Expand Up @@ -124,6 +153,7 @@ def test_image(self):
self.assertEqual(rsp.status_code, 200)
SimpleUploadedFile()
"""

def test_errorpage(self):
self.client.get('/eee')
self.client.get('/refresh_memcache')
11 changes: 11 additions & 0 deletions templates/blog/tags/sidebar.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,17 @@
</div>
</form>
</aside>
{% if extra_sidebars %}
{% for sidebar in extra_sidebars %}

<aside class="widget_text widget widget_custom_html"><h3 class="widget-title">
{{ sidebar.name }}</h3>
<div class="textwidget custom-html-widget">
{{ sidebar.content }}
</div>
</aside>
{% endfor %}
{% endif %}
{% if most_read_articles %}

<aside id="views-4" class="widget widget_views"><h3 class="widget-title">Views</h3>
Expand Down

0 comments on commit a29290a

Please sign in to comment.