фиксы

This commit is contained in:
Artem Tsyrulnikov
2026-02-28 13:37:58 +03:00
parent 9c8fd68ee3
commit ffd7a7c10f
4 changed files with 28 additions and 14 deletions

View File

@@ -351,12 +351,11 @@ func (s *CreativeDetails) updateCreative(b *bot.Bot) {
log.Info().Str("creative_id", s.CreativeID).Msg("Creative updated successfully") log.Info().Str("creative_id", s.CreativeID).Msg("Creative updated successfully")
// Возвращаемся назад // Возвращаемся назад
s.CleanupMessages(b)
if s.ViewMode && s.ViewBackTo != nil { if s.ViewMode && s.ViewBackTo != nil {
// Если открыты из view mode, возвращаемся к просмотру b.SetState(s.ViewBackTo, bot.NewMessage)
b.SetState(s.ViewBackTo, bot.EditMessage)
} else if s.BackState != nil { } else if s.BackState != nil {
// Иначе возвращаемся к BackState b.SetState(s.BackState, bot.NewMessage)
b.SetState(s.BackState, bot.EditMessage)
} }
} }
@@ -372,7 +371,8 @@ func (s *CreativeDetails) deleteCreative(b *bot.Bot) {
return return
} }
s.CleanupMessages(b)
if s.BackState != nil { if s.BackState != nil {
b.SetState(s.BackState, bot.EditMessage) b.SetState(s.BackState, bot.NewMessage)
} }
} }

View File

@@ -146,6 +146,7 @@ func (e *CreativeEditorFields) CleanupMessages(b *bot.Bot) {
b.DeleteMessage(b.ChatID, *e.ControlPanelMessageID) b.DeleteMessage(b.ChatID, *e.ControlPanelMessageID)
e.ControlPanelMessageID = nil e.ControlPanelMessageID = nil
} }
b.LastMessageID = 0
} }
const mediaGroupDebounce = 2 * time.Second const mediaGroupDebounce = 2 * time.Second

View File

@@ -101,8 +101,9 @@ func (s *CreativeView) HandleCallback(b *bot.Bot, u *echotron.Update) {
switch { switch {
case data == "back": case data == "back":
s.CleanupMessages(b)
if s.BackState != nil { if s.BackState != nil {
b.SetState(s.BackState, bot.EditMessage) b.SetState(s.BackState, bot.NewMessage)
} }
case data == "rename": case data == "rename":
@@ -116,22 +117,22 @@ func (s *CreativeView) HandleCallback(b *bot.Bot, u *echotron.Update) {
s.showActionPanel(b) s.showActionPanel(b)
case data == "edit": case data == "edit":
// Переход к редактированию креатива s.CleanupMessages(b)
b.SetState(&CreativeDetails{ b.SetState(&CreativeDetails{
CreativeID: s.CreativeID, CreativeID: s.CreativeID,
ProjectID: s.ProjectID, ProjectID: s.ProjectID,
ViewMode: true, // Флаг, что мы открылись из view mode ViewMode: true,
ViewBackTo: s, // Возврат к этому экрану после сохранения ViewBackTo: s,
ProjectTitle: s.ProjectTitle, ProjectTitle: s.ProjectTitle,
BackState: s.BackState, BackState: s.BackState,
}, bot.EditMessage) }, bot.NewMessage)
case data == "toggle_tag": case data == "toggle_tag":
// Переключение тега (testing <-> production) // Переключение тега (testing <-> production)
s.toggleTag(b) s.toggleTag(b)
case data == "purchase_creative": case data == "purchase_creative":
// Переход к созданию закупа с предвыбором проекта и креатива s.CleanupMessages(b)
creativeTitle := "" creativeTitle := ""
if s.Name != nil { if s.Name != nil {
creativeTitle = *s.Name creativeTitle = *s.Name

View File

@@ -328,13 +328,25 @@ func (s *PurchaseOptionalDetails) HandleCallback(b *bot.Bot, u *echotron.Update)
if strings.HasPrefix(u.CallbackQuery.Data, "type:") { if strings.HasPrefix(u.CallbackQuery.Data, "type:") {
value := strings.TrimPrefix(u.CallbackQuery.Data, "type:") value := strings.TrimPrefix(u.CallbackQuery.Data, "type:")
// Нормализуем значение для БД // Нормализуем значение для БД
var normalized string
switch value { switch value {
case "mutual_pr": case "mutual_pr":
s.PurchaseType = "взаимный пиар" normalized = "взаимный пиар"
case "standard": case "standard":
s.PurchaseType = "стандарт" normalized = "стандарт"
} }
if s.CurrentChannel != "" {
s.PurchaseTypeByChannel[s.CurrentChannel] = normalized
} else {
s.PurchaseType = normalized
}
if s.ReturnMode != "" {
s.InputMode = s.ReturnMode
s.ReturnMode = ""
} else {
s.InputMode = "" s.InputMode = ""
}
s.CurrentChannel = ""
s.Enter(b, bot.EditMessage) s.Enter(b, bot.EditMessage)
return return
} }