6.17.2: Навигация закупки и next_show_at для товара
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 1m29s

This commit is contained in:
poignatov
2026-03-15 17:54:23 +03:00
parent 7e0f979ae3
commit 9c915d4675
5 changed files with 9 additions and 8 deletions

View File

@@ -1 +1 @@
6.17.1 6.17.2

View File

@@ -19520,8 +19520,8 @@ func (a *App) createShoppingItemHandler(w http.ResponseWriter, r *http.Request)
var itemID int var itemID int
err = a.DB.QueryRow(` err = a.DB.QueryRow(`
INSERT INTO shopping_items (user_id, board_id, author_id, name, description, group_name, volume_base, repetition_period) INSERT INTO shopping_items (user_id, board_id, author_id, name, description, group_name, volume_base, repetition_period, next_show_at)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8::interval) VALUES ($1, $2, $3, $4, $5, $6, $7, $8::interval, CURRENT_DATE)
RETURNING id RETURNING id
`, boardOwnerID, boardID, userID, strings.TrimSpace(req.Name), req.Description, req.GroupName, volumeBase, req.RepetitionPeriod).Scan(&itemID) `, boardOwnerID, boardID, userID, strings.TrimSpace(req.Name), req.Description, req.GroupName, volumeBase, req.RepetitionPeriod).Scan(&itemID)

View File

@@ -1,6 +1,6 @@
{ {
"name": "play-life-web", "name": "play-life-web",
"version": "6.17.1", "version": "6.17.2",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View File

@@ -1041,7 +1041,7 @@ function AppContent() {
} }
// Обновляем список товаров при возврате из экрана редактирования // Обновляем список товаров при возврате из экрана редактирования
if ((activeTab === 'shopping-item-form' || activeTab === 'shopping-board-form') && tab === 'shopping') { if ((activeTab === 'shopping-item-form' || activeTab === 'shopping-board-form') && (tab === 'shopping' || tab === 'purchase')) {
const savedBoardId = params.boardId || tabParams.boardId const savedBoardId = params.boardId || tabParams.boardId
if (savedBoardId) { if (savedBoardId) {
setTabParams(prev => ({ ...prev, boardId: savedBoardId })) setTabParams(prev => ({ ...prev, boardId: savedBoardId }))
@@ -1428,6 +1428,7 @@ function AppContent() {
onNavigate={handleNavigate} onNavigate={handleNavigate}
itemId={tabParams.itemId} itemId={tabParams.itemId}
boardId={tabParams.boardId} boardId={tabParams.boardId}
previousTab={previousTab}
onSaved={() => setShoppingRefreshTrigger(prev => prev + 1)} onSaved={() => setShoppingRefreshTrigger(prev => prev + 1)}
/> />
</div> </div>

View File

@@ -5,7 +5,7 @@ import SubmitButton from './SubmitButton'
import DeleteButton from './DeleteButton' import DeleteButton from './DeleteButton'
import './ShoppingItemForm.css' import './ShoppingItemForm.css'
function ShoppingItemForm({ onNavigate, itemId, boardId, onSaved }) { function ShoppingItemForm({ onNavigate, itemId, boardId, previousTab, onSaved }) {
const { authFetch } = useAuth() const { authFetch } = useAuth()
const [name, setName] = useState('') const [name, setName] = useState('')
const [description, setDescription] = useState('') const [description, setDescription] = useState('')
@@ -132,7 +132,7 @@ function ShoppingItemForm({ onNavigate, itemId, boardId, onSaved }) {
if (res.ok) { if (res.ok) {
onSaved?.() onSaved?.()
onNavigate('shopping', { boardId }) onNavigate(previousTab || 'shopping', { boardId })
} else { } else {
const err = await res.json() const err = await res.json()
setToastMessage({ text: err.error || 'Ошибка сохранения', type: 'error' }) setToastMessage({ text: err.error || 'Ошибка сохранения', type: 'error' })
@@ -152,7 +152,7 @@ function ShoppingItemForm({ onNavigate, itemId, boardId, onSaved }) {
const res = await authFetch(`/api/shopping/items/${itemId}`, { method: 'DELETE' }) const res = await authFetch(`/api/shopping/items/${itemId}`, { method: 'DELETE' })
if (res.ok) { if (res.ok) {
onSaved?.() onSaved?.()
onNavigate('shopping', { boardId }) onNavigate(previousTab || 'shopping', { boardId })
} else { } else {
setToastMessage({ text: 'Ошибка удаления', type: 'error' }) setToastMessage({ text: 'Ошибка удаления', type: 'error' })
setIsDeleting(false) setIsDeleting(false)