Skip to content

Latest commit

 

History

History
327 lines (261 loc) · 25.3 KB

MANUAL.md

File metadata and controls

327 lines (261 loc) · 25.3 KB

Установка

  1. Необходимо скачать и установить интерпретатор Python3
    • Лучше всего это сделать Здесь
  2. Скачать архивом из ветки master
  3. Распаковать в любой удобной директории
  4. Для удобства можно создать ярлык файла main.pyw и переместить на рабочий стол, переименовать по усмотрению
  5. Если появится диалог "Открыть с помощью", надо найти и выбрать pythonw.exe, он находится в каталоге, куда устанавливался Python
  6. Там, куда устанавливалась рассадка, есть папка samples. В этой папке можно посмотреть образец файла с настроками и аудиториями (settings.xlsx)
  7. Скопировать settings.xlsx куда угодно. Заполнить этот файл в соответствии с необходимыми задачами.
    • Допустимый текст ячеек для карты мест аудиторий {Место, Не Место, Проход}
      • Не Место учитывается при нумерации мест, но не участвует в рассадке. Так можно обозначать искусственные проходы или сломанные места
  8. При первом запуске программы будет диалог, спрашивается, где находится файл с настройками. На предыдущем шаге он и заполнялся, надо его найти и указать.
    • После закрытия программы состояние сохранится в папку %USERPROFILE%\.rassadka под названием controller.pkl
    • Последующие запуски будут происходить из этого загрузочного файла.

Структура меню

МЕНЮ+Загрузки---+Загрузить Участников
    |           +Загрузить Emails
    |           +Добавить Аудиторию
    |           +Очистить Загруженных
    |
    +Выгрузки---+Сравнение
    |           +На Стенд
    |           +Полная выгрузка
    |           +Раздатка
    |           +Карты--------------+Карта с классами
    |           |                   +Карта с местами
    |           |
    |           +Аудитории----------+в txt
    |                               +в Excel
    |                        
    +Волшебство-+Рассадить
                +Закрепить на ключ--+всех
                |                   +по email
                |
                +Открепить от ключа-+по ключу
                |                   +по email
                |
                +Отметка о прибытии
                +Удалить------------+по местам
                |                   +по email
                |                   +всех
                |
                +Опасно-------------+Обновить-------+по местам
                                    |               +по email
                                    |                                           
                                    |Очень опасно---+Удалить загрузочный файл
                                                    +Удалить аудиторию

Инструкция

После первой загрузки будет примерно такой экран:

TODO: уже не такой

TODO: объяснить тонкости связанные с загружено: бла бла

img1

Загрузки

Эта секция не вносит опасных необратимых изменений в работу программы. Можно смело использовать любые функции

Загрузить Участников

  • Входной формат: *.xlsx

    • Столбцы: email|Фамилия|Имя|Отчество|Город|Школа|Класс|Команда{|Аудитория|Ряд|Место}
      • Порядок столбцов значения не имеет

    В фигурных скобках указаны необязательные входные столбцы. Если они содержатся, то обязательно все.

  • Формат данных:

    • email: текстовый, там априори уникальные значения для каждого участника.
    • Фамилия|Имя|Отчество|Город|Школа: тексовый
    • Команда: "и" (индивидуал) или уникальный номер команды
    • Класс: числовой формат
    • Аудитория|Ряд|Место: числовой формат
      Комментарий:
    • При несоблюдении формата данных скорее всего будут странные ошибки в процессе работы программы.
  • Результат:

    • Будет установлен режим -input- или -input/edit-, если добавить стобцы Аудитория|Ряд|Место
    • Обновится информация по загруженным

Загрузить Emails

  • Входной формат: *.xlsx

    • Столбцы: email[|...|...]

    В квадратных скобках необязательные входные столбцы, троеточие = любое значение

    • Только один столбец является обязательным
  • Формат данных:

    • email: текстовый, там априори уникальные значения для каждого участника.
  • Результат:

    • Загрузится только столбец с email
    • Будут доступны операции связанные исключительно с email, поскольку не важны другие поля то доступ у функциям зависит только от того загружены они или нет
    • В информации по загруженным появится количество загруженных email

TODO: подробнее про концепцию

Добавить Аудиторию

  • Входной формат: *.xlsx

    Вероятно, настройки аудитории уже заполнялись перед первым запуском и в этой книге excel есть страницы с аудиториями. Можно просто скопировать этот лист в ковую книгу excel и там внести необходимые изменения. Важно учесть, что имена аудиторий должны быть уникальными. Если имя аудитории повторяется, то она загружена не будет и предупреждения не возникнет, это сделано для того, чтобы можно было править исходную загрузочную книгу excel(например, добавив новый лист) и передавать ее в качестве файла для загрузки новых аудиторий.

  • Комментарий:

    • Подробности заполнения доступны непосредственно в файле образце, там же указаны допустамые значения
    • На аудиторной странице будет несколько табличек: настройки, близость для класса, *близость для школы, карта. Они обозначены тегами около диапазона settings, klass, school, seats соответственно. У настроек есть свои подтеги. В общем теги менять категорически запрещено. Если же по какой-то причине какого-то тега не будет найдено, то будет ошибка, в ее описании можно будет узнать подробности.
    • Заполняя матрицы близости или карту мест, необходимо соблюдать условные обозначения: Место, Проход, Участник, Близко, Далеко с учетом регистра. При обраружении ошибки в заполнении будет сообщение с более подробным описанием.
  • Результат:

    • При успешной загрузке будет добавлена новая аудитория, доступная для использования и рассадки

Очистить загруженных

  • Результат:
    • При нажатии удаляет всех загруженных(Участников и Emails), обнуляет статус в -None-

##Волшебство Все, что делается здесь, изменяет состояние рассадки необратимо. Особо опасные при невнимательном обращении функции вынесены во вкладку "Опасно".

Общий комментарий

Все действия выполняются до первой ошибки. К примеру, если действие для N человек вызвало ошибку на последнем, то действие будет применено ко всем, кроме этого последнего человека.

Рассадить

  • Необходимые условия: режим input
  • Действие:
    • Случайным образом рассаживает участников согласно указанным настройкам.
  • Примечание:
    • при нехватке мест, оставляет уже рассаженных на своих местах и выдает сообщение об ошибке.

TODO: тонкость с командами и настройками

Закрепить на ключ

TODO: еще подробнее про концепцию

Иногда полезно зафиксировать людей, чтобы случайно/специально их не удалить с мест. Примером такого случая может служить этап отправления участников на бейджики, поскольку печатаются они вместе с местами, то пересаживать участников нельзя. При досадке могут возникнуть неожиданности и потребуется удалить только вновь посаженных, тогда можно смело удалять с помощью "Удалить всех".

  • по ключу

    • Необходимые условия: нет

    • Действие:

      • Вызывается диалог, где надо ввести ключ. При подтверждении все, кто без ключа, закрепляются на ключ.

      img1

      • Если закреплять не кого, то сообщения об ошибке не будет.
      • После успешного закрепления на ключ, снизу будет показано, сколько человек закрепилось

      img1

  • по email

    Возможно, не нужно закреплять на ключ всех, тогда надо использовать эту функцию

    • Необходимые условия: загружены email
    • Действие:
      • Вызывается диалог, где надо ввести ключ. При подтверждении все, кто без ключа, закрепляются на ключ.

Открепить от ключа

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

Отметка о прибытии

  • Необходимые условия: загружены email
  • Действие:
    • Все, указанные в списке закрепляются на ключ "arrival"(без перезаписи ключа) и получают отметку о прибытии, которая видна в выгрузках
  • Примечание: Обычно список пришедших приходит извне, напримет Timepad, поэтому, "не сидящие" email игнорируются

Удалить

TODO: рассказать получше про взаимодействие с ключами

  • по местам
    • Необходимые условия: режим edit
    • Действие:
      • Удаляет всех сидящих на тех местах, что и загруженные
    • Примечание:
      • Все эти действия довольно опасные, поэтому тут все строго. Места доступны из полной выгрузки, там указан ключ, будет ошибкой удалять человека, который под ключем. если очень хочется, можно сначала открепить партию от ключа по email например, просто загрузив этот список как email
  • по email
    • Необходимые условия: загружены email
    • Действие:
      • Удаляет всех сидящих с теми email, что в подгруженных email.
    • Примечание:
      • Тут все тоже строго, если email под ключем или не сидит, это считается ошибкой
  • всех
    • Необходимые условия: нет
    • Действие:
      • Удаляет всех людей без ключей
    • Примечание
      • Довольно опасное действие, но применяется, например, если рассадка пошла косяком, мест не хватило, Луна не в той фазе и тд...

Опасно

Эти действия я считаю довольно опасными, поскольку при неаккуратном обращении они могут убить готовую рассадку даже с ключами

Обновить

  • по местам
    • Необходимые условия: режим edit
    • Действие:
      • Появляется диалог, который спрашивает, игнорировать ли ключи, в зависимости от этого определяется уровень доступа. Вся информация, которая находится у подгруженных кладется на те места, которые указаны. Если место под ключем, то все зависит от уровня доступа.
    • Примечание:
      • Это, например, полезно при исправлении незначительных опечаток у сидящих. Но если изменения радикальны(изменение статуса с индивидуала на командника), то использование этого инструмента влечет фундаментальную ошибку в рассадке.
  • по email
    • Необходимые условия: режим input
    • Действие:
      • Появляется диалог, который спрашивает, игнорировать ли ключи, в зависимости от этого определяется уровень доступа. Вся информация, которая находится у подгруженных кладется в соответствие с email, которые указан. Если место под ключем, то все зависит от уровня доступа.
    • Примечание:
      • Обращаю внимание, что здесь не нужны места, однако все люди должны сидеть, иначе ошибка. Остальное точно так же как и по местам

Очень опасно

Здесь всего две функции, при невнимательном обращении они влекут полный провал.

Удалить аудиторию
  • Необходимые условия: нет
  • Действие:
    • Появляется диалог, спрашивающий имя аудитории. Далее полностью удаляет аудиторию, включая людей, которые там сидят!
  • Примечание:
    • Комментарий излишен
Удалить загрузочный файл
  • Необходимые условия: нет
  • Действие:
    • После закрытия рассадки будет удален загрузочный файл со всей-всей хранящейся информацией, далее будет ситуация первого запуска:)
  • Примечание:
    • Комментарий излишен

Выгрузки

TODO: написать про новые функции

Эта секция меню не вносит изменений в состояние рассадки.

Сравнение

Открывает диалог

img1

  • Выгрузить загруженных (несовпадения) - это те загруженные, чьи email при сопоставлении сидящие-загруженные совпадают, но не совпадают остальные данные(ФИО, Школа, Класс, Город, Команда)
  • Выгрузить сидящих (несовпадения) - это те сидящие, чьи email при сопоставлении сидящие-загруженные совпадают, но не совпадают остальные данные(ФИО, Школа, Класс, Город, Команда)
  • Выгрузить не сидящих - это те загруженные, чьи email не имеются у сидящих. Важно: Если кто-то поменял email, то он попадет в этот список, хотя сидит.

На Стенд

Открывает диалог для сохранения файла вида

img1

Полная выгрузка

Открывает диалог для сохранения файла вида

img1

Раздатка

Открывает диалог для сохранения файла вида(там для каждой аудитории)

img1

Карты

Открывает диалог для сохранения файла вида(там для каждой аудитории)

TODO: уже отличаются

  • С классами

    img1

  • C местами

    img1

Аудитории

Открывает диалог для сохранения файла вида

img1 Плюсики - это те, кто еще и прибыл

Инфа в этой таблице очень полезна при оценке ситуации перед командным этапом, когда надо равномерно распределять команды.

Можно еще выгрузить в текстовом формате(тоже для каждой аудитории в одном файле)

Аудитрия [+] 407
Доступность: K[+], И[-]
Всего мест:         56      | 8  класс[+]:8  (2)
Посажено:           53 (37 )| 9  класс[+]:10 (9)
Из них командных:   53 (37 )| 10 класс[+]:29 (21)
Всего команд:       13 (7  )| 11 класс[+]:6  (5)
  • В скобках пришедшие

Кнопка с настройками

После нажатия появится новое окно. Там есть навигация стрелочками на клавиатуре или выбор по списку.

img1

img1

img1

Расшифровка обозначений:

Аудитории

"available"     Доступность аудитории
"class_8"       Доступность для 8 класса
"class_9"       Доступность для 9 класса
"class_10"      Доступность для 10 класса
"class_11"      Доступность для 11 класса
"individual"    Доступность для индивидуальных участников
"command"       Доступность для командных участников

Общие настройки

"cl8_9"         Могут ли участники из 8 и 9 класса сидеть вместе?
"cl8_10"        Могут ли участники из 8 и 10 класса сидеть вместе?
"cl8_11"        Могут ли участники из 8 и 11 класса сидеть вместе?
"cl9_10"        Могут ли участники из 9 и 10 класса сидеть вместе?
"cl9_11"        Могут ли участники из 9 и 11 класса сидеть вместе?
"cl10_11"       Могут ли участники из 10 и 11 класса сидеть вместе?
"one_school"    Могут ли участники из одной школы сидеть вместе?
"one_town"      Могут ли участники из одного города(кроме Москвы) сидеть вместе?
"com_in_one"    Все команды должны быть в одной аудитории?    
"max_compart"   Какая мксимальная доля командных участников может быть в аудитории?
"debug_mode"    Если отмечено, то последняя ошибка будет записана в файл, ~/.rassadka/debug.txt, который находится в каталоге программы

Внесенные изменения применяются только после нажатия кнопки "Сохранить" и проявляются лишь при досадке. img1