Открыть боковую панель
peteroshkvarkov
Project-38
Коммиты
b6ef786c
Коммит
b6ef786c
создал
Июн 19, 2023
по автору
Дмитриев Алекссей Романович
Просмотр файлов
сделал проброс данных в шаблон
владелец
8b76f1d2
Изменения
2
Скрыть пробелы
Построчно
Рядом
portal/projects/views.py
Просмотр файла @
b6ef786c
...
...
@@ -10,14 +10,36 @@ from management.models import User
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
!=
'Администратор'
def
index
(
request
:
HttpRequest
):
project_id
=
request
.
GET
.
get
(
"id"
,
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
:
project
=
Project
.
objects
.
get
(
id
=
project_id
)
if
check_what_user_not_have_access
(
request
,
project
):
...
...
portal/templates/projects/index.html
Просмотр файла @
b6ef786c
...
...
@@ -18,7 +18,7 @@
fill=
"#FFFFFF"
></path>
</svg></a>
{% endif %}
<!--
{% if
user.
== null %}
-->
{% if
has_projects
== null %}
<h1
class=
"title"
>
Общий список
</h1>
<div
class=
"no-projects"
>
<svg
viewBox=
"0 0 32 32"
xmlns=
"http://www.w3.org/2000/svg"
class=
"no-projects-svg"
>
...
...
@@ -29,20 +29,20 @@
</svg>
<span
class=
"no-projects-span"
>
У вас ещё ни одного проекта...
</span>
</div>
<!--
{% else %}
-->
{% else %}
{% for project in projects %}
<div
class=
"flex"
id=
"flex{{ project
_
id }}"
>
<!-- id проекта -->
<p
class=
"cap"
>
{{ project
_titl
e }}
</p>
<!-- Название проекта -->
<button
class=
"btn btn-projects"
></button>
<!-- кнопка -->
<p
class=
"text"
>
{{ project
_body
}}
</p>
<!-- Описание проекта -->
<div
class=
"flex"
id=
"flex{{ project
.
id }}"
>
<!-- id проекта -->
<p
class=
"cap"
>
{{ project
.nam
e }}
</p>
<!-- Название проекта -->
<button
class=
"btn btn-projects"
></button>
<!-- кнопка -->
<!--Нужно сделать ссылку по типу projects/index/id_проекта-->
<p
class=
"text"
>
{{ project
.description
}}
</p>
<!-- Описание проекта -->
<div
class=
"files"
>
{% for file in files %}
<!-- цикл для отрисовки файлов -->
{% for file in
project.
files %}
<!-- цикл для отрисовки файлов -->
<div
class=
"file"
>
<p
class=
"filename"
>
{{ filename }}
</p>
<p
class=
"filename"
>
{{ file
.
name }}
</p>
</div>
{% endfor %}
</div>
</div>
{% endfor %}
<!--
{% endif %}
-->
{% endif %}
{% endblock %}
\ Нет новой строки в конце файла
Редактирование
Предварительный просмотр
Поддерживает Markdown
0%
Попробовать снова
или
прикрепить новый файл
.
Отмена
You are about to add
0
people
to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать