починил города

This commit is contained in:
VladislavOstapov 2023-05-07 13:58:11 +03:00
parent dd18dceb6d
commit 1768eb98a5
4 changed files with 27 additions and 15 deletions

View File

@ -5,6 +5,7 @@ from datetime import date as dt
from .api_media_utils import *
from .api_utils import *
from .models import *
from arka.settings import CITIES_CHOICES, CITIES_CHOICES_DICT
def _make_model_validation_errors(validation_error: ValidationError, api_err=API_ERROR_OBJECT_VALIDATION):
@ -47,14 +48,15 @@ class ApiAccount:
"id": user.id,
"name": user.name,
"surname": user.surname,
"phone": user.phone,
"email": user.email,
"about": user.about,
"city": {"code": user.city, "name": CITIES_CHOICES[user.city]} if user.city is not None else None,
"city": {"code": user.city, "name": CITIES_CHOICES_DICT[user.city]} if user.city is not None else None,
"register_datetime": int(time.mktime(user.register_datetime.timetuple())),
"role": user.role,
"verified": user.verified
}
if self_using:
obj["phone"] = user.phone
obj["email"] = user.email
if hasattr(user, 'accountavatar'):
obj["avatar"] = user.accountavatar.photo.id if user.accountavatar.photo is not None else None
@ -188,7 +190,7 @@ class ApiAccount:
ApiParamStr(name="executor_inn", required=False, regex="^(\\d{12}|\\d{10})$",
description="ИНН исполнителя (только для роли исполнитель): "
"12 цифр если исполнитель - физ.лицо и 10 цифр если это юр. лицо"),
ApiParamEnum(name="city", description="Город, в котором находится ползователь: {choices}",
ApiParamEnum(name="city", description="Город, в котором находится пользователь: {choices}",
required=False, choices=CITIES_CHOICES),
ApiParamInt(name="photo", required=False, default=None,
description="ID медиа, которое будет использоваться в качестве фото профиля, "
@ -432,7 +434,7 @@ class ApiSecurity:
ApiParamPassword(description="Пароль пользователя, нужен для подтверждения личности"),
ApiParamInt(name="session", description="ID сессии, которую надо деактивировать", value_min=0)
],
returns="Вернет стандартный отъект в случае успеха")
returns="Вернет стандартный объект в случае успеха")
async def remove_session(access_token, password, session):
if not access_token.user.check_password(password):
raise Exception(API_ERROR_INVALID_PASSWORD)

View File

@ -8,7 +8,7 @@ from hashlib import sha512, sha256
from django.db.models import Q
from arka.settings import CITIES_CHOICES, CITIES_FIELD_SIZE
from arka.settings import CITIES_CHOICES, CITIES_CHOICES_DICT, CITIES_FIELD_SIZE
from .api_errors import *
import re

View File

@ -153,7 +153,9 @@ PHONE_VERIFICATION_ACCESS_KEY = os.getenv('PHONE_VERIFICATION_ACCESS_KEY', "EMPT
# настройки выбора городов
with open('config/cities.json') as f:
CITIES_CHOICES = json.load(f)
for i in range(0, len(CITIES_CHOICES)):
CITIES_CHOICES[i] = tuple(CITIES_CHOICES[i])
__tmp = json.load(f)
CITIES_CHOICES = []
CITIES_CHOICES_DICT = __tmp['dict']
for i in range(0, len(__tmp['choices'])):
CITIES_CHOICES.append(tuple(__tmp['choices'][i]))
CITIES_FIELD_SIZE = 16

View File

@ -1,6 +1,14 @@
[
{
"choices": [
["moscow", "Москва"],
["mytishchi", "Мытищи"],
["belgorod", "Белгород"],
["orel", "Орел"]
]
],
"dict": {
"moscow": "Москва",
"mytishchi": "Мытищи",
"belgorod": "Белгород",
"orel": "Орел"
}
}