Коммит b747a13f создал по автору Еганов Владислав Альбертович's avatar Еганов Владислав Альбертович
Просмотр файлов

Улучшил ограничения и код

владелец 42c23765
...@@ -14,20 +14,13 @@ import os ...@@ -14,20 +14,13 @@ import os
def index(request): def index(request):
group = None
superuser = False
anns = Announcement.objects.all() anns = Announcement.objects.all()
paginator = Paginator(anns, 20) # Сколько объявлений на странице paginator = Paginator(anns, 20) # Сколько объявлений на странице
page_number = request.GET.get('page') page_number = request.GET.get('page')
page_announcements = paginator.get_page(page_number) page_announcements = paginator.get_page(page_number)
if request.user.groups.exists(): data = {'page_announcements': page_announcements, 'count': anns.count()}
group = request.user.groups.all()[0].name
if group in ['Teacher', 'admin']:
superuser = True
data = {'superuser': superuser, 'page_announcements': page_announcements, 'count': anns.count()}
return render(request, 'dec/dec.html', context=data) return render(request, 'dec/dec.html', context=data)
...@@ -87,6 +80,12 @@ def editor(request, id): ...@@ -87,6 +80,12 @@ def editor(request, id):
try: try:
announcement = Announcement.objects.get(id=id) announcement = Announcement.objects.get(id=id)
if request.user.id == announcement.author_id or request.user.role == 'Администратор':
pass
else:
return HttpResponsePermanentRedirect('/announcements')
initial_data = { initial_data = {
'title': announcement.title, 'title': announcement.title,
'body': announcement.body, 'body': announcement.body,
...@@ -135,7 +134,7 @@ def editannouncement(request, id): ...@@ -135,7 +134,7 @@ def editannouncement(request, id):
files_to_delete = request.POST.get('file_id_to_delete') files_to_delete = request.POST.get('file_id_to_delete')
image_url = request.POST.get('image_url') image_url = request.POST.get('image_url')
if int(files_to_delete) is not -1: if int(files_to_delete) != -1:
if ',' in files_to_delete: if ',' in files_to_delete:
files_to_delete = files_to_delete.split(',') files_to_delete = files_to_delete.split(',')
...@@ -212,6 +211,11 @@ def delete_announcement(request, id): ...@@ -212,6 +211,11 @@ def delete_announcement(request, id):
if request.method != 'GET': if request.method != 'GET':
return render(request, 'WrongData.html') return render(request, 'WrongData.html')
if request.user.id == Announcement.objects.get(id=id).author_id or request.user.role == 'Администратор':
pass
else:
return HttpResponsePermanentRedirect('/announcements')
announcement = Announcement.objects.get(id=id) announcement = Announcement.objects.get(id=id)
files = announcement.files.all() files = announcement.files.all()
......
...@@ -13,14 +13,14 @@ ...@@ -13,14 +13,14 @@
<input value="{{ search_value }}" name="q" class="search-input" type="text" placeholder="Поиск..."> <input value="{{ search_value }}" name="q" class="search-input" type="text" placeholder="Поиск...">
<button class="search-button"></button> <button class="search-button"></button>
</div> </div>
{% comment %} {% if user.role == administrator or user.role == teacher %} {% endcomment %} {% if user.role == 'Администратор' or user.role == 'Учитель' %}
<a href="{% url 'redactor' %}" class="create-link"> <a href="{% url 'redactor' %}" class="create-link">
<span>Создать объявление</span> <span>Создать объявление</span>
<svg width="20" height="20" viewBox="0 0 200 200" style="transform: rotate(45deg)"> <svg width="20" height="20" viewBox="0 0 200 200" style="transform: rotate(45deg)">
<path d="m114 100 49-49a9.9 9.9 0 0 0-14-14l-49 49-49-49a9.9 9.9 0 0 0-14 14l49 49-49 49a9.9 9.9 0 0 0 14 14l49-49 49 49a9.9 9.9 0 0 0 14-14Z" fill="#FFFFFF"></path> <path d="m114 100 49-49a9.9 9.9 0 0 0-14-14l-49 49-49-49a9.9 9.9 0 0 0-14 14l49 49-49 49a9.9 9.9 0 0 0 14 14l49-49 49 49a9.9 9.9 0 0 0 14-14Z" fill="#FFFFFF"></path>
</svg> </svg>
</a> </a>
{% comment %} {% endif %} {% endcomment %} {% endif %}
</form> </form>
</div> </div>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
{% endif %} {% endif %}
</button> </button>
{% if announcement.author == user.username or user.role == 'Администратор' %} {% if announcement.author_id == user.id or user.role == 'Администратор' %}
<a href="{% url 'delete' announcement.id %}" class="delete-btn" title="Удалить объявление"> <a href="{% url 'delete' announcement.id %}" class="delete-btn" title="Удалить объявление">
<svg viewBox="0 0 200 200" width="22px" height="22px"><path d="m114 100 49-49a9.9 9.9 0 0 0-14-14l-49 49-49-49a9.9 9.9 0 0 0-14 14l49 49-49 49a9.9 9.9 0 0 0 14 14l49-49 49 49a9.9 9.9 0 0 0 14-14Z" fill="#f05454"></path></svg> <svg viewBox="0 0 200 200" width="22px" height="22px"><path d="m114 100 49-49a9.9 9.9 0 0 0-14-14l-49 49-49-49a9.9 9.9 0 0 0-14 14l49 49-49 49a9.9 9.9 0 0 0 14 14l49-49 49 49a9.9 9.9 0 0 0 14-14Z" fill="#f05454"></path></svg>
</a> </a>
...@@ -60,6 +60,7 @@ ...@@ -60,6 +60,7 @@
</div> </div>
<div class="middle-info"> <div class="middle-info">
<h2 class="announ-title">{{ announcement.title }}</h2> <h2 class="announ-title">{{ announcement.title }}</h2>
{% if announcement.author_id == user.id or user.role == 'Администратор' %}
<a href="{% url 'redactor' %}/{{ announcement.id }}"> <a href="{% url 'redactor' %}/{{ announcement.id }}">
<svg height="20px" version="1.1" viewBox="0 0 18 18" width="20px"> <svg height="20px" version="1.1" viewBox="0 0 18 18" width="20px">
<g fill="none" fill-rule="evenodd" id="Page-1" stroke="none" stroke-width="1"> <g fill="none" fill-rule="evenodd" id="Page-1" stroke="none" stroke-width="1">
...@@ -73,6 +74,7 @@ ...@@ -73,6 +74,7 @@
</g> </g>
</svg> </svg>
</a> </a>
{% endif %}
</div> </div>
<p class="announ-descr">{{ announcement.body }}</p> <p class="announ-descr">{{ announcement.body }}</p>
<button class="announ-btn">Подробнее</button> <button class="announ-btn">Подробнее</button>
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать