- Необходимо скачать и установить интерпретатор Python3
- Лучше всего это сделать Здесь
- Скачать архивом из ветки
master
- Распаковать в любой удобной директории
- Для удобства можно создать ярлык файла
main.pyw
и переместить на рабочий стол, переименовать по усмотрению - Если появится диалог "Открыть с помощью", надо найти и выбрать
pythonw.exe
, он находится в каталоге, куда устанавливался Python - Там, куда устанавливалась рассадка, есть папка
samples
. В этой папке можно посмотреть образец файла с настроками и аудиториями (settings.xlsx
) - Скопировать
settings.xlsx
куда угодно. Заполнить этот файл в соответствии с необходимыми задачами.- Допустимый текст ячеек для карты мест аудиторий {Место, Не Место, Проход}
Не Место
учитывается при нумерации мест, но не участвует в рассадке. Так можно обозначать искусственные проходы или сломанные места
- Допустимый текст ячеек для карты мест аудиторий {Место, Не Место, Проход}
- При первом запуске программы будет диалог, спрашивается, где находится файл с настройками. На предыдущем шаге он и заполнялся, надо его найти и указать.
- После закрытия программы состояние сохранится в папку
%USERPROFILE%\.rassadka
под названиемcontroller.pkl
- Последующие запуски будут происходить из этого загрузочного файла.
- После закрытия программы состояние сохранится в папку
МЕНЮ+Загрузки---+Загрузить Участников
| +Загрузить Emails
| +Добавить Аудиторию
| +Очистить Загруженных
|
+Выгрузки---+Сравнение
| +На Стенд
| +Полная выгрузка
| +Раздатка
| +Карты--------------+Карта с классами
| | +Карта с местами
| |
| +Аудитории----------+в txt
| +в Excel
|
+Волшебство-+Рассадить
+Закрепить на ключ--+всех
| +по email
|
+Открепить от ключа-+по ключу
| +по email
|
+Отметка о прибытии
+Удалить------------+по местам
| +по email
| +всех
|
+Опасно-------------+Обновить-------+по местам
| +по email
|
|Очень опасно---+Удалить загрузочный файл
+Удалить аудиторию
После первой загрузки будет примерно такой экран:
TODO: уже не такой
TODO: объяснить тонкости связанные с загружено: бла бла
Эта секция не вносит опасных необратимых изменений в работу программы. Можно смело использовать любые функции
-
Входной формат:
*.xlsx
- Столбцы:
email|Фамилия|Имя|Отчество|Город|Школа|Класс|Команда{|Аудитория|Ряд|Место}
- Порядок столбцов значения не имеет
В фигурных скобках указаны необязательные входные столбцы. Если они содержатся, то обязательно все.
- Столбцы:
-
Формат данных:
email
: текстовый, там априори уникальные значения для каждого участника.Фамилия|Имя|Отчество|Город|Школа
: тексовыйКоманда
: "и" (индивидуал) или уникальный номер командыКласс
: числовой форматАудитория|Ряд|Место
: числовой формат
Комментарий:- При несоблюдении формата данных скорее всего будут странные ошибки в процессе работы программы.
-
Результат:
- Будет установлен режим
-input-
или-input/edit-
, если добавить стобцыАудитория|Ряд|Место
- Обновится информация по загруженным
- Будет установлен режим
-
Входной формат:
*.xlsx
- Столбцы:
email[|...|...]
В квадратных скобках необязательные входные столбцы, троеточие = любое значение
- Только один столбец является обязательным
- Столбцы:
-
Формат данных:
email
: текстовый, там априори уникальные значения для каждого участника.
-
Результат:
- Загрузится только столбец с email
- Будут доступны операции связанные исключительно с email, поскольку не важны другие поля то доступ у функциям зависит только от того загружены они или нет
- В информации по загруженным появится количество загруженных email
TODO: подробнее про концепцию
-
Входной формат:
*.xlsx
Вероятно, настройки аудитории уже заполнялись перед первым запуском и в этой книге excel есть страницы с аудиториями. Можно просто скопировать этот лист в ковую книгу excel и там внести необходимые изменения. Важно учесть, что имена аудиторий должны быть уникальными. Если имя аудитории повторяется, то она загружена не будет и предупреждения не возникнет, это сделано для того, чтобы можно было править исходную загрузочную книгу excel(например, добавив новый лист) и передавать ее в качестве файла для загрузки новых аудиторий.
-
Комментарий:
- Подробности заполнения доступны непосредственно в файле образце, там же указаны допустамые значения
- На аудиторной странице будет несколько табличек: настройки, близость для класса, *близость для школы, карта. Они обозначены тегами около диапазона settings, klass, school, seats соответственно. У настроек есть свои подтеги. В общем теги менять категорически запрещено. Если же по какой-то причине какого-то тега не будет найдено, то будет ошибка, в ее описании можно будет узнать подробности.
- Заполняя матрицы близости или карту мест, необходимо соблюдать условные обозначения: Место, Проход, Участник, Близко, Далеко с учетом регистра. При обраружении ошибки в заполнении будет сообщение с более подробным описанием.
-
Результат:
- При успешной загрузке будет добавлена новая аудитория, доступная для использования и рассадки
- Результат:
- При нажатии удаляет всех загруженных(Участников и Emails), обнуляет статус в
-None-
- При нажатии удаляет всех загруженных(Участников и Emails), обнуляет статус в
##Волшебство Все, что делается здесь, изменяет состояние рассадки необратимо. Особо опасные при невнимательном обращении функции вынесены во вкладку "Опасно".
Все действия выполняются до первой ошибки. К примеру, если действие для N человек вызвало ошибку на последнем, то действие будет применено ко всем, кроме этого последнего человека.
- Необходимые условия: режим
input
- Действие:
- Случайным образом рассаживает участников согласно указанным настройкам.
- Примечание:
- при нехватке мест, оставляет уже рассаженных на своих местах и выдает сообщение об ошибке.
TODO: тонкость с командами и настройками
TODO: еще подробнее про концепцию
Иногда полезно зафиксировать людей, чтобы случайно/специально их не удалить с мест. Примером такого случая может служить этап отправления участников на бейджики, поскольку печатаются они вместе с местами, то пересаживать участников нельзя. При досадке могут возникнуть неожиданности и потребуется удалить только вновь посаженных, тогда можно смело удалять с помощью "Удалить всех".
-
по ключу
-
по email
Возможно, не нужно закреплять на ключ всех, тогда надо использовать эту функцию
- Необходимые условия: загружены email
- Действие:
- Вызывается диалог, где надо ввести ключ. При подтверждении все, кто без ключа, закрепляются на ключ.
- по ключу
- Необходимые условия: нет
- Действие
- Вызывается диалог, где надо ввести ключ. При подтверждении все, кто с этим ключем, открепляются на ключ.
- Если ключ неверный, то будет сообщение об ошибке
- После успешного открепления информация на главной панели обновится.
- по email
Возможно, не нужно закреплять на ключ всех, тогда надо использовать эту функцию
- Необходимые условия: загружены email
- Действие:
- Диалога не вызывается, предполагается, что действие вполне осмысленно и открепляются только те, чьи email в списке
- Примечание: Поскольку действие вполне осмысленно, то будет ошибкой откреплять email не сидящего человека. Я считаю, что такое действие должно быть результатом работы с таблицой полной выгрузки, и проблем не должно возникнуть
- Необходимые условия: загружены email
- Действие:
- Все, указанные в списке закрепляются на ключ "arrival"(без перезаписи ключа) и получают отметку о прибытии, которая видна в выгрузках
- Примечание: Обычно список пришедших приходит извне, напримет Timepad, поэтому, "не сидящие" email игнорируются
TODO: рассказать получше про взаимодействие с ключами
- по местам
- Необходимые условия: режим
edit
- Действие:
- Удаляет всех сидящих на тех местах, что и загруженные
- Примечание:
- Все эти действия довольно опасные, поэтому тут все строго. Места доступны из полной выгрузки, там указан ключ, будет ошибкой удалять человека, который под ключем. если очень хочется, можно сначала открепить партию от ключа по email например, просто загрузив этот список как email
- Необходимые условия: режим
- по email
- Необходимые условия: загружены email
- Действие:
- Удаляет всех сидящих с теми email, что в подгруженных email.
- Примечание:
- Тут все тоже строго, если email под ключем или не сидит, это считается ошибкой
- всех
- Необходимые условия: нет
- Действие:
- Удаляет всех людей без ключей
- Примечание
- Довольно опасное действие, но применяется, например, если рассадка пошла косяком, мест не хватило, Луна не в той фазе и тд...
Эти действия я считаю довольно опасными, поскольку при неаккуратном обращении они могут убить готовую рассадку даже с ключами
- по местам
- Необходимые условия: режим
edit
- Действие:
- Появляется диалог, который спрашивает, игнорировать ли ключи, в зависимости от этого определяется уровень доступа. Вся информация, которая находится у подгруженных кладется на те места, которые указаны. Если место под ключем, то все зависит от уровня доступа.
- Примечание:
- Это, например, полезно при исправлении незначительных опечаток у сидящих. Но если изменения радикальны(изменение статуса с индивидуала на командника), то использование этого инструмента влечет фундаментальную ошибку в рассадке.
- Необходимые условия: режим
- по email
- Необходимые условия: режим
input
- Действие:
- Появляется диалог, который спрашивает, игнорировать ли ключи, в зависимости от этого определяется уровень доступа. Вся информация, которая находится у подгруженных кладется в соответствие с email, которые указан. Если место под ключем, то все зависит от уровня доступа.
- Примечание:
- Обращаю внимание, что здесь не нужны места, однако все люди должны сидеть, иначе ошибка. Остальное точно так же как и по местам
- Необходимые условия: режим
Здесь всего две функции, при невнимательном обращении они влекут полный провал.
- Необходимые условия: нет
- Действие:
- Появляется диалог, спрашивающий имя аудитории. Далее полностью удаляет аудиторию, включая людей, которые там сидят!
- Примечание:
- Комментарий излишен
- Необходимые условия: нет
- Действие:
- После закрытия рассадки будет удален загрузочный файл со всей-всей хранящейся информацией, далее будет ситуация первого запуска:)
- Примечание:
- Комментарий излишен
TODO: написать про новые функции
Эта секция меню не вносит изменений в состояние рассадки.
Открывает диалог
- Выгрузить загруженных (несовпадения) - это те загруженные, чьи email при сопоставлении сидящие-загруженные совпадают, но не совпадают остальные данные(ФИО, Школа, Класс, Город, Команда)
- Выгрузить сидящих (несовпадения) - это те сидящие, чьи email при сопоставлении сидящие-загруженные совпадают, но не совпадают остальные данные(ФИО, Школа, Класс, Город, Команда)
- Выгрузить не сидящих - это те загруженные, чьи email не имеются у сидящих. Важно: Если кто-то поменял email, то он попадет в этот список, хотя сидит.
Открывает диалог для сохранения файла вида
Открывает диалог для сохранения файла вида
Открывает диалог для сохранения файла вида(там для каждой аудитории)
Открывает диалог для сохранения файла вида(там для каждой аудитории)
TODO: уже отличаются
Открывает диалог для сохранения файла вида
Плюсики - это те, кто еще и прибыл
Инфа в этой таблице очень полезна при оценке ситуации перед командным этапом, когда надо равномерно распределять команды.
Можно еще выгрузить в текстовом формате(тоже для каждой аудитории в одном файле)
Аудитрия [+] 407
Доступность: K[+], И[-]
Всего мест: 56 | 8 класс[+]:8 (2)
Посажено: 53 (37 )| 9 класс[+]:10 (9)
Из них командных: 53 (37 )| 10 класс[+]:29 (21)
Всего команд: 13 (7 )| 11 класс[+]:6 (5)
- В скобках пришедшие
После нажатия появится новое окно. Там есть навигация стрелочками на клавиатуре или выбор по списку.
Аудитории
"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, который находится в каталоге программы
Внесенные изменения применяются только после нажатия кнопки "Сохранить" и проявляются лишь при досадке.