Commit 3a6a41bd2ffbea2d61618f3997ea706b93f0a79e

Authored by Zambom
1 parent 8847726a

Applying date limit [Issue: #259]

forum/models.py
... ... @@ -6,6 +6,8 @@ from autoslug.fields import AutoSlugField
6 6 from courses.models import Activity
7 7 from users.models import User
8 8  
  9 +from datetime import date
  10 +
9 11 """
10 12 It's one kind of activity available for a Topic.
11 13 It works like a 'topic' of forum, which users can post to it and answer posts of it.
... ... @@ -23,6 +25,11 @@ class Forum(Activity):
23 25 def __str__(self):
24 26 return self.name
25 27  
  28 + def is_closed(self):
  29 + today = date.today()
  30 +
  31 + return self.limit_date < today
  32 +
26 33  
27 34 """
28 35 It represents a post made in a forum (topic)
... ...
forum/static/js/forum.js
... ... @@ -62,6 +62,7 @@ function createForum(url, topic) {
62 62 function setForumCreateFormSubmit(topic) {
63 63 $('.date-picker').datepicker({
64 64 language: locale,
  65 + startDate: "dateToday"
65 66 });
66 67  
67 68 var frm = $('#forum_create');
... ... @@ -114,6 +115,7 @@ function editForum(url, forum, success_message) {
114 115 function setForumUpdateFormSubmit(success_message) {
115 116 $('.date-picker').datepicker({
116 117 language: locale,
  118 + startDate: "dateToday"
117 119 });
118 120  
119 121 var frm = $('#forum_create');
... ...
forum/templates/forum/forum_view.html
... ... @@ -59,45 +59,47 @@
59 59 <h4><b>{% trans 'Opened in' %}:</b> {{ forum.create_date }}</h4>
60 60 </div>
61 61 </div>
62   - <div class="form_post_block">
63   - <hr />
64   - <form id="form_post" method="post" action="{% url 'course:forum:create_post' %}" enctype="multipart/form-data">
65   - {% csrf_token %}
66   - {% for field in form %}
67   - {% if field.field.widget.input_type == 'hidden' %}
68   - {% render_field field class='form-control' value=forum.id %}
69   - {% else %}
70   - <div class="form-group {% if form.has_error %} has-error {% endif %} is-fileinput">
71   - <div class="input-group">
72   - {% render_field field class='form-control' placeholder="Post a message" %}
73   - <span class="help-block">{{ field.help_text }}</span>
74   - {% if field.errors %}
75   - <div class="row">
76   - <br />
77   - <div class="alert alert-danger alert-dismissible" role="alert">
78   - <button type="button" class="close" data-dismiss="alert" aria-label="Close">
79   - <span aria-hidden="true">&times;</span>
80   - </button>
81   - <ul>
82   - {% for error in field.errors %}
83   - <li>{{ error }}</li>
84   - {% endfor %}
85   - </ul>
  62 + {% if not forum.is_closed %}
  63 + <div class="form_post_block">
  64 + <hr />
  65 + <form id="form_post" method="post" action="{% url 'course:forum:create_post' %}" enctype="multipart/form-data">
  66 + {% csrf_token %}
  67 + {% for field in form %}
  68 + {% if field.field.widget.input_type == 'hidden' %}
  69 + {% render_field field class='form-control' value=forum.id %}
  70 + {% else %}
  71 + <div class="form-group {% if form.has_error %} has-error {% endif %} is-fileinput">
  72 + <div class="input-group">
  73 + {% render_field field class='form-control' placeholder="Post a message" %}
  74 + <span class="help-block">{{ field.help_text }}</span>
  75 + {% if field.errors %}
  76 + <div class="row">
  77 + <br />
  78 + <div class="alert alert-danger alert-dismissible" role="alert">
  79 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  80 + <span aria-hidden="true">&times;</span>
  81 + </button>
  82 + <ul>
  83 + {% for error in field.errors %}
  84 + <li>{{ error }}</li>
  85 + {% endfor %}
  86 + </ul>
  87 + </div>
86 88 </div>
87   - </div>
88   - {% endif %}
89   - <span class="input-group-btn">
90   - <button type="submit" class="btn btn-fab btn-fab-mini">
91   - <i class="material-icons">{% trans 'send' %}</i>
92   - </button>
93   - </span>
  89 + {% endif %}
  90 + <span class="input-group-btn">
  91 + <button type="submit" class="btn btn-fab btn-fab-mini">
  92 + <i class="material-icons">{% trans 'send' %}</i>
  93 + </button>
  94 + </span>
  95 + </div>
94 96 </div>
95   - </div>
96   - {% endif %}
97   - {% endfor %}
98   - </form>
99   - <hr />
100   - </div>
  97 + {% endif %}
  98 + {% endfor %}
  99 + </form>
  100 + <hr />
  101 + </div>
  102 + {% endif %}
101 103 <div id="posts_list">
102 104 {% list_posts request forum %}
103 105 </div>
... ...
forum/templates/post/post_list.html
... ... @@ -6,23 +6,25 @@
6 6 <div id="post_{{ post.id }}" class="col-sm-12 col-xs-12">
7 7 <h3 class="user-name">
8 8 {{ post.user }}
9   - <div class="pull-right">
10   - <a href="javascript:answer('{{ post.id }}', '{% url 'course:forum:reply_post' %}');">
11   - <i class="material-icons">{% trans 'reply' %}</i>
12   - </a>
13   - {% if request.user|has_role:'system_admin' or request.user == post.user %}
14   - {% csrf_token %}
15   - <div class="btn-group icon-more-horiz">
16   - <a class="btn btn-default btn-xs dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
17   - <i class="material-icons">more_horiz</i>
18   - </a>
19   - <ul class="dropdown-menu pull-right" aria-labelledby="dropdownMenu1">
20   - <li><a href="javascript:edit_post('{% url 'course:forum:update_post' post.id %}', '{{ post.id }}', '{% trans 'Post edited successfully!' %}')"><i class="material-icons">create</i> {% trans 'Edit' %}</a></li>
21   - <li><a href="javascript:javascript:delete_post('{% url 'course:forum:delete_post' post.id %}', '{{ post.id }}')"><i class="material-icons">delete_sweep</i> {% trans 'Remove' %}</a></li>
22   - </ul>
23   - </div>
24   - {% endif %}
25   - </div>
  9 + {% if not post.forum.is_closed %}
  10 + <div class="pull-right">
  11 + <a href="javascript:answer('{{ post.id }}', '{% url 'course:forum:reply_post' %}');">
  12 + <i class="material-icons">{% trans 'reply' %}</i>
  13 + </a>
  14 + {% if request.user|has_role:'system_admin' or request.user == post.user %}
  15 + {% csrf_token %}
  16 + <div class="btn-group icon-more-horiz">
  17 + <a class="btn btn-default btn-xs dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  18 + <i class="material-icons">more_horiz</i>
  19 + </a>
  20 + <ul class="dropdown-menu pull-right" aria-labelledby="dropdownMenu1">
  21 + <li><a href="javascript:edit_post('{% url 'course:forum:update_post' post.id %}', '{{ post.id }}', '{% trans 'Post edited successfully!' %}')"><i class="material-icons">create</i> {% trans 'Edit' %}</a></li>
  22 + <li><a href="javascript:javascript:delete_post('{% url 'course:forum:delete_post' post.id %}', '{{ post.id }}')"><i class="material-icons">delete_sweep</i> {% trans 'Remove' %}</a></li>
  23 + </ul>
  24 + </div>
  25 + {% endif %}
  26 + </div>
  27 + {% endif %}
26 28 </h3>
27 29 <div class="post_content">
28 30 <div class="card-data">
... ...
forum/templates/post_answers/post_answer_list.html
... ... @@ -7,18 +7,20 @@
7 7 <div class="col-sm-12 col-xs-12">
8 8 <h3 class="user-name">
9 9 {{ answer.user }}
10   - {% if request.user|has_role:'system_admin' or request.user == answer.user %}
11   - <div class="pull-right">
12   - <div class="btn-group icon-more-horiz">
13   - <a class="btn btn-default btn-xs dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
14   - <i class="material-icons">more_horiz</i>
15   - </a>
16   - <ul class="dropdown-menu pull-right" aria-labelledby="dropdownMenu1">
17   - <li><a href="javascript:edit_post_answer('{% url 'course:forum:update_post_answer' answer.id %}', '{{ answer.id }}', '{% trans 'Answer edited sucessfully!' %}')"><i class="material-icons">create</i> {% trans 'Edit' %}</a></li>
18   - <li><a href="javascript:delete_answer('{% url 'course:forum:delete_answer' answer.id %}', '{{ answer.id }}', '{% trans "Are you sure you want to delete this answer?" %}')"><i class="material-icons">delete_sweep</i> {% trans 'Remove' %}</a></li>
19   - </ul>
  10 + {% if not answer.post.forum.is_closed %}
  11 + {% if request.user|has_role:'system_admin' or request.user == answer.user %}
  12 + <div class="pull-right">
  13 + <div class="btn-group icon-more-horiz">
  14 + <a class="btn btn-default btn-xs dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  15 + <i class="material-icons">more_horiz</i>
  16 + </a>
  17 + <ul class="dropdown-menu pull-right" aria-labelledby="dropdownMenu1">
  18 + <li><a href="javascript:edit_post_answer('{% url 'course:forum:update_post_answer' answer.id %}', '{{ answer.id }}', '{% trans 'Answer edited sucessfully!' %}')"><i class="material-icons">create</i> {% trans 'Edit' %}</a></li>
  19 + <li><a href="javascript:delete_answer('{% url 'course:forum:delete_answer' answer.id %}', '{{ answer.id }}', '{% trans "Are you sure you want to delete this answer?" %}')"><i class="material-icons">delete_sweep</i> {% trans 'Remove' %}</a></li>
  20 + </ul>
  21 + </div>
20 22 </div>
21   - </div>
  23 + {% endif %}
22 24 {% endif %}
23 25 </h3>
24 26 <div class="post_answer_content">
... ...