sedovalx / taxi

6 stars 3 forks source link

Приостановка аренды из кассовой формы #89

Closed sedovalx closed 9 years ago

sedovalx commented 9 years ago

В кассовой форме нужна кнопка приостановки аренды. Кнопка должна быть активной только для строк с арендой в активном состоянии. При нажатии на кнопку нужно по id подгружать аренду и менять ее статус на "Приостановлено", после чего сохранять аренду. Уходить из списка в другой маршрут не нужно. Визуально нажатие на кнопку должно приводить просто к смене статуса в выбранной строке списка. Вопрос в том, как это правильно сделать. У нас есть модель cashier-list, но ее нельзя сохранять - ее можно только читать с сервера. Можно попробовать на клиенте просто поменять свойство status у строки списка (тип cashier-list). Без сохранения.

hodkovdd commented 9 years ago

Добавлю, что интервал на который выбранная аренда переводится в состояние "Приостановлена" - до следующего кассового дня. Как она получается описано здесь: https://github.com/sedovalx/taxi/issues/92 После чего Аренда должна возвращаться в состояние Активна.

sedovalx commented 9 years ago

Почему приостановка только по следующего кассового дня? Каждый день заново продлевать приостановку? У нас списания тарифа по каждой активной минуте. Т.е., если кто-то забыл на следующий день приостановить аренду повторно, то водителю накапает. Разве это удобно вообще?

hodkovdd commented 9 years ago

@sedovalx Давай разберемся. Если рассмотреть идеальную ситуацию: Кассир каждый раз начинает кассовый день вовремя и выбирает правильное кол-во дней аванса:

27

Почему приостановка только до следующего кассового дня? Водителям разрешается брать выходные только на один такой период. Если больше машину надо отдавать в работу. По хорошему тут нужно сделать какую то сигнализацию, что мол приостановка закончена, что делать? Но это тебе оценить надо, по трудоемкости как оно, и может на потом оставить.

sedovalx commented 9 years ago

Ну хз, сделать фильтр в кассовой форме по статусу аренды, чтобы можно было сразу увидеть все приостановленные. Вряд ли их будет прям так много, что руками долго будет сменить их статус назад на "Активные", если день прошел. Это вместо того, чтобы создавать неочевидное для пользователя поведение, когда программ что-то там под капотом решает за него.

sedovalx commented 9 years ago

Входит в план-минимум #95

hodkovdd commented 9 years ago

@Argelein Залог не должен быть редактируемым, он задается только в момент инициализации в мастере создания Аренды, а сейчас его можно менять: 36

kirzas commented 9 years ago

@hodkoff2 если я про залог исправлю, можно задачу закрыть? :)

@sedovalx поменять значение в строке я смогу, а на сервер чтобы ушло ты сам сделаешь? иначе даже при переходе из этого маршрута и при возврате к нему, значение вернется обратно, насколько я понимаю

sedovalx commented 9 years ago

@Argelein поясни, я не понял вопроса.

kirzas commented 9 years ago

@sedovalx @hodkoff2 сделал, можно посмотреть, что я имел ввиду кнопка меняет состояние, но если я нажму F5, то сосотояние вернется обратно, т.к. меняется значение только в таблице и никуда не сохраняется.

Я не очень понимаю ,что нужно сделать дальше. Могу попробовать при нажатии кнопки добавить примерно такие действия:

  1. по id получить rent из store
  2. изменить у него статус
  3. записать в сторе

Так нужно сделать?

sedovalx commented 9 years ago

@Argelein да, все верно.

kirzas commented 9 years ago

@sedovalx сделал, что на сервер уходит. проблема такая: после смены состояния аренды, кнопка остается старая (т.е. даже если я сменил состояние с Приостановлено на Активно, то кнопка остается Возобновить). Можно посмотреть, как выглядит. Я могу предложить решить проблему переходом по маршруту, но это не есть хорошо, мне кажется, а как по-другому, пока не додумался.

sedovalx commented 9 years ago

Меняй статус аренды и для объекта cashier-list в списке. В store сохранять это изменение не нужно, это только для обновления списка. Попробуй так.

kirzas commented 9 years ago

@sedovalx Я так и делаю. Это не помогает. Видимо надо как-то заставить кнопку перерасчитать...

sedovalx commented 9 years ago

Почитай про обновление данных в ember-table. Не знаю, поддерживает ли она перерисовку при изменении данных. Если да, то можно попробовать инвалидировать модель без перехода по маршруту.

kirzas commented 9 years ago

@sedovalx @hodkoff2 пока сделал с инвалидированием :) все ок, только вся страница перезагружается. предлагаю пока так оставить.

sedovalx commented 9 years ago

@Argelein что-то ты странное написал. Давай начнем с того, что у нас страница не перезагружается никогда, у нас Single Page Application. html на странице может изменяться в результате применения того или иного шаблона при переходе по маршрутам, но страница не перезагружается. Давай различать понятия. При инвалидировании не происходит перехода по маршруту, соответственно шаблон страницы не должен перезагружаться. Или ты сделал переход по маршруту?

kirzas commented 9 years ago

@sedovalx не делал переход. перезагружается только таблица, я неправильно написал. т.е. крутится кружок загрузки вместо таблицы и потом снова таблица рисуется.

kirzas commented 9 years ago

и кстати нифига не все ок, все тоже самое с кнопкой осталось..

kirzas commented 9 years ago

@hodkoff2 @sedovalx йохохо! все работает :)

sedovalx commented 9 years ago

:+1: хорошо сделано