Открыть боковую панель
peteroshkvarkov
Project-38
Коммиты
72729122
Коммит
72729122
создал
Окт 14, 2023
по автору
AdLeGeR
Просмотр файлов
Реализовал требования по issue 188-190
владелец
36976947
Изменения
6
Скрыть пробелы
Построчно
Рядом
portal/projects/migrations/0004_project_defence_video.py
0 → 100644
Просмотр файла @
72729122
# Generated by Django 4.2.3 on 2023-10-14 16:47
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
"projects"
,
"0003_project__level"
),
]
operations
=
[
migrations
.
AddField
(
model_name
=
"project"
,
name
=
"defence_video"
,
field
=
models
.
CharField
(
max_length
=
200
,
null
=
True
),
),
]
portal/projects/models.py
Просмотр файла @
72729122
...
...
@@ -25,6 +25,7 @@ class Project(Model):
target
=
CharField
(
max_length
=
1000
,
null
=
True
)
tasks
=
CharField
(
max_length
=
1000
,
null
=
True
)
expected_results
=
CharField
(
max_length
=
1000
,
null
=
True
)
defence_video
=
CharField
(
max_length
=
200
,
null
=
True
)
# фильтрация предметов при записи их в бд(что бы не удалось поставить не существующий предмет
def
set_subject
(
self
,
subjects
:
str
):
...
...
portal/projects/urls.py
Просмотр файла @
72729122
...
...
@@ -14,5 +14,6 @@ urlpatterns = [
path
(
'add_comment'
,
views
.
set_comment
,
name
=
'add_comment'
),
# добавление комментария к файлу
path
(
'approve_project'
,
views
.
approve_project
,
name
=
'approve_project'
),
# одобрение заявки на проект
path
(
'close_project'
,
views
.
close_project
,
name
=
'close_project'
),
# закрытие работы над проектом
path
(
"restore_file"
,
views
.
restore_file
,
name
=
'restore_file'
)
# восстановление файла из корзины
path
(
"restore_file"
,
views
.
restore_file
,
name
=
'restore_file'
),
# восстановление файла из корзины
path
(
'archive'
,
views
.
archive
,
name
=
'archive'
),
]
portal/projects/views.py
Просмотр файла @
72729122
...
...
@@ -419,3 +419,24 @@ def close_project(request: HttpRequest):
return
render
(
request
,
"WrongData.html"
)
except
BaseException
:
return
render
(
request
,
"FatalError.html"
)
def
archive
(
request
:
HttpRequest
):
projects
=
Project
.
objects
.
filter
(
_status
=
'done'
)[
0
:
20
]
# упаковка проектов и файлов в один массив состоящий из объектов класса ProjectPack
context_projects
=
[]
for
project
in
projects
:
abstract_file
=
File
.
objects
.
filter
(
project
=
project
,
version
=
1
,
_tag
=
'Реферат'
).
first
()
presentation_file
=
File
.
objects
.
filter
(
project
=
project
,
version
=
1
,
_tag
=
'Презентация'
).
first
()
annotation_file
=
File
.
objects
.
filter
(
project
=
project
,
version
=
1
,
_tag
=
'Аннотация'
).
first
()
variables
=
vars
(
project
)
values
=
{
key
:
val
for
key
,
val
in
zip
(
variables
.
keys
(),
variables
.
values
())
if
key
!=
'_state'
}
values
.
update
({
'abstruct'
:
abstract_file
,
'presentation'
:
presentation_file
,
'annotation'
:
annotation_file
})
context_projects
.
append
(
values
.
copy
())
return
render
(
request
,
'projects/archive.html'
,
context
=
{
'projects'
:
context_projects
})
portal/templates/home.html
Просмотр файла @
72729122
...
...
@@ -34,7 +34,7 @@
<a
href=
"#contests"
>
Конкурсы
</a>
</li>
<li
class=
"nav-item"
>
<a
href=
"
#
"
>
Архив работ
</a>
<a
href=
"
{% url 'archive' %}
"
>
Архив работ
</a>
</li>
<li
class=
"nav-item"
>
<a
href=
"{% url 'announcements' %}"
>
Новости
</a>
...
...
portal/templates/projects/archive.html
0 → 100644
Просмотр файла @
72729122
{% load static %}
{% block head %}
<title>
Архив работ
</title>
{% endblock head %}
{% block content %}
{%for project in projects%}
<div>
<span>
{{project.name}}
</span>
{% if user.is_authenticated%}
<a
href=
"{% url 'projects' %}?id={{project.abstruct.id}}"
title=
"Загрузить файл"
class=
"download-link"
>
Реферат
</a>
{% endif %}
<a
href=
"{% url 'projects' %}?id={{project.defence.id}}"
title=
"Загрузить файл"
class=
"download-link"
>
Защита
</a>
<a
href=
"{% url 'download_file' %}?file_id={{project.presentation.id}}"
title=
"Загрузить файл"
class=
"download-link"
>
Презентация
</a>
{% if project.defence_video is not null%}
<a
href=
"{{project.defence_video}}"
title=
"Загрузить файл"
class=
"download-link"
>
Видео с защиты
</a>
{% endif %}
</div>
{%endfor%}
{% endblock content %}
\ Нет новой строки в конце файла
Редактирование
Предварительный просмотр
Поддерживает Markdown
0%
Попробовать снова
или
прикрепить новый файл
.
Отмена
You are about to add
0
people
to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать