Mercurial > hg > savane-forge
changeset 343:c1d7767e3abf
Import news and display site homepage news
author | Sylvain Beucler <beuc@beuc.net> |
---|---|
date | Sat, 28 Aug 2010 23:26:51 +0200 |
parents | a13981e03bf4 |
children | 32d0e87d3fd5 |
files | migrate_old_savane.sql savane/svmain/views.py savane/svnews/models.py templates/svmain/homepage.html |
diffstat | 4 files changed, 67 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/migrate_old_savane.sql +++ b/migrate_old_savane.sql @@ -696,3 +696,39 @@ -- TODO: import 'support' -- TODO: import 'task' + +---- +-- NEWS +---- + +TRUNCATE svnews_news; +INSERT INTO svnews_news + (id, group_id, submitted_by_id, is_approved, date, date_last_edit, summary, details) + SELECT forum_id, group_id, submitted_by, is_approved, + FROM_UNIXTIME(date), FROM_UNIXTIME(date_last_edit), summary, details + FROM savane_old.news_bytes + WHERE id<>100; + +TRUNCATE svnews_comment; +INSERT INTO svnews_comment + (id, news_id, posted_by_id, subject, body, date, is_followup_to_id, thread_id) + SELECT msg_id, group_forum_id, posted_by, subject, body, FROM_UNIXTIME(date), is_followup_to, thread_id + FROM savane_old.forum; + +TRUNCATE svnews_notification; +INSERT INTO svnews_notification + (news_id, user_id) + SELECT forum_id, user_id + FROM savane_old.forum_monitored_forums; + +TRUNCATE svnews_lastvisit; +INSERT INTO svnews_lastvisit + (news_id, user_id, date) + SELECT user_id, forum_id, FROM_UNIXTIME(save_date) + FROM savane_old.forum_saved_place; + +TRUNCATE svnews_thread; +INSERT INTO svnews_thread + (id) + SELECT thread_id + FROM savane_old.forum_thread_id;
--- a/savane/svmain/views.py +++ b/savane/svmain/views.py @@ -87,6 +87,9 @@ import savane.svpeople.models as svpeople_models category_list = svpeople_models.Category.objects.all() + import savane.svnews.models as svnews_models + news_list = svnews_models.News.objects.filter(is_approved=1).order_by('-date')[:9] + # nb_users and nb_groups as string, because the |add: template # filter only accepts strings. context = { @@ -95,6 +98,7 @@ 'nb_pending' : str(666), # TODO 'group_confs' : group_confs, 'category_list' : category_list, + 'news_list' : news_list, } return context
--- a/savane/svnews/models.py +++ b/savane/svnews/models.py @@ -38,6 +38,8 @@ date_last_edit = models.DateTimeField(auto_now=True, db_index=True) summary = models.CharField(max_length=255) details = models.TextField() + # Savane3's 'forum_id', the most visible id, is now 'id'. + # Savane3's 'id', only used in administration screens, is dropped. class Comment(models.Model): """ @@ -45,7 +47,7 @@ """ news = models.ForeignKey(News) # savane_old: uses forum_id through forum_group_list posted_by = models.ForeignKey(auth_models.User, related_name='svnews_comment_set') - body = models.CharField(max_length=255) + subject = models.CharField(max_length=255) body = models.TextField(blank=True) date = models.DateTimeField(auto_now_add=True, db_index=True) is_followup_to = models.ForeignKey("Comment")
--- a/templates/svmain/homepage.html +++ b/templates/svmain/homepage.html @@ -1,5 +1,6 @@ {% extends "base.html" %} {% load i18n %} +{% load svmarkup %} {% block top %}{% endblock %} @@ -54,17 +55,30 @@ <!-- /stats --> </div> +<div class="indexcenter"> + <div class="intro"> + <!-- intro --> + Intro + <!-- /intro --> + </div> -<div class="intro"> -<!-- intro --> -Intro -<!-- /intro --> -</div> - -<div class="news"> -<!-- news --> -News -<!-- /news --> + <div class="boxtitle"><a href="TODO">{% trans "Latest news" %}</a></div> + {% for object in news_list %} + <div class="{% cycle 'boxitem' 'boxitemalt' %}"> + <a href="TODO"><strong>{{object.summary}}</strong></a><br /> + + <span class="smaller"><em> + {% trans "posted by" %} + <a href="{% url savane:svmain:user_detail object.submitted_by.username %}" + >{{object.submitted_by.username}}</a>, + {{object.date}} - + {% blocktrans count object.comment_set.count as count %}{{count}} comment{% plural %}{{count}} comments{% endblocktrans %} + </em></span> + <br /> + {{object.details|svmarkup_full}} + TODO: conditional [Read more] + </div> + {% endfor %} </div> {% endblock %}