-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Entity and interfaces for time tracker functionality #14
Comments
@orion76 Вероятно так - |
@dashiwa В Битрикс CRM это неплохо устроено:
PS.
Хотя нет, поле связи наверное не надо, правильнее добавить поле-связи с этой сущностью в сущность Задача (или любую другую) |
@orion76 Сделал. Field 1.Хранение данных пока в формате строки (были некоторе сомнения , можно доработать) Нужно подкорректировать пр, вычистить лишний коммит. Пока есть "модель" для хранения данных. |
Про сессию надо подумать. Ну вообще-то да.. удобнее было-бы, чтобы включить-отключить таймер можно было с любой страницы сайта. Тут возникает несколько нюансов-) Значит включать таймер, проще и логичнее на странице задачи. Представляю себе это так: блок таймера содержит следующие элементы:
Тогда получается структура данных таймера должна быть немного другой. И сущность по которой таймер должен вести подсчет (в данном случае Задача) тоже должна быть полем Таймера, а не наоборот Таймер - поле сущности Задача. т.е. в общих чертах так:
2.Сущность "Таймер"
|
@orion76 Дополнение Стрелочки сплошные это связи один ко многим. С черточками 1 к 1 Вместо сессии думаю можно использовать куку с идентификатором задачи и ид юзера, чтобы разные юзеры не могли перетирать статус таймера (то есть просто куку типо timer_status - ON или OFF так как она на клиенте будет а если сессия то можно и айдишник пихать и тд) так вроде поменьше сущностей будет |
кстати.. да.. про кастомное поле сущности из нескольких "суб-полей" (StartTime, BeginTime)у меня из головы вылетело-) Про куки и сессии.. Если айди и статус таймера в куках хранить, то если например будут открыты несколько страниц сайта, может оказаться так что данные кук на них будут разные (айди и статус задачи) Получается в куках можно хранить только айди сессии-) а это уже сессии-) Кстати, в drupal 8 для этого специальный сервис есть: |
Про куки и сессии - виноват , нужно базу подтянуть. |
Дальше какие подзадачи на очереди? Чтобы прямо в ишью было наглядно видно на каком этапе находиться задача, давай в топике TODO- список подзадач выводить, отсортированный по приоритетам: Например
и т.п. |
@orion76 Отличная затея.. Я видел примеры этих чекбоксов у других репозиториев |
/**
* Defines the 'timestamp' entity field type.
*
* @FieldType(
* id = "timestamp",
* label = @Translation("Timestamp"),
* description = @Translation("An entity field containing a UNIX timestamp value."),
* default_widget = "datetime_timestamp",
* default_formatter = "timestamp",
* constraints = {
* "ComplexData" = {
* "value" = {
* "Range" = {
* "min" = "-2147483648",
* "max" = "2147483648",
* }
* }
* }
* }
* )
*/
class TimestampItem extends FieldItemBase {
/**
* {@inheritdoc}
*/
public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
$properties['value'] = DataDefinition::create('timestamp')
->setLabel(t('Timestamp value'))
->setRequired(TRUE);
return $properties;
} |
т.е. блок с кнопкой и таймером.
нажал Старт создалась сущность "Диапазон" с временем начала отсчета
нажал Стоп - в сущность Диапазон добавилось время конца отсчета и она сохранилась в БД.
The text was updated successfully, but these errors were encountered: