Значит сделал я все так, как там описал. И вроде бы счастье. Но не могу же как нормальный человек, вечером оставляю комп включенным (сон), чтобы утром продолжить работу. И вот. Весь день работал с этой страницей с выставленным периодом “Последние 30 дней” например с 15.06 по 15.07. Эта страница и осталась открытой. На следующий день (16.07) прихожу, прохожу авторизацию, и понимаю, что не вижу заказов, которые точно есть! А почему? А потому, что в пикере период “Последние 30 дней” превратился в “Пользовательский” с 15.06 по 15.07. То есть определяющими стали даты периода, а не сам период?
Далее. Сегодня.
Вчера я также работал в периоде “Последние 30 дней”. Но закончил работу на другой странице. Сегодня авторизовался с переходом на страницу с пикером, и, о чудо!, период остался “Последние 30 дней”! Но на самом деле думаю тут как раз никакого волшебства - сработала та самая строчка в начале кода,
так как через запрос никакие даты не передаются, а сессия давно закончилась.
Вобщем-то, если для дашборда - пофиг, но если пользоваться пикером на других страницах - неудобство выростает до степени геморроя
Не совсем понимаю, в чем проблема. Период называется “Пользовательский” и сохраняет выбранное пользователем значение до следующего изменения этого значения.
Уточните, пожалуйста, какое поведение вы ожидаете от данного периода.
Добрый день! Период называется “Последние 30 дней”. Но почему-то в отличие от периодов “Последний месяц”, “Текущий месяц” и прочих ( когда в сессии сохраняется time_period
То есть если это все остальные периоды - в сессию пишется соответствующее значение из DateTimeHelper.
Но если это DateTimeHelper::PERIOD_MONTH_AGO_TILL_NOW - то ведет он себя как CUSTOM
Я ожидаю, что если я выбираю период “Последние 30 дней” сегодня, и сегодня он мне показывает с 3.09 по 2.10, то завтра когда я открою эту страницу, то увижу с 4.09 по 3.10. Послезавтра - с 5.09 по 4.10.
На данный момент - если сегодня я выберу период “Последние 30 дней” и период будет с 3.09 по 2.10, то завтра период так и останется с 3.09 по 2.10, только именоваться станет “Пользовательский”.
@Asya , передайте разработчикам, чтобы не ждали, когда я сам решу проблему и выложу им решение )) я не выложу
Хотел привести пример на других платформах, но что далеко ходить? мы выбираем период Сегодня, и завтра как ни странно период так и останется “Сегодня” и будет показывать текущий день, то есть завтра - завтра. Текущий месяц - аналогично. Текуший год - 31 декабря показывает выборку за весь текущий год, и вот наступает полночь, обновляем страницу, период остался “Текущий год” - и мы видим выборку за 1 января, текущего года, разумеется.
Аналогичного поведения ожидаешь от периода “Последние 30 дней”. Но нет… тут логика дала какой-то сбой. Точнее, у программиста оказался непроработанный алгоритм, и вместо того, чтобы его проработать до конца и закрыть вопрос, программмист закрыл вопрос тем, что сделал затычку из периода.
Период “Последние 30 дней” при этом является наиболее удобным периодом для работы, так как с теми же заказами имеем дело максимум в этом периоде - получение, обработка и доставка заказов очень редко занимают больше месяца. При этом период “текущий месяц” не может быть ему заменой - так первого числа каждого месяца у нас вообще не будет никаких данных на дашборде…
В конце-концов, посмотрите дашборды любого крупного маркетплейса. Везде (!) графики и данные показываются за период(ы) с возможностью переключаться между ними - последние 7, 14, 30 дней.
У CS-Cart свой путь?
Там логика такая заложена, что периоду назначается последние 30, и затем, если запрошен другой период или есть период, сохранённый в сессии - то заменяется на него.
Тут беда в том, что для периодов “последние Х дней” в сессии сохраняется не буквенное значение периода, а его значение в датах. И вот такая логика программистов и вызывает вроде законный вопрос: Почему?
Думаю тут все просто. Была задача, сделали логику, обратной связи по этой логике, скорее всего, особо не было, значит можно и не трогать. Если было бы больше обращений, переделали бы конечно. Наверное)
99% клиентов будут делать рутинные вещи и не думая, что это можно упростить.
Люди просто каждый раз делают фильтрацию по дате снова и все, знаю как люди чуть ли не с бубном танцуют порой, считая, что это нормально, хотя нужно сделать пару правок и жизнь становится проще в десятки раз.
Конечно не было, потому что дашборд тупой и абсолютно неинформативный, работать с ним невозможно, потому что не с чем, а datarange_piker как и dashboard_selected_period - используются только на дашборде.
Я вот переделал себе дашборд, и решил выбранный период использовать на нескольких разделах (дашборд, список заказов, отчеты - которые тоже переделал итд) - и вот тут то и столкнулся…
А так да, с текущим дашбордом то что только на нем используется - никому на фиг не нать
1 лайк
Большое обновление CS-Cart уже здесь
Попробуйте новую панель администратора с темной темой