add data correct
This commit is contained in:
parent
b118fb7124
commit
2f725bbfc7
|
@ -135,14 +135,19 @@ class TgBot:
|
||||||
|
|
||||||
async def add_tmc(self, update: Update, context: CallbackContext):
|
async def add_tmc(self, update: Update, context: CallbackContext):
|
||||||
query = update.callback_query
|
query = update.callback_query
|
||||||
await update.effective_message.edit_reply_markup(InlineKeyboardMarkup([]))
|
if update.callback_query:
|
||||||
await query.answer()
|
await update.effective_message.edit_reply_markup(InlineKeyboardMarkup([]))
|
||||||
|
await query.answer()
|
||||||
|
|
||||||
tmc_id = query.data.split("@")[-1]
|
tmc_id = query.data.split("@")[-1]
|
||||||
tmc = await CustomTable.objects.aget(id=tmc_id)
|
tmc = await CustomTable.objects.aget(id=tmc_id)
|
||||||
tmc_element = await TmcElement.objects.acreate(tmc=tmc)
|
tmc_element = await TmcElement.objects.acreate(tmc=tmc)
|
||||||
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
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)
|
await inv.tmc.aadd(tmc_element)
|
||||||
|
|
||||||
context.chat_data["tmc"] = tmc_element.id
|
context.chat_data["tmc"] = tmc_element.id
|
||||||
|
@ -152,17 +157,15 @@ class TgBot:
|
||||||
|
|
||||||
async def add_element(self, update: Update, context: CallbackContext):
|
async def add_element(self, update: Update, context: CallbackContext):
|
||||||
query = update.callback_query
|
query = update.callback_query
|
||||||
await update.effective_message.edit_reply_markup(InlineKeyboardMarkup([]))
|
if update.callback_query:
|
||||||
await query.answer()
|
await update.effective_message.edit_reply_markup(InlineKeyboardMarkup([]))
|
||||||
|
await query.answer()
|
||||||
|
|
||||||
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
||||||
tmc = await inv.tmc.aget(id=context.chat_data["tmc"])
|
tmc = await inv.tmc.aget(id=context.chat_data["tmc"])
|
||||||
|
|
||||||
field_id = query.data.split("@")[-1]
|
field_id = query.data.split("@")[-1]
|
||||||
field = await BaseCustomField.objects.aget(id=field_id)
|
tmc_field = await tmc.field.aget(id=field_id)
|
||||||
|
|
||||||
tmc_field = await TmcField.objects.acreate(field=field)
|
|
||||||
tmc.field.aadd(field)
|
|
||||||
|
|
||||||
context.chat_data["element"] = tmc_field.id
|
context.chat_data["element"] = tmc_field.id
|
||||||
context.chat_data["step"] = "add_element"
|
context.chat_data["step"] = "add_element"
|
||||||
|
@ -234,8 +237,9 @@ class TgBot:
|
||||||
tmc = await CustomTable.objects.aget(id=tmc_element.tmc_id)
|
tmc = await CustomTable.objects.aget(id=tmc_element.tmc_id)
|
||||||
|
|
||||||
fields = []
|
fields = []
|
||||||
async for e in tmc.fields.all():
|
async for e in tmc_element.field.filter(text=None):
|
||||||
fields.append({"name": e.name, "id": e.id})
|
f = await BaseCustomField.objects.aget(id=e.field_id)
|
||||||
|
fields.append({"name": f.name, "id": e.id})
|
||||||
keys = chunk(1, fields)
|
keys = chunk(1, fields)
|
||||||
|
|
||||||
context.chat_data["tmc"] = tmc_element.id
|
context.chat_data["tmc"] = tmc_element.id
|
||||||
|
@ -268,7 +272,6 @@ class TgBot:
|
||||||
elif current_step == "add_element":
|
elif current_step == "add_element":
|
||||||
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
||||||
tmc = await inv.tmc.aget(id=context.chat_data["tmc"])
|
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"])
|
element = await TmcField.objects.aget(id=context.chat_data["element"])
|
||||||
field = await BaseCustomField.objects.aget(id=element.field_id)
|
field = await BaseCustomField.objects.aget(id=element.field_id)
|
||||||
|
|
||||||
|
@ -288,7 +291,8 @@ class TgBot:
|
||||||
)
|
)
|
||||||
elif current_step == "add_element_data":
|
elif current_step == "add_element_data":
|
||||||
inv = await TgItem.objects.aget(id=context.chat_data["inv"])
|
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"])
|
element = await TmcField.objects.aget(id=context.chat_data["element"])
|
||||||
field = await BaseCustomField.objects.aget(id=element.field_id)
|
field = await BaseCustomField.objects.aget(id=element.field_id)
|
||||||
|
|
||||||
|
@ -298,20 +302,16 @@ class TgBot:
|
||||||
element.text = update.message.text
|
element.text = update.message.text
|
||||||
|
|
||||||
await element.asave()
|
await element.asave()
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
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"
|
|
||||||
else:
|
else:
|
||||||
logger.info(update.message.entities)
|
logger.info(update.message.entities)
|
||||||
logger.info(f"no step for update {update}")
|
logger.info(f"no step for update {update}")
|
||||||
|
|
|
@ -7,7 +7,7 @@ from rest_framework.response import Response
|
||||||
|
|
||||||
from .tgbot import TgBot
|
from .tgbot import TgBot
|
||||||
from .apps import TgBotUpdater
|
from .apps import TgBotUpdater
|
||||||
from .models import TgItem
|
from .models import TgItem, TmcElement, TmcField
|
||||||
from .serializers import TgItemSerializer
|
from .serializers import TgItemSerializer
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
@ -18,12 +18,22 @@ logger = logging.getLogger("root")
|
||||||
class TgItemViewSet(viewsets.ModelViewSet):
|
class TgItemViewSet(viewsets.ModelViewSet):
|
||||||
queryset = TgItem.objects.all()
|
queryset = TgItem.objects.all()
|
||||||
serializer_class = TgItemSerializer
|
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):
|
def create(self, request, *args, **kwargs):
|
||||||
TgBotUpdater.my_queue.put(
|
TgBotUpdater.my_queue.put(
|
||||||
Update.de_json(data=json.loads(request.body), bot=TgBot.app.bot)
|
Update.de_json(data=json.loads(request.body), bot=TgBot.app.bot)
|
||||||
)
|
)
|
||||||
return Response({"result": "ok"})
|
return Response({"result": "ok"})
|
||||||
# return super().create(request, *args, **kwargs)
|
# return super().create(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue