add data correct
This commit is contained in:
parent
b118fb7124
commit
2f725bbfc7
|
@ -135,6 +135,7 @@ class TgBot:
|
|||
|
||||
async def add_tmc(self, update: Update, context: CallbackContext):
|
||||
query = update.callback_query
|
||||
if update.callback_query:
|
||||
await update.effective_message.edit_reply_markup(InlineKeyboardMarkup([]))
|
||||
await query.answer()
|
||||
|
||||
|
@ -143,6 +144,10 @@ class TgBot:
|
|||
tmc_element = await TmcElement.objects.acreate(tmc=tmc)
|
||||
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
||||
|
||||
async for f in tmc.fields.all():
|
||||
tmc_field = await TmcField.objects.acreate(field=f)
|
||||
await tmc_element.field.aadd(tmc_field)
|
||||
|
||||
await inv.tmc.aadd(tmc_element)
|
||||
|
||||
context.chat_data["tmc"] = tmc_element.id
|
||||
|
@ -152,6 +157,7 @@ class TgBot:
|
|||
|
||||
async def add_element(self, update: Update, context: CallbackContext):
|
||||
query = update.callback_query
|
||||
if update.callback_query:
|
||||
await update.effective_message.edit_reply_markup(InlineKeyboardMarkup([]))
|
||||
await query.answer()
|
||||
|
||||
|
@ -159,10 +165,7 @@ class TgBot:
|
|||
tmc = await inv.tmc.aget(id=context.chat_data["tmc"])
|
||||
|
||||
field_id = query.data.split("@")[-1]
|
||||
field = await BaseCustomField.objects.aget(id=field_id)
|
||||
|
||||
tmc_field = await TmcField.objects.acreate(field=field)
|
||||
tmc.field.aadd(field)
|
||||
tmc_field = await tmc.field.aget(id=field_id)
|
||||
|
||||
context.chat_data["element"] = tmc_field.id
|
||||
context.chat_data["step"] = "add_element"
|
||||
|
@ -234,8 +237,9 @@ class TgBot:
|
|||
tmc = await CustomTable.objects.aget(id=tmc_element.tmc_id)
|
||||
|
||||
fields = []
|
||||
async for e in tmc.fields.all():
|
||||
fields.append({"name": e.name, "id": e.id})
|
||||
async for e in tmc_element.field.filter(text=None):
|
||||
f = await BaseCustomField.objects.aget(id=e.field_id)
|
||||
fields.append({"name": f.name, "id": e.id})
|
||||
keys = chunk(1, fields)
|
||||
|
||||
context.chat_data["tmc"] = tmc_element.id
|
||||
|
@ -268,7 +272,6 @@ class TgBot:
|
|||
elif current_step == "add_element":
|
||||
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
||||
tmc = await inv.tmc.aget(id=context.chat_data["tmc"])
|
||||
logger.info(context.chat_data["element"])
|
||||
element = await TmcField.objects.aget(id=context.chat_data["element"])
|
||||
field = await BaseCustomField.objects.aget(id=element.field_id)
|
||||
|
||||
|
@ -288,7 +291,8 @@ class TgBot:
|
|||
)
|
||||
elif current_step == "add_element_data":
|
||||
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
||||
tmc = await inv.tmc.aget(id=context.chat_data["tmc"])
|
||||
tmc_element = await inv.tmc.aget(id=context.chat_data["tmc"])
|
||||
tmc = await CustomTable.objects.aget(id=tmc_element.tmc_id)
|
||||
element = await TmcField.objects.aget(id=context.chat_data["element"])
|
||||
field = await BaseCustomField.objects.aget(id=element.field_id)
|
||||
|
||||
|
@ -299,19 +303,15 @@ class TgBot:
|
|||
|
||||
await element.asave()
|
||||
|
||||
await update.message.reply_markdown_v2(
|
||||
(
|
||||
f"Инвентаризация `{inv.name}` от `{inv.created_at.strftime('%x')}`\n"
|
||||
f"Количество ТМЦ {await inv.tmc.acount()}\n\n"
|
||||
f"Название ТМЦ `{tmc.name}`\n"
|
||||
f"Элемент `{field.name}`\n"
|
||||
f"Данные загружены"
|
||||
),
|
||||
reply_parameters=ReplyParameters(message_id=update.message.message_id),
|
||||
reply_markup=ReplyKeyboardRemove(),
|
||||
)
|
||||
context.chat_data["element"] = element.id
|
||||
context.chat_data["step"] = "add_element_data"
|
||||
empty_fields = await tmc_element.field.filter(text=None).acount()
|
||||
logger.info(empty_fields)
|
||||
if empty_fields > 0:
|
||||
context.chat_data["step"] = "add_tmc"
|
||||
await self.inv(update, context)
|
||||
else:
|
||||
context.chat_data["step"] = "name"
|
||||
await self.inv(update, context)
|
||||
|
||||
else:
|
||||
logger.info(update.message.entities)
|
||||
logger.info(f"no step for update {update}")
|
||||
|
|
|
@ -7,7 +7,7 @@ from rest_framework.response import Response
|
|||
|
||||
from .tgbot import TgBot
|
||||
from .apps import TgBotUpdater
|
||||
from .models import TgItem
|
||||
from .models import TgItem, TmcElement, TmcField
|
||||
from .serializers import TgItemSerializer
|
||||
|
||||
import logging
|
||||
|
@ -18,7 +18,18 @@ logger = logging.getLogger("root")
|
|||
class TgItemViewSet(viewsets.ModelViewSet):
|
||||
queryset = TgItem.objects.all()
|
||||
serializer_class = TgItemSerializer
|
||||
http_method_names = ["post"]
|
||||
http_method_names = ["post", "get"]
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
queryset = TgItem.objects.all()
|
||||
serializer = TgItemSerializer(queryset, many=True)
|
||||
|
||||
inv = TgItem.objects.get(id='73e9fc87-a006-4c53-b3ee-39da6c79dbb5')
|
||||
el = inv.tmc.get(id=58)
|
||||
f= el.field.filter(text__isnull=True)
|
||||
logger.info(f[0].field)
|
||||
# fields = TmcField.objects.filter
|
||||
return Response(serializer.data)
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
TgBotUpdater.my_queue.put(
|
||||
|
@ -26,4 +37,3 @@ class TgItemViewSet(viewsets.ModelViewSet):
|
|||
)
|
||||
return Response({"result": "ok"})
|
||||
# return super().create(request, *args, **kwargs)
|
||||
|
||||
|
|
Loading…
Reference in New Issue