]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Правки по приоритету и добавление участников
authorvladfo <fvv2011@gmail.com>
Fri, 20 Sep 2024 09:28:24 +0000 (12:28 +0300)
committervladfo <fvv2011@gmail.com>
Fri, 20 Sep 2024 09:28:24 +0000 (12:28 +0300)
erp24/records/Task.php
erp24/views/crud/task/_form.php
erp24/views/crud/task/view.php
erp24/views/task/four-columns.php

index d3253e0fdce82b59d8d91162dd325f2b051a3b55..e8135cc72dffd028cfadcda7c7ecc236573a7f16 100644 (file)
@@ -233,6 +233,35 @@ class Task extends \yii\db\ActiveRecord
         return $this->hasMany(Comment::class, ['entity_id' => 'id'])->onCondition(['=', 'entity', 'task']);
     }
 
+    public static function getPriorities()
+    {
+        return [
+            0 => ['label' => 'Очень низкий', 'color' => '#e0f7fa'],  // светло-голубой
+            1 => ['label' => 'Низкий', 'color' => '#b2ebf2'],        // голубой
+            2 => ['label' => 'Терпит', 'color' => '#80deea'],        // бирюзовый
+            3 => ['label' => 'Можно не спешить', 'color' => '#4dd0e1'], // яркий голубой
+            4 => ['label' => 'Пониженный', 'color' => '#26c6da'],    // более насыщенный бирюзовый
+            5 => ['label' => 'Обычный', 'color' => '#00acc1'],       // темно-бирюзовый
+            6 => ['label' => 'Повышенный', 'color' => '#0097a7'],    // темный циан
+            7 => ['label' => 'Ниже среднего', 'color' => '#00838f'], // темный циан
+            8 => ['label' => 'Средний', 'color' => '#006064'],       // темный бирюзовый
+            9 => ['label' => 'Высокий', 'color' => '#ffccbc'],       // светло-оранжевый
+            10 => ['label' => 'Самая важная', 'color' => '#ff5252'], // красный
+        ];
+    }
+
+    public function getPriorityLabel()
+    {
+        $priorities = self::getPriorities();
+        return $priorities[$this->prioritet]['label'] ?? 'Не указан';
+    }
+
+    public function getPriorityColor()
+    {
+        $priorities = self::getPriorities();
+        return $priorities[$this->prioritet]['color'] ?? '#ffffff'; // по умолчанию белый цвет
+    }
+
     public function validateSaveAndManageImages() {
         if ($this->validate()) {
             $this->save();
index acaea75cc3f796b3e0b19db7b9cd1b8555b70fcf..3bc56f3758458c51e657e8790c79c554e38e87f6 100755 (executable)
@@ -116,6 +116,26 @@ $this->registerJsFile('/js/crud/task/update.js', ['position' => \yii\web\View::P
         )->label(false); ?>
     </div>
 
+        <div class="form-group">
+            <label>Приоритет</label>
+            <?= $form->field($model, 'prioritet')->dropDownList(
+                [
+                    0 => 'Очень низкий',
+                    1 => 'Низкий',
+                    2 => 'Терпит',
+                    3 => 'Можно не спешить',
+                    4 => 'Пониженый',
+                    5 => 'Обычный',
+                    6 => 'Повышенный',
+                    7 => 'Ниже среднего',
+                    8 => 'Средний',
+                    9 => 'Высокий',
+                    10 => 'Самая важная'
+                ],
+                ['prompt' => 'Выберите приоритет'] // Опционально: можно добавить "пустую" опцию
+            )->label(false); ?>
+        </div>
+
     <div class="form-group">
         <label>Продолжительность</label>
         <?= $form->field($model, 'duration')->textInput(['type' => 'number', 'disabled' => !$canUpdateStatusAndDuration])->label(false); ?>
@@ -137,7 +157,7 @@ $this->registerJsFile('/js/crud/task/update.js', ['position' => \yii\web\View::P
             'template' => '{input}',
             'clientOptions' => [
                 'autoclose' => true,
-                'format' => 'Y-m-d H:i',
+                'format' => 'yyyy-mm-dd hh:ii',
                 'todayBtn' => true
             ],
         ])->label(false); ?>
@@ -151,7 +171,7 @@ $this->registerJsFile('/js/crud/task/update.js', ['position' => \yii\web\View::P
             'template' => '{input}',
             'clientOptions' => [
                 'autoclose' => true,
-                'format' => 'Y-m-d H:i',
+                'format' => 'yyyy-mm-dd hh:ii',
                 'todayBtn' => true
             ],
         ])->label(false); ?>
index 56cffdea51e147c1f7263ac4c435c4d6e5fa89b2..a4b43a952d6b3ee7973ab1974d09dc3c5e6b6ce0 100755 (executable)
@@ -1,5 +1,6 @@
 <?php
 
+use yii\helpers\ArrayHelper;
 use yii\helpers\Html;
 use yii\helpers\Url;
 use yii\widgets\DetailView;
@@ -115,7 +116,9 @@ $this->registerJsFile('/js/crud/task/update.js', ['position' => \yii\web\View::P
                 </tr>
                 <tr>
                     <td><strong>Приоритет:</strong></td>
-                    <td><?= Html::encode($model->prioritet) ?></td>
+                    <td style="background-color: <?= Html::encode($model->getPriorityColor()) ?>;">
+                        <?= Html::encode($model->getPriorityLabel()) ?>
+                    </td>
                 </tr>
                 <tr>
                     <td><strong>Исполнитель:</strong></td>
@@ -129,6 +132,36 @@ $this->registerJsFile('/js/crud/task/update.js', ['position' => \yii\web\View::P
                     <td><strong>Создатель:</strong></td>
                     <td><?= Html::encode($model->createdBy->name ?? '---') ?></td>
                 </tr>
+                <!-- Участники задачи -->
+                <tr>
+                    <td><strong>Участники:</strong></td>
+                    <td>
+                        <?php
+                        $taskUsers = ArrayHelper::map($model->users, 'id', 'name'); // Получаем список участников
+                        if (!empty($taskUsers)) {
+                            echo Html::encode(implode(', ', $taskUsers)); // Выводим имена участников через запятую
+                        } else {
+                            echo '---'; // Если участников нет
+                        }
+                        ?>
+                    </td>
+                </tr>
+
+                <!-- Наблюдатели задачи -->
+                <tr>
+                    <td><strong>Наблюдатели:</strong></td>
+                    <td>
+                        <?php
+                        $taskViewers = ArrayHelper::map($model->viewers, 'id', 'name'); // Получаем список наблюдателей
+                        if (!empty($taskViewers)) {
+                            echo Html::encode(implode(', ', $taskViewers)); // Выводим имена наблюдателей через запятую
+                        } else {
+                            echo '---'; // Если наблюдателей нет
+                        }
+                        ?>
+                    </td>
+                </tr>
+
                 <tr>
                     <td><strong>Дата начала:</strong></td>
                     <td><?= DateTimeService::formatHuman($model->data_start) ?></td>
index aeba9908a3e21ab9b442a4ffd91da1949dae51c3..4580fa111ca6d1d274bb6d667b259c5dbbcf4b59 100755 (executable)
@@ -77,8 +77,7 @@ if ($filterModel->company_function_id !== '0') {
         <?php endif; ?>
     </div>
     <div class="col-4 text-end">
-        <!-- Кнопка для создания задачи -->
-        <?= Html::a('Создать задачу', ['/crud/task/create'], ['class' => 'btn btn-success', 'target' => '_blank', 'data-pjax' => '0']) ?>
+
         <!-- Кнопка для открытия модального окна -->
         <?= Html::button('Создать задачу', [
             'class' => 'btn btn-success',
@@ -109,9 +108,7 @@ $defaultFilterValues = [
 
 $form = ActiveForm::begin(['id' => 'filter-form']); ?>
 
-<?php /*PrintBlockHelper::printBlock('Группы', $form->field($filterModel, 'taskFilter')->radioList(
-        ['0' => 'Мои', '1' => 'На контроле', '2' => 'Участвую', '3' => 'Просматриваю', '4' => 'Неразобранные'],
-        ['class' => 'form-control', 'onchange' => '$("#filter-form").get(0).submit();'])->label(false)); */?>
+
 
 
    <?= $form->field($filterModel, 'taskFilter')->radioList(