Skip to content

Commit

Permalink
update tab
Browse files Browse the repository at this point in the history
  • Loading branch information
gothack329 committed Mar 1, 2018
1 parent 257fda1 commit 7506c4b
Show file tree
Hide file tree
Showing 19 changed files with 155 additions and 35 deletions.
Binary file modified article/__pycache__/models.cpython-36.pyc
Binary file not shown.
18 changes: 18 additions & 0 deletions article/migrations/0015_article_comment_count.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 2.0.2 on 2018-03-01 03:50

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('article', '0014_auto_20180228_1552'),
]

operations = [
migrations.AddField(
model_name='article',
name='comment_count',
field=models.IntegerField(default=0),
),
]
18 changes: 18 additions & 0 deletions article/migrations/0016_comment_invalid.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 2.0.2 on 2018-03-01 06:00

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('article', '0015_article_comment_count'),
]

operations = [
migrations.AddField(
model_name='comment',
name='invalid',
field=models.CharField(choices=[('Y', '是'), ('N', '否')], default='N', max_length=64),
),
]
Binary file not shown.
Binary file not shown.
17 changes: 15 additions & 2 deletions article/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
from django.contrib.auth.models import User
from django.forms import *
from userpage.models import *
from django.db.models.signals import post_save
from django.dispatch import receiver
#from django.conf import settings
#from tagging.fields import TagField
#from tagging.models import Tag
Expand Down Expand Up @@ -35,7 +37,8 @@ class Article(models.Model):
tag = models.CharField(max_length=128, blank=True, null=True)
visible = models.CharField(choices=(('Y','是'),('N','否')),max_length=64,default='N')
readtime = models.IntegerField(default=0)
#comment_count = models.IntegerField(default=0)
comment_count = models.IntegerField(default=0)
#update_time = models.DateTimeField(auto_now=True,blank=True,null=True)

#def set_tags(self, tags):
# Tag.objects.update_tags(self, tags)
Expand All @@ -48,6 +51,7 @@ class Meta:
db_table ="article"
ordering = ['-publish_time']


class ArticleForm(ModelForm):
class Meta:
model = Article
Expand Down Expand Up @@ -76,6 +80,7 @@ class Comment(models.Model):
user = models.ForeignKey(Profile,on_delete=models.CASCADE,default=0)
comment_time = models.DateTimeField(auto_now_add=True,editable=False)
comment = HTMLField()
invalid = models.CharField(choices=(('Y','是'),('N','否')),max_length=64,default='N')
ip = models.GenericIPAddressField(blank=True,null=True,default='0.0.0.0')
clickcount = models.IntegerField(default=0)
refer = models.CharField(max_length=5096,default='none')
Expand All @@ -91,7 +96,15 @@ class Meta:
class CommentForm(ModelForm):
class Meta:
model = Comment
fields = ('article','user','comment','ip')
fields = ('article','user','comment','ip','invalid')
widgets = {
'comment':TinyMCE(attrs={'cols':'100%','rows':10}),
}


@receiver(post_save, sender=Comment)
def comment_count(sender, created, instance, **kwargs):
if created:
art = Article.objects.get(pk=instance.article.id)
art.comment_count += 1
art.save()
15 changes: 10 additions & 5 deletions article/templates/article/detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,16 @@ <h1>{% if art %}{{art.title}}{% endif %} </h1>

<div class="card">
<p>评论</p>
<span class="sep"></span>

{% for i in comments %}
<div class="comment row">
<div class="comment row {% ifequal i.invalid 'Y' %}invalid{% endifequal %}">
<div class="comment-avatar" style="background:url(/{{i.user.avatar}}) no-repeat;background-position:10px 20px;background-size:60px 60px;">
<a href="/userpage/member/{{i.user}}/">{{i.user}}</a>
</div>
<div class="comment-info">
<div class="comment-info ">

<span class="glyphicon glyphicon-time fad"> </span>&nbsp;<span class="fad">{{i.comment_time}}</span> &nbsp;&nbsp;
{% ifequal request.user.id art.author_id.id %}
{% ifequal request.user.id i.user.id %}
<span class="ico fad" style="padding:2px;border:1px solid gray">作者</span>
{% endifequal %}
<span class="pull-right ico fad floor" id="comment_{{i.id}}"># {{forloop.counter}}</span>
Expand All @@ -72,10 +72,15 @@ <h1>{% if art %}{{art.title}}{% endif %} </h1>
</span>

<p></p>
{% ifequal i.invalid 'Y' %}
<p style="font-style:italic;">“此评论违规”</p>
{% else %}
{{i.comment|safe|escape}}
{% endifequal %}

</div>
</div>
<span class="sep"></span>

{% endfor %}
</div>

Expand Down
Empty file.
Binary file not shown.
Binary file added article/templatetags/__pycache__/upto.cpython-36.pyc
Binary file not shown.
10 changes: 10 additions & 0 deletions article/templatetags/upto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from django import template
from django.template.defaultfilters import stringfilter

register = template.Library()

@register.filter
@stringfilter
def upto(value, delimiter=None):
return value.split(delimiter)[0]
upto.is_safe = True
Binary file modified db.sqlite3
Binary file not shown.
12 changes: 10 additions & 2 deletions static/bootstrap/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,10 @@ div.container-fluid {
padding-bottom:30px;
}

.card .comment {
border-top:1px solid #e2e2e2;
}

.card .comment div {
display: inline-block;
margin:10px;
Expand Down Expand Up @@ -194,9 +198,13 @@ span.floor {
margin:auto;
}

.invalid {
background-color: #eee;
}



.profile-tab {
display:none;
}



Expand Down
2 changes: 2 additions & 0 deletions templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ <h1>{% if title %}{{title}}{% endif %} </h1>
&nbsp;&nbsp;&nbsp;
<span class="glyphicon glyphicon-th-list fad"> </span>&nbsp;<a href="/?catalog={{i.section}}"><span class="fad">{{i.section}}</span></a>
&nbsp;&nbsp;&nbsp;
<span class="glyphicon glyphicon-eye-open fad"> </span>&nbsp;<span class="fad">{{i.readtime}}</span>
&nbsp;&nbsp;&nbsp;
<span class="glyphicon glyphicon-tag fad"> </span>&nbsp;<span class=" fad">{{i.tag}}</span>
<span class="pull-right">
<span><a href="/article/{{i.id}}/">阅读全文</a></span>
Expand Down
Binary file modified userpage/__pycache__/models.cpython-36.pyc
Binary file not shown.
Binary file modified userpage/__pycache__/views.cpython-36.pyc
Binary file not shown.
9 changes: 5 additions & 4 deletions userpage/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,12 @@ def save_user_profile(sender, instance, **kwargs):
class UserForm(ModelForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email')
fields = ('username','first_name', 'last_name', 'email')
widgets = {
'email':TextInput(attrs={'class':'form-control','placeholder':"E-mail"}),
'first_name':TextInput(attrs={'class':'form-control','placeholder':"First Name"}),
'last_name':TextInput(attrs={'class':'form-control','placeholder':"Last Name"}),
'username':TextInput(attrs={'class':'form-control','placeholder':"Username"}),
'email':TextInput(attrs={'class':'form-control','placeholder':"E-mail"}),
'first_name':TextInput(attrs={'class':'form-control','placeholder':"First Name"}),
'last_name':TextInput(attrs={'class':'form-control','placeholder':"Last Name"}),
}

class ProfileForm(ModelForm):
Expand Down
85 changes: 64 additions & 21 deletions userpage/templates/userpage/profile.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
{% extends "base.html"%}

{% load upto %}
{% block header %}
<title>[ {{request.user}} ]用户详情 - 物志</title>
<script type="text/javascript">
$(function(){
$(".detail-tab").find(".profile-tab:first").show();
$("#tab-nav li").on("mouseover",function(){
var index=$(this).index();
$(this).parent().next().find(".profile-tab").hide().eq(index).show();
$(this).addClass("active").siblings().removeClass("active");
})
})
</script>
{% endblock %}

{% block banner %}
Expand Down Expand Up @@ -41,43 +51,76 @@
</div>

<div class="card">
<ul class="nav nav-tabs">
<li role="presentation" class="active"><a href="/article/{{member.username}}/" target="subpage">文章列表<span class="badge">{{arts|length}}</span></a></li>
<li role="presentation"><a href="/article/comment/{{member.username}}/" target="subpage">评论列表<span class="badge">{{comments|length}}</span></a></li>
<ul class="nav nav-tabs" id="tab-nav">
<li role="presentation" >
<a href="javascript:;">文章列表<span class="badge">{{arts|length}}</span></a>
</li>
<li role="presentation" >
<a href="javascript:;">评论列表<span class="badge">{{comments|length}}</span></a>
</li>
{% ifequal member.id user.id %}
<li role="presentation"><a href="/userpage/update/" taget="subpage">编辑资料</a></li>
<li role="presentation" >
<a href="javascript:;">消息提醒</a>
</li>
<li role="presentation" >
<a href="javascript:;">编辑资料</a>
</li>
{% endifequal %}
</ul>

{% for i in arts %}
<div class="preview row" id="member_arts" style="padding:0px 10px 0 10px">
<div class="detail-tab">
<div class="profile-tab" >
{% for i in arts %}
<div class="preview row member_arts" style="padding:10px 10px 10px 10px;border-bottom: 1px solid #e2e2e2">
<div class="preview-info">
<a href="/article/{{i.id}}/"><h3>{{i.title}}</h3></a>
<a href="/article/{{i.id}}/"><h4>{{i.title}}</h4></a>
<p class="fad">{{i.detail|striptags|truncatechars:500|safe}} </p>
<p></p>
<span class="glyphicon glyphicon-time fad"> </span>&nbsp;<span class="fad">{{i.publish_time}}</span>
<span class="glyphicon glyphicon-time fad"> </span>&nbsp;<span class="fad">{{i.publish_time|timesince}}前</span>
&nbsp;&nbsp;&nbsp;
<span class="glyphicon glyphicon-user fad"> </span>&nbsp;<span class="fad">{{i.author}}</span>
&nbsp;&nbsp;&nbsp;
<span class="glyphicon glyphicon-th-list fad"> </span>&nbsp;<a href="/?catalog={{i.section}}"><span class="fad">{{i.section}}</span></a>
&nbsp;&nbsp;&nbsp;
<span class="glyphicon glyphicon-eye-open fad"> </span>&nbsp;<span class="fad">{{i.readtime}}</span>
&nbsp;&nbsp;&nbsp;
<span class="glyphicon glyphicon-tag fad"> </span>&nbsp;<span class=" fad">{{i.tag}}</span>
<span class="pull-right">
<span><a href="/article/{{i.id}}/" target="__blank">查看全文</a></span>
</span>
</div>
</div>
<span class="sep" style="padding-bottom:0"></span>
{% endfor %}

{% for i in comments %}
<div class="row" id="member_comments" style="padding-left:20px">
<p>于 {{i.comment_time}} 评论了 <a href="/userpage/member/{{i.article.author_id}}/">{{i.article.author_id}} </a>的文章【 <a href="/article/{{i.article.id}}/">{{i.article}}</a>
<p><a href="/article/{{i.article.id}}/#comment_{{i.id}}">{{i.comment|safe|escape}}</p>
</div>
<span class="sep"></span>
{% endfor %}

{% endfor %}
</div>

<div class="profile-tab" >
<p></p>
{% for i in comments %}
<div class="row member_comments" style="padding:10px 20px 10px 20px;border-bottom: 1px solid #e2e2e2">
<p style="background-color: #eee">于 {{i.comment_time}}前 评论了 <a href="/userpage/member/{{i.article.author_id}}/">{{i.article.author_id}} </a>的文章【 <a href="/article/{{i.article.id}}/">{{i.article}}</a></p>
<p><a href="/article/{{i.article.id}}/#comment_{{i.id}}">{{i.comment|safe|escape}}</a></p>
</div>

{% endfor %}
</div>

{% ifequal member.id user.id %}
<div class="profile-tab" >
{# 消息提醒 #}
<div class="row member_comments" style="padding-left:20px">
<p>于 {{i.comment_time|timesince}} 评论了 <a href="/userpage/member/{{i.article.author_id}}/">{{i.article.author_id}} </a>的文章【 <a href="/article/{{i.article.id}}/">{{i.article}}</a>
<p><a href="/article/{{i.article.id}}/#comment_{{i.id}}">{{i.comment|safe|escape}}</p>
</div>
</div>

<div class="profile-tab" >
{# 编辑资料 #}
<div class="row member_comments" style="padding-left:20px">
<p>于 {{i.comment_time}} 评论了 <a href="/userpage/member/{{i.article.author_id}}/">{{i.article.author_id}} </a>的文章【 <a href="/article/{{i.article.id}}/">{{i.article}}</a>
<p><a href="/article/{{i.article.id}}/#comment_{{i.id}}">{{i.comment|safe|escape}}</p>
</div>
</div>
{% endifequal %}
</div>
</div>

{% endblock %}
4 changes: 3 additions & 1 deletion userpage/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@

# Create your views here.

@login_required
@transaction.atomic
def profile(request, username):
inst_user = User.objects.get(username=username)
inst_profile = Profile.objects.get(user=inst_user)

arts = Article.objects.filter(author_id=inst_profile)
comments = Comment.objects.filter(user=inst_profile)
comments = Comment.objects.filter(user=inst_profile).filter(invalid='N')
return render(request, 'userpage/profile.html', {'member':inst_user,'arts':arts,'comments':comments})


Expand Down

0 comments on commit 7506c4b

Please sign in to comment.