feat
This commit is contained in:
parent
42ec4d0ba9
commit
2d1f17d9d5
53
main.ipynb
53
main.ipynb
@ -2903,7 +2903,7 @@
|
|||||||
" competition = await competitions_col.find_one({'_id': ObjectId(competition_id)})\n",
|
" competition = await competitions_col.find_one({'_id': ObjectId(competition_id)})\n",
|
||||||
" data = json.dumps(competition, cls=MongoJSONEncoder, ensure_ascii=False)\n",
|
" data = json.dumps(competition, cls=MongoJSONEncoder, ensure_ascii=False)\n",
|
||||||
" return templates.TemplateResponse(\n",
|
" return templates.TemplateResponse(\n",
|
||||||
" request=request, name=\"form/competition_edit.html\", context={\"competition\": str(data), \"user\": user}\n",
|
" request=request, name=\"form/competition_edit.html\", context={\"competition\": str(data), \"competition_id\": competition_id, \"user\": user}\n",
|
||||||
" )\n"
|
" )\n"
|
||||||
],
|
],
|
||||||
"display_name": ".venv"
|
"display_name": ".venv"
|
||||||
@ -4554,6 +4554,48 @@
|
|||||||
"id": "6157e497",
|
"id": "6157e497",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"# @app.get('/profile/delivery/{type_d}/{item_id}')\n",
|
||||||
|
"# async def profile_delivery_by_old(request: Request, type_d:str, item_id:str, user: Dict = Security(get_current_user)):\n",
|
||||||
|
"# cursor = delivery_collection.aggregate([\n",
|
||||||
|
"# {\"$match\": {\n",
|
||||||
|
"# \"$or\": [\n",
|
||||||
|
"# {\"sender._id\": user.get('_id')},\n",
|
||||||
|
"# {\"user._id\": user.get('_id')},\n",
|
||||||
|
"# {\"receiver._id\": user.get('_id')}\n",
|
||||||
|
"# ],\n",
|
||||||
|
"# f'{type_d}_id': ObjectId(item_id),\n",
|
||||||
|
"# 'prod': PROD,\n",
|
||||||
|
"# }},\n",
|
||||||
|
"# {\"$sort\": {\"_id\": -1}},\n",
|
||||||
|
"# {\"$group\": {\n",
|
||||||
|
"# \"_id\": \"$post_id\",\n",
|
||||||
|
"# \"doc\": {\"$first\": \"$$ROOT\"}\n",
|
||||||
|
"# }},\n",
|
||||||
|
"# {\"$replaceRoot\": {\"newRoot\": \"$doc\"}},\n",
|
||||||
|
"# {\"$sort\": {\"_id\": -1}},\n",
|
||||||
|
"# ])\n",
|
||||||
|
"\n",
|
||||||
|
"# data = [doc async for doc in cursor]\n",
|
||||||
|
"# data.sort(key=lambda doc: doc[\"_id\"].generation_time, reverse=True)\n",
|
||||||
|
"\n",
|
||||||
|
"# return templates.TemplateResponse(\n",
|
||||||
|
"# request=request,\n",
|
||||||
|
"# name=\"profile/delivery_old.html\",\n",
|
||||||
|
"# context={\n",
|
||||||
|
"# \"user\": user,\n",
|
||||||
|
"# \"data\": data,\n",
|
||||||
|
"# }\n",
|
||||||
|
"# )\n"
|
||||||
|
],
|
||||||
|
"display_name": ".venv"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "089ba597",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"@app.get('/profile/delivery/competition/{competition_id}')\n",
|
"@app.get('/profile/delivery/competition/{competition_id}')\n",
|
||||||
"async def profile_delivery_by_competition(request: Request, competition_id:str, user: Dict = Security(get_current_user)):\n",
|
"async def profile_delivery_by_competition(request: Request, competition_id:str, user: Dict = Security(get_current_user)):\n",
|
||||||
@ -4564,7 +4606,6 @@
|
|||||||
" {\"user._id\": user.get('_id')},\n",
|
" {\"user._id\": user.get('_id')},\n",
|
||||||
" {\"receiver._id\": user.get('_id')}\n",
|
" {\"receiver._id\": user.get('_id')}\n",
|
||||||
" ],\n",
|
" ],\n",
|
||||||
" 'competition_id': ObjectId(competition_id),\n",
|
|
||||||
" 'prod': PROD,\n",
|
" 'prod': PROD,\n",
|
||||||
" }},\n",
|
" }},\n",
|
||||||
" {\"$sort\": {\"_id\": -1}},\n",
|
" {\"$sort\": {\"_id\": -1}},\n",
|
||||||
@ -4577,6 +4618,8 @@
|
|||||||
" ])\n",
|
" ])\n",
|
||||||
"\n",
|
"\n",
|
||||||
" data = [doc async for doc in cursor]\n",
|
" data = [doc async for doc in cursor]\n",
|
||||||
|
" data.sort(key=lambda doc: doc[\"_id\"].generation_time, reverse=True)\n",
|
||||||
|
"\n",
|
||||||
" return templates.TemplateResponse(\n",
|
" return templates.TemplateResponse(\n",
|
||||||
" request=request,\n",
|
" request=request,\n",
|
||||||
" name=\"profile/delivery_old.html\",\n",
|
" name=\"profile/delivery_old.html\",\n",
|
||||||
@ -4591,7 +4634,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
"id": "d68edb20",
|
"id": "2148ef21",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
@ -4617,6 +4660,8 @@
|
|||||||
" ])\n",
|
" ])\n",
|
||||||
"\n",
|
"\n",
|
||||||
" data = [doc async for doc in cursor]\n",
|
" data = [doc async for doc in cursor]\n",
|
||||||
|
" data.sort(key=lambda doc: doc[\"_id\"].generation_time, reverse=True)\n",
|
||||||
|
"\n",
|
||||||
" return templates.TemplateResponse(\n",
|
" return templates.TemplateResponse(\n",
|
||||||
" request=request,\n",
|
" request=request,\n",
|
||||||
" name=\"profile/delivery_old.html\",\n",
|
" name=\"profile/delivery_old.html\",\n",
|
||||||
@ -4624,7 +4669,7 @@
|
|||||||
" \"user\": user,\n",
|
" \"user\": user,\n",
|
||||||
" \"data\": data,\n",
|
" \"data\": data,\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" )\n"
|
" )"
|
||||||
],
|
],
|
||||||
"display_name": ".venv"
|
"display_name": ".venv"
|
||||||
},
|
},
|
||||||
|
|||||||
42
main.py
42
main.py
@ -2162,7 +2162,7 @@ async def form_(
|
|||||||
competition = await competitions_col.find_one({'_id': ObjectId(competition_id)})
|
competition = await competitions_col.find_one({'_id': ObjectId(competition_id)})
|
||||||
data = json.dumps(competition, cls=MongoJSONEncoder, ensure_ascii=False)
|
data = json.dumps(competition, cls=MongoJSONEncoder, ensure_ascii=False)
|
||||||
return templates.TemplateResponse(
|
return templates.TemplateResponse(
|
||||||
request=request, name="form/competition_edit.html", context={"competition": str(data), "user": user}
|
request=request, name="form/competition_edit.html", context={"competition": str(data), "competition_id": competition_id, "user": user}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -3459,6 +3459,40 @@ async def profile_delivery_history_post(request: Request, post_id:str, user: Dic
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# @app.get('/profile/delivery/{type_d}/{item_id}')
|
||||||
|
# async def profile_delivery_by_old(request: Request, type_d:str, item_id:str, user: Dict = Security(get_current_user)):
|
||||||
|
# cursor = delivery_collection.aggregate([
|
||||||
|
# {"$match": {
|
||||||
|
# "$or": [
|
||||||
|
# {"sender._id": user.get('_id')},
|
||||||
|
# {"user._id": user.get('_id')},
|
||||||
|
# {"receiver._id": user.get('_id')}
|
||||||
|
# ],
|
||||||
|
# f'{type_d}_id': ObjectId(item_id),
|
||||||
|
# 'prod': PROD,
|
||||||
|
# }},
|
||||||
|
# {"$sort": {"_id": -1}},
|
||||||
|
# {"$group": {
|
||||||
|
# "_id": "$post_id",
|
||||||
|
# "doc": {"$first": "$$ROOT"}
|
||||||
|
# }},
|
||||||
|
# {"$replaceRoot": {"newRoot": "$doc"}},
|
||||||
|
# {"$sort": {"_id": -1}},
|
||||||
|
# ])
|
||||||
|
|
||||||
|
# data = [doc async for doc in cursor]
|
||||||
|
# data.sort(key=lambda doc: doc["_id"].generation_time, reverse=True)
|
||||||
|
|
||||||
|
# return templates.TemplateResponse(
|
||||||
|
# request=request,
|
||||||
|
# name="profile/delivery_old.html",
|
||||||
|
# context={
|
||||||
|
# "user": user,
|
||||||
|
# "data": data,
|
||||||
|
# }
|
||||||
|
# )
|
||||||
|
|
||||||
|
|
||||||
@app.get('/profile/delivery/competition/{competition_id}')
|
@app.get('/profile/delivery/competition/{competition_id}')
|
||||||
async def profile_delivery_by_competition(request: Request, competition_id:str, user: Dict = Security(get_current_user)):
|
async def profile_delivery_by_competition(request: Request, competition_id:str, user: Dict = Security(get_current_user)):
|
||||||
cursor = delivery_collection.aggregate([
|
cursor = delivery_collection.aggregate([
|
||||||
@ -3468,7 +3502,6 @@ async def profile_delivery_by_competition(request: Request, competition_id:str,
|
|||||||
{"user._id": user.get('_id')},
|
{"user._id": user.get('_id')},
|
||||||
{"receiver._id": user.get('_id')}
|
{"receiver._id": user.get('_id')}
|
||||||
],
|
],
|
||||||
'competition_id': ObjectId(competition_id),
|
|
||||||
'prod': PROD,
|
'prod': PROD,
|
||||||
}},
|
}},
|
||||||
{"$sort": {"_id": -1}},
|
{"$sort": {"_id": -1}},
|
||||||
@ -3481,6 +3514,8 @@ async def profile_delivery_by_competition(request: Request, competition_id:str,
|
|||||||
])
|
])
|
||||||
|
|
||||||
data = [doc async for doc in cursor]
|
data = [doc async for doc in cursor]
|
||||||
|
data.sort(key=lambda doc: doc["_id"].generation_time, reverse=True)
|
||||||
|
|
||||||
return templates.TemplateResponse(
|
return templates.TemplateResponse(
|
||||||
request=request,
|
request=request,
|
||||||
name="profile/delivery_old.html",
|
name="profile/delivery_old.html",
|
||||||
@ -3513,6 +3548,8 @@ async def profile_delivery_by_exhibition(request: Request, exhibition_id:str, us
|
|||||||
])
|
])
|
||||||
|
|
||||||
data = [doc async for doc in cursor]
|
data = [doc async for doc in cursor]
|
||||||
|
data.sort(key=lambda doc: doc["_id"].generation_time, reverse=True)
|
||||||
|
|
||||||
return templates.TemplateResponse(
|
return templates.TemplateResponse(
|
||||||
request=request,
|
request=request,
|
||||||
name="profile/delivery_old.html",
|
name="profile/delivery_old.html",
|
||||||
@ -3522,7 +3559,6 @@ async def profile_delivery_by_exhibition(request: Request, exhibition_id:str, us
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.get(
|
@app.get(
|
||||||
"/profile/delivery",
|
"/profile/delivery",
|
||||||
response_class=HTMLResponse,
|
response_class=HTMLResponse,
|
||||||
|
|||||||
@ -31,6 +31,7 @@
|
|||||||
<span class="b_0jst1">{{ {-1:'Формируется',0:'Прием заявок',1:'Идет отбор',2:'Закончился'}[competition.get('status',-1)] }}</span>
|
<span class="b_0jst1">{{ {-1:'Формируется',0:'Прием заявок',1:'Идет отбор',2:'Закончился'}[competition.get('status',-1)] }}</span>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<span class="b_sdf">До {{ (competition.date_finish.strftime('%d.%m.%Y')) if competition.date_finish else ''}}</span>
|
||||||
<header class="c_m876y b_9xtz9">
|
<header class="c_m876y b_9xtz9">
|
||||||
<h3 class="c_hysjg b_8f3uh">{{ competition.title }}</h3>
|
<h3 class="c_hysjg b_8f3uh">{{ competition.title }}</h3>
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
{% import "competition/list.html" as competition %}
|
{% import "competition/list.html" as competition %}
|
||||||
{% import "components/checkbox.html" as checkbox %}
|
{% import "components/checkbox.html" as checkbox %}
|
||||||
|
|
||||||
{% macro section(user, competition) -%}
|
{% macro section(user, competition, competition_id) -%}
|
||||||
<form class="c_sbrxk">
|
<form class="c_sbrxk">
|
||||||
<div class="c_dtjoh">
|
<div class="c_dtjoh">
|
||||||
<h3>Выбор</h3>
|
<h3>Выбор</h3>
|
||||||
@ -346,7 +346,7 @@ function bindLinkValidation({
|
|||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
const competition = JSON.parse({{competition|tojson}})
|
const competition = JSON.parse({{competition|tojson}})
|
||||||
const competitionId = competition._id
|
const competitionId = `{{competition_id}}`
|
||||||
|
|
||||||
document.getElementById('title').value = competition.title;
|
document.getElementById('title').value = competition.title;
|
||||||
document.getElementById('preview_title').textContent = competition.title;
|
document.getElementById('preview_title').textContent = competition.title;
|
||||||
@ -595,7 +595,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
|
|
||||||
console.log('Отправка формы...');
|
console.log('Отправка формы...');
|
||||||
try {
|
try {
|
||||||
const res = await fetch(`/api/competition/${competitionId}`, {
|
const res = await fetch(`/api/competition/{{competition_id}}`, {
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
body: formData
|
body: formData
|
||||||
});
|
});
|
||||||
@ -895,5 +895,4 @@ input[type="number"]:focus::-webkit-inner-spin-button {display: none;}
|
|||||||
.c_sbrxk{z-index: 1000;}
|
.c_sbrxk{z-index: 1000;}
|
||||||
#preview_poster{width: 335px;}
|
#preview_poster{width: 335px;}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
@ -14,6 +14,6 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{{ header.section(user) }}
|
{{ header.section(user) }}
|
||||||
{{ form.section(user, competition) }}
|
{{ form.section(user, competition, competition_id) }}
|
||||||
{{ footer.section() }}
|
{{ footer.section() }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@ -82,6 +82,8 @@
|
|||||||
<span class="b_bvl0d">Получить</span>
|
<span class="b_bvl0d">Получить</span>
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if doc.status == 'Получено' %}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<p class="b_6spaf">
|
<p class="b_6spaf">
|
||||||
{{ (doc._id.generation_time.strftime('%d.%m.%Y')) if doc._id else ''}}
|
{{ (doc._id.generation_time.strftime('%d.%m.%Y')) if doc._id else ''}}
|
||||||
@ -125,10 +127,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for doc in data if doc.status in statuses %}
|
{% for doc in data %}
|
||||||
{{ render_doc(doc) }}
|
|
||||||
{% endfor %}
|
|
||||||
{% for doc in data if doc.status not in statuses %}
|
|
||||||
{{ render_doc(doc) }}
|
{{ render_doc(doc) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<script defer>
|
<script defer>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user