Коммит b6ef786c создал по автору Дмитриев Алекссей Романович's avatar Дмитриев Алекссей Романович
Просмотр файлов

сделал проброс данных в шаблон

владелец 8b76f1d2
...@@ -10,14 +10,36 @@ from management.models import User ...@@ -10,14 +10,36 @@ from management.models import User
from projects.models import Project, File from projects.models import Project, File
def check_what_user_not_have_access(request: HttpRequest, project: Project): # True если не имеет, False, если имеет def check_what_user_not_have_access(request: HttpRequest, project: Project): # True если не имеет, False, если имеет
return request.user.id != project.teacher.id and request.user.id != project.student.id and request.user.role != 'Администратор' return request.user.id != project.teacher.id and request.user.id != project.student.id and request.user.role != 'Администратор'
def index(request: HttpRequest): def index(request: HttpRequest):
project_id = request.GET.get("id", None) project_id = request.GET.get("id", None)
if project_id is None: if project_id is None:
return render(request, "projects/index.html") if request.user.role == 'Ученик':
projects = Project.objects.filter(student=request.user)
elif request.user.role == 'Учитель':
projects = Project.objects.filter(teacher=request.user)
@dataclass
class FilePack:
file: File
name: str
@dataclass
class ProjectPack:
project: Project
files: list[FilePack]
context_projects = []
for project in projects:
files = [FilePack(file, file.file.name.split('/')[-1]) for file in File.objects.filter(project=project, version=1)]
context_projects.append(ProjectPack(project, files))
return render(request, "projects/index.html", context={'projects': context_projects,
'has_projects': len(context_projects) > 0})
try: try:
project = Project.objects.get(id=project_id) project = Project.objects.get(id=project_id)
if check_what_user_not_have_access(request, project): if check_what_user_not_have_access(request, project):
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
fill="#FFFFFF"></path> fill="#FFFFFF"></path>
</svg></a> </svg></a>
{% endif %} {% endif %}
<!-- {% if user. == null %} --> {% if has_projects == null %}
<h1 class="title">Общий список</h1> <h1 class="title">Общий список</h1>
<div class="no-projects"> <div class="no-projects">
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" class="no-projects-svg"> <svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" class="no-projects-svg">
...@@ -29,20 +29,20 @@ ...@@ -29,20 +29,20 @@
</svg> </svg>
<span class="no-projects-span">У вас ещё ни одного проекта...</span> <span class="no-projects-span">У вас ещё ни одного проекта...</span>
</div> </div>
<!-- {% else %} --> {% else %}
{% for project in projects %} {% for project in projects %}
<div class="flex" id="flex{{ project_id }}"> <!-- id проекта --> <div class="flex" id="flex{{ project.id }}"> <!-- id проекта -->
<p class="cap">{{ project_title }}</p> <!-- Название проекта --> <p class="cap">{{ project.name }}</p> <!-- Название проекта -->
<button class="btn btn-projects"></button> <!-- кнопка --> <button class="btn btn-projects"></button> <!-- кнопка --> <!--Нужно сделать ссылку по типу projects/index/id_проекта-->
<p class="text">{{ project_body }}</p> <!-- Описание проекта --> <p class="text">{{ project.description }}</p> <!-- Описание проекта -->
<div class="files"> <div class="files">
{% for file in files %} <!-- цикл для отрисовки файлов --> {% for file in project.files %} <!-- цикл для отрисовки файлов -->
<div class="file"> <div class="file">
<p class="filename">{{ filename }}</p> <p class="filename">{{ file.name }}</p>
</div> </div>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
<!-- {% endif %} --> {% endif %}
{% endblock %} {% endblock %}
\ No newline at end of file
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать