1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-21 18:32:37 +00:00

Modify pulic home and groups

This commit is contained in:
xiez 2012-09-21 19:57:11 +08:00
parent bde9b0fc3b
commit 25e18f7413
4 changed files with 54 additions and 91 deletions

View File

@ -8,7 +8,7 @@
</li> </li>
{% if not request.cloud_mode %} {% if not request.cloud_mode %}
<li> <li>
<a href="{% url 'public_home' %}" {% block nav_publichome_class %}{% endblock %}>公共页面</a> <a href="{% url 'public_home' %}" {% block nav_publichome_class %}{% endblock %}>公共资料</a>
</li> </li>
{% endif %} {% endif %}
{% if business_mode %} {% if business_mode %}
@ -20,7 +20,7 @@
</li> </li>
{% else %} {% else %}
<li> <li>
<a href="{{ SITE_ROOT }}groups/" {% block nav_group_class %}{% endblock %}>小组</a> <a href="{{ SITE_ROOT }}groups/" {% block nav_group_class %}{% endblock %}>协作小组</a>
</li> </li>
{% endif %} {% endif %}
<li> <li>

View File

@ -56,52 +56,6 @@
{% endfor %} {% endfor %}
</table> </table>
{% endif %} {% endif %}
<!-- 信息栏 -->
<div id="group-reply">
<h3>信息栏</h3>
<form id="innerpub-msg-form" action="" method="post">
<textarea name="message" id="message">{{ form.data.message }}</textarea><br />
{% for error in form.message.errors %}
<p class="error">{{ error|escape }}</p>
{% endfor %}
<input type="submit" value="提交" class="submit" />
</form>
</div>
{% if innerpub_msgs %}
<ul class="msg-list">
{% for msg in innerpub_msgs %}
<li class="msg w100 ovhd">
<div class="pic fleft">
<a href="{{ SITE_ROOT }}profile/{{ msg.from_email }}/">{% avatar msg.from_email 48 %}</a>
</div>
<div class="txt fright">
<div class="msg-hd">
<span class="time">{{ msg.timestamp|translate_commit_time }}</span>
<a href="{{ SITE_ROOT }}profile/{{ msg.from_email }}/" title="{{ msg.from_email }}">{{ msg.from_email|email2nickname }}</a>
</div>
<div class="msg-bd">
<p>
{{ msg.message|seahub_urlize|find_at|linebreaksbr }}
</p>
<button class="reply op" data="{% url 'innerpub_msg_reply' msg.id %}"><span class="reply-cnt">{% if msg.reply_cnt != 0 %}{{ msg.reply_cnt }} {% endif %}</span>回复</button>
<button class="replyclose op hide">收起回复</button>
<div class="reply-bd"></div>
</div>
</div>
</li>
{% endfor %}
</ul>
{% endif %}
<div id="paginator">
{% if current_page != 1 %}
<a href="{{ SITE_ROOT }}group/{{ group.id}}/?page={{ prev_page }}&per_page={{ per_page }}">上一页</a>
{% endif %}
{% if page_next %}
<a href="{{ SITE_ROOT }}group/{{ group.id }}/?page={{ next_page }}&per_page={{ per_page }}">下一页</a>
{% endif %}
</div>
<!-- /信息栏 -->
</div> </div>
<!-- /.main --> <!-- /.main -->
{% include "snippets/repo_share_form.html" %} {% include "snippets/repo_share_form.html" %}
@ -118,7 +72,5 @@
{% with post_url=repo_create_url %} {% with post_url=repo_create_url %}
{% include "snippets/repo_create_js.html" %} {% include "snippets/repo_create_js.html" %}
{% endwith %} {% endwith %}
{% include 'group/msg_reply_js.html' %}
</script> </script>
{% endblock %} {% endblock %}

15
urls.py
View File

@ -27,7 +27,6 @@ urlpatterns = patterns('',
(r'^$', root), (r'^$', root),
#url(r'^home/$', direct_to_template, { 'template': 'home.html' } ), #url(r'^home/$', direct_to_template, { 'template': 'home.html' } ),
url(r'^home/my/$', myhome, name='myhome'), url(r'^home/my/$', myhome, name='myhome'),
url(r'^home/public/$', public_home, name='public_home'),
url(r'^home/public/reply/(?P<msg_id>[\d]+)/$', innerpub_msg_reply, name='innerpub_msg_reply'), url(r'^home/public/reply/(?P<msg_id>[\d]+)/$', innerpub_msg_reply, name='innerpub_msg_reply'),
url(r'^home/public/reply/new/$', innerpub_msg_reply_new, name='innerpub_msg_reply_new'), url(r'^home/public/reply/new/$', innerpub_msg_reply_new, name='innerpub_msg_reply_new'),
url(r'^home/owner/(?P<owner_name>[^/]+)/$', ownerhome, name='ownerhome'), url(r'^home/owner/(?P<owner_name>[^/]+)/$', ownerhome, name='ownerhome'),
@ -92,7 +91,6 @@ urlpatterns = patterns('',
url(r'^groups/', GroupListView.as_view(), name='group_list'), url(r'^groups/', GroupListView.as_view(), name='group_list'),
url(r'^deptgroups/', DeptGroupListView.as_view(), name='dept_group_list'), url(r'^deptgroups/', DeptGroupListView.as_view(), name='dept_group_list'),
url(r'^projgroups/', ProjGroupListView.as_view(), name='proj_group_list'), url(r'^projgroups/', ProjGroupListView.as_view(), name='proj_group_list'),
(r'^organizations/', include('seahub.organizations.urls')),
(r'^profile/', include('seahub.profile.urls')), (r'^profile/', include('seahub.profile.urls')),
### SeaHub admin ### ### SeaHub admin ###
@ -109,3 +107,16 @@ if settings.DEBUG:
(r'^%s/(?P<path>.*)$' % (media_url), 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), (r'^%s/(?P<path>.*)$' % (media_url), 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
) )
try:
from settings import CLOUD_MODE
except ImportError:
CLOUD_MODE = False
if CLOUD_MODE:
urlpatterns += patterns('',
(r'^organizations/', include('seahub.organizations.urls')),
)
else:
urlpatterns += patterns('',
url(r'^home/public/$', public_home, name='public_home'),
)

View File

@ -763,58 +763,58 @@ def public_home(request):
""" """
Show public home page when CLOUD_MODE is False. Show public home page when CLOUD_MODE is False.
""" """
if request.method == 'POST': # if request.method == 'POST':
form = MessageForm(request.POST) # form = MessageForm(request.POST)
if form.is_valid(): # if form.is_valid():
msg = InnerPubMsg() # msg = InnerPubMsg()
msg.from_email = request.user.username # msg.from_email = request.user.username
msg.message = form.cleaned_data['message'] # msg.message = form.cleaned_data['message']
msg.save() # msg.save()
return HttpResponseRedirect(reverse('public_home')) # return HttpResponseRedirect(reverse('public_home'))
else: # else:
form = MessageForm() # form = MessageForm()
users = get_emailusers(-1, -1) users = get_emailusers(-1, -1)
public_repos = list_inner_pub_repos() public_repos = list_inner_pub_repos()
"""inner pub messages""" # """inner pub messages"""
# Make sure page request is an int. If not, deliver first page. # # Make sure page request is an int. If not, deliver first page.
try: # try:
current_page = int(request.GET.get('page', '1')) # current_page = int(request.GET.get('page', '1'))
per_page= int(request.GET.get('per_page', '15')) # per_page= int(request.GET.get('per_page', '15'))
except ValueError: # except ValueError:
current_page = 1 # current_page = 1
per_page = 15 # per_page = 15
msgs_plus_one = InnerPubMsg.objects.all()[per_page*(current_page-1) : # msgs_plus_one = InnerPubMsg.objects.all()[per_page*(current_page-1) :
per_page*current_page+1] # per_page*current_page+1]
if len(msgs_plus_one) == per_page + 1: # if len(msgs_plus_one) == per_page + 1:
page_next = True # page_next = True
else: # else:
page_next = False # page_next = False
innerpub_msgs = msgs_plus_one[:per_page] # innerpub_msgs = msgs_plus_one[:per_page]
msg_replies = InnerPubMsgReply.objects.filter(reply_to__in=innerpub_msgs) # msg_replies = InnerPubMsgReply.objects.filter(reply_to__in=innerpub_msgs)
reply_to_list = [ r.reply_to_id for r in msg_replies ] # reply_to_list = [ r.reply_to_id for r in msg_replies ]
for msg in innerpub_msgs: # for msg in innerpub_msgs:
msg.reply_cnt = reply_to_list.count(msg.id) # msg.reply_cnt = reply_to_list.count(msg.id)
# remove user notifications # # remove user notifications
UserNotification.objects.filter(to_user=request.user.username, # UserNotification.objects.filter(to_user=request.user.username,
msg_type='innerpub_msg').delete() # msg_type='innerpub_msg').delete()
return render_to_response('public_home.html', { return render_to_response('public_home.html', {
'users': users, 'users': users,
'public_repos': public_repos, 'public_repos': public_repos,
'form': form, # 'form': form,
'innerpub_msgs': innerpub_msgs, # 'innerpub_msgs': innerpub_msgs,
'current_page': current_page, # 'current_page': current_page,
'prev_page': current_page-1, # 'prev_page': current_page-1,
'next_page': current_page+1, # 'next_page': current_page+1,
'per_page': per_page, # 'per_page': per_page,
'page_next': page_next, # 'page_next': page_next,
}, context_instance=RequestContext(request)) }, context_instance=RequestContext(request))
@login_required @login_required