/
progart116
/
PlanerProject2026
Обзор
Документация
Войти
/
progart116
/
PlanerProject2026
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Apps/NoteApp/views.py
183 строки
11 KB
progart116
debug
25 апр 2026, 12:27
25 апр 2026, 12:27
4a037dd
Код
Авторство
О чём код?
from django.shortcuts import render import django.contrib.auth.decorators import django.views.decorators.http import django.http import Apps.UserLogApp.models import Apps.NoteApp.models import django.urls import Apps.NoteApp.forms @django.contrib.auth.decorators.login_required def list_notes(request): try: current_user = Apps.UserLogApp.models.User.objects.get(django_user__username=str(request.user)) notes = Apps.NoteApp.models.Note.objects.order_by("id").filter(user=current_user).filter(deleted=False) log_data = "Открыт список заметок" if current_user.django_user.is_superuser: notes = Apps.NoteApp.models.Note.objects.order_by("id") log_data = "Открыт список заметок (режим суперпользователя)" context = { "notes": notes } Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.list_notes", log_data=log_data, user=current_user) return render(request, "NoteApp/list.html", context) except Exception as ex: Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.list_notes", log_data=f"Ошибка открытия списка заметок: {str(ex)}", user=current_user) return render(request, "Common/500.html", { "error": str(ex) }, status=500) @django.contrib.auth.decorators.login_required def show_note(request, note_id): try: current_user = Apps.UserLogApp.models.User.objects.get(django_user__username=str(request.user)) if not Apps.NoteApp.models.Note.objects.filter(id=note_id).exists(): raise Exception("Заметка не существует") current_note = Apps.NoteApp.models.Note.objects.get(id=note_id) if current_note.user != current_user and not current_user.django_user.is_superuser: return render(request, "Common/403.html") if current_note.deleted and not current_user.django_user.is_superuser: raise Exception("Заметка удалена") Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.show_note", log_data=f"Открыта заметка №{current_note.id}", user=current_user) return render(request, "NoteApp/note.html", { "note": current_note }) except Exception as ex: Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.show_note", log_data=f"Ошибка открытия заметки №{note_id}: {str(ex)}", user=current_user) return render(request, "Common/500.html", { "error": str(ex) }, status=500) @django.contrib.auth.decorators.login_required @django.views.decorators.http.require_http_methods(["POST"]) def save_note(request, note_id): try: current_user = Apps.UserLogApp.models.User.objects.get(django_user__username=str(request.user)) if not Apps.NoteApp.models.Note.objects.filter(id=note_id).exists(): raise Exception("Заметка не существует") current_note = Apps.NoteApp.models.Note.objects.get(id=note_id) if current_note.user != current_user and not current_user.django_user.is_superuser: return render(request, "Common/403.html") if current_note.deleted and not current_user.django_user.is_superuser: raise Exception("Заметка удалена") current_note.header = request.POST["header"] current_note.content = request.POST["content"] current_note.save() Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.save_note", log_data=f"Изменена заметка №{current_note.id}", user=current_user) return render(request, "NoteApp/note.html", { "note": current_note, "success_message": "Замтека успешно сохранена" }) except Exception as ex: Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.save_note", log_data=f"Ошибка изменения заметки №{note_id}: {str(ex)}", user=current_user) return render(request, "Common/500.html", { "error": str(ex) }, status=500) @django.contrib.auth.decorators.login_required def add_note(request, error_message=""): try: current_user = Apps.UserLogApp.models.User.objects.get(django_user__username=str(request.user)) context = { "form": Apps.NoteApp.forms.AddNoteForm(), "error_message": error_message, } Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.add_note", log_data=f"Открыта страница создания заметки", user=current_user) return render(request, "NoteApp/add_note.html", context) except Exception as ex: Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.add_note", log_data=f"Ошибка открытия страницы создания заметки: {str(ex)}", user=current_user) return render(request, "Common/500.html", { "error": str(ex) }, status=500) @django.contrib.auth.decorators.login_required @django.views.decorators.http.require_http_methods(["POST"]) def add_note_send(request): try: current_user = Apps.UserLogApp.models.User.objects.get(django_user__username=str(request.user)) form = Apps.NoteApp.forms.AddNoteForm(request.POST) if not form.is_valid(): raise Exception(f"Заполнены некорректные данные в форме добавления: {str(form.errors)}") new_note = Apps.NoteApp.models.Note() new_note.header = form.cleaned_data["header"] new_note.content = form.cleaned_data["content"] new_note.user = current_user new_note.deleted = False new_note.save() Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.add_note_send", log_data=f"Добавлена новая заметка", user=current_user) return django.http.HttpResponseRedirect(django.urls.reverse("NoteApp:list_notes")) except Exception as ex: Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.add_note_send", log_data=f"Ошибка создания заметки: {str(ex)}", user=current_user) return add_note(request, f"Ошибка: {str(ex)}") @django.contrib.auth.decorators.login_required def delete_note(request, note_id): try: current_user = Apps.UserLogApp.models.User.objects.get(django_user__username=str(request.user)) if not Apps.NoteApp.models.Note.objects.filter(id=note_id).exists(): raise Exception("Заметка не существует") current_note = Apps.NoteApp.models.Note.objects.get(id=note_id) if current_note.user != current_user and not current_user.django_user.is_superuser: return render(request, "Common/403.html") if current_note.deleted: raise Exception("Заметка уже удалена") current_note.deleted = True current_note.save() Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.delete_note", log_data=f"Удалена заметка №{current_note.id}", user=current_user) return django.http.HttpResponseRedirect(django.urls.reverse("NoteApp:list_notes")) except Exception as ex: Apps.UserLogApp.models.Log.objects.create(source_ip=request.META.get('HTTP_X_FORWARDED_FOR', 'unknown'), application="NoteApp", method="views.delete_note", log_data=f"Ошибка удаления заметки №{note_id}: {str(ex)}", user=current_user) return render(request, "Common/500.html", { "error": str(ex) }, status=500)