Как реализовать личную панель пользователя со страницей выполненных заданий?

Всем привет.
Имеется готовы сайт на MODX Revo.
Появилась задача, чтобы примерно 15 организаций заходили на сайт под своим логином в личную админпанель на данном сайте (1 логин на 1 организацию) и могли отмечать выполненные задания галочкой, затем нажимать на кнопку Сохранить.

Для админа должна быть создана страничка для контроля выполненных заданий этими организациями.

Я не очень опытен в подобных проектах, поэтому прошу совета как это можно реализовать и какими компонентами.

Прошу хотя бы 2-3 предложения, чтобы было понятно в какую сторону двигаться.

У меня есть идея, но из-за недостатка опыта опасаюсь навелосипедить код, с которым будет трудно работать.

Идея такая:
создаем в дереве ресурсов папку/коллекцию «Задания»
в ней создаем странички с названием организации и шаблоном, который отобразит задачи в виде списка задач, которые надо отмечать галочками
к каждой странице даем соответствующий доступ пользователя одноименной организации

Примерно так? Как сохранять страницы с выполненными задачами? Вот это не понимаю.

Буду очень рад советам!
Anton
02 декабря 2020, 12:58
modx.pro
388
+2

Комментарии: 5

Артур Шевченко
03 декабря 2020, 11:11
0
Организации должны отмечать выполненные задания на фронте или в админке?
    Anton
    03 декабря 2020, 11:13
    0
    Привет,
    Нет, только на фронте.
      Артур Шевченко
      03 декабря 2020, 12:11
      +1
      Вариант 1. Выводить на фронте список задач в виде формы с чекбоксами и через FormIt отправлять админу, а он заходит в адмику и ручками в нужном ресурсе дублирует отметки. Из плюсов этого варианта могу отметить его простоту.
      Вариант 2. Все тоже самое, но использовать в место FormIt свой сниппет (в заметке есть пример вызова), который будет делать следующее
      $resource = $modx->getObject('modResource', $_POST['id']); // получать ресурс со списком заданий.
      // задания ты будешь вероятно хранить в migx поэтому
      $tasks = json_decode($resource->getTVValue('taskList'),1);
      foreach($_POST['tasks'] as $key => $value){
      $tasks[$key]['on'] = $value; 
      }
      На фронте соответственно форма с полями
      <form class="ajax_form" method="post">
      <label>
      Задача 1
      <input type="checkbox" name="tasks[]" value="1">
      </label>
      <label>
      Задача 2
      <input type="checkbox" name="tasks[]" value="1">
      </label>
      <label>
      Задача 3
      <input type="checkbox" name="tasks[]" value="1">
      </label>
      </form>
      И в конфигурации migx должны быть как минимум два поля
      Вкладки формы
      [
        {
          "caption": "Заголовок",
          "fields": [
            {
              "field": "task",
              "caption": "Задание",
              "inputTVtype": "text"
            },
            {
              "field": "on",
              "caption": "Выполнено?",
              "inputTVtype": "checkbox",
              "inputOptionValues": "Да==1"
            }
          ]
        }
      ]
      
      Разметка колонок
      
      [{
        "header": "Задание",
        "dataIndex": "task"
      },{
        "header": "Выполнено?",
        "dataIndex": "on"
      }]
      Вариант 3. Добавить к варианту два возможность для организаций самостоятельно регистрироваться.

      P.S. Код не тестировал, написал прям тут, так что может где-то сбоить.
        Anton
        03 декабря 2020, 12:23
        0
        Артур, Большое Тебе Спасибо за подсказку и помощь!
        Со всем этим справлюсь самостоятельно. Просто не понимал как всё склеить вместе.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
5