Tools menu contains miscellaneous commands to help the user to modify the data effectively in various ways, such as sorting or compacting it, optimising timetables, recreating the coding system, making a feasibility check and clearing unnecessary data at once. Tools also contains selections for four special school types.

Show timetables [Ctrl+T]This window gives the user an instant access to all timetables of courses and components anywhere in the application. You can also change, copy and paste the bookings and timetable patterns like in the Timetables view, where the timetables are created and maintained, but you can navigate the weeks more easily. You can also view and set Comments to timetables. See section Show timetables.
This selection is essentially similar to the previous selection Show timetables. Initially, all slots in the timetable area are selected and a component of the room category is activated, since most users look for free resources in rooms. The user is prompted to click the View free slots button to find components, which have free slots in the selected area.
Modify collections [Ctrl+M]Here you have the option to add courses to components or components to courses even if the lectures have already been assigned to timetables. The application will find out all those additions that can be made without violating the feasibility of the timetables. You can view the possibilities from courses and components view and also find the causes why assignment of lectures in some slots is not possible. See section Modify collections.
Select rooms manually [Ctrl+R]In this selection you can associate individual timetabled lectures (slots) of courses with separate rooms (because of limited room capacity). See section Select rooms manually for details and conditions when this option is available.
If the Components window is activated, you can sort all components in ascending or descending order according to the following criteria:
You can also sort components by clicking on the title line of the component list. To change the sorting order, click twice.
If Courses or Weeks window is activated, you can sort all courses in ascending or descending order according to the following criteria:
You can sort courses by clicking on the title line of the course list. To change the sorting order, click twice.
If you select this option, you first sort the components or courses by their category and then by the selected sorting criteria. The default sorting method is sorting first by categories.
It is typical to set this option on when the Components view is active, since groups classes, teachers, rooms and so on.
Select here the sorting mode you would like to use in menu selections Sort components, Sort courses and Sort collections. The sorting mode is ascending by default. When you would like to view courses or components according to their codes or names, it is natural to sort them in ascending order. When the courses or components are viewed according to their assumed complexity - according to MAX, SUM, DONE or LINKS - it is often useful to have them sorted in descending order so that the most relevant codes are moved to the top of the list.
If this selection is checked (by default), the application always automatically sorts components and courses according to their CODE field immediately after a new item is added to the list or when several files are merged into one.
If this option is selected, sorting of courses and components is disabled and prevents users from accidentally sorting codes in wrong order, but moving codes up and down is permitted.
Sort collectionsCollections of each course are sorted in ascending order primarily according to their category numbers and secondarily to their codes. For example, after sorting all teachers are listed in succession in alphabetical order according to their codes. The same order is also used when displaying the courses in timetable cells.
Duplicates in course collections are normally not allowed, but they may arise when data is imported from other sources. This selection checks and removes them.
The data structure of the system is compacted to take less memory. Mimosa normally compresses thousands of timetables into a very small file. The percentage number shown on the last line after compacting shows resources available. In some instances this procedure is performed automatically in order to speed up the total performance. You can select to compact file anytime.
Remove conflictsIn this option all timetables are cross-checked and those slots in timetables which are not feasible are removed. Mimosa prevents conflicts in timetables in advance and they should NOT exist unless the user has changed the structures of some of the collections with special tricks or combined another file with the current file in the File|File Add... or File|Network|Read from network selection.
The conflicts are then checked and, if they exist, are removed by using the minimum number of the assigned lectures needed to do it. You can also specify the week from which to start checking and fixing. If conflicts are found they are copied onto the Clipboard for viewing.
Conflicts may sometimes even be useful if the user has a week-based timetable system. The possibilities for assigning lectures into timetables from a certain week on can be increased if some of the components of the courses - typically the rooms - are changed so that they are allowed to cause conflicts only in the previous weeks (past), but not from the selected week on.
You can use this option in the Edit|Optimise room usage selection of the Courses window.
In the following selections you can select how to manage with conflicts - you can either Count and remove them or Only count them:
From all weeks (complete)
This checks all weeks (complete check)
From the selected week on
Checks all weeks starting from the selected week on and ending with the last used week.
If you are not satisfied with the coding system you first set up, there exits a very simple way of correcting the problem. You need to create a mapping table of old and new codes in your spreadsheet application (two columns) and let this application perform their replacement:
Copy codes onto the Clipboard
Select this command to copy all the codes (including all components and courses) onto the Clipboard. Next you activate the spreadsheet application and paste the code list to this application to create the left column of original codes. You should obtain the following code list:
<OldCode1> <OldCode2> <OldCode3> ... ... ... <OldCodeN>Example:
This example contains only five class codes, but the command always copies the entire list of components and courses onto the Clipboard.
After you have pasted the column of codes onto the spreadsheet application, you then replace each code (that you want to change) by adding the new code on the right (second column). If you use a spreadsheet program, you just type the new code in the next column, and if you use a text editor, insert <TAB>s between the codes. You then obtain the following list, which is simply a code conversion table:
<OldCode1> <NewCode1> <OldCode2> <NewCode2> <OldCode3> <NewCode3> ... ... ... <OldCodeN> <NewCodeN>Example:
This conversion table would replace G106 with Gen106, LineC with Line=C.
Paste codes from the Clipboard
Suppose that you have accomplished the code conversion in the other application as defined above. Highlight the area covering these two columns and copy it back onto the Clipboard in this application. Then use this command to replace old codes with the new codes in Mimosa, where all replacements are made automatically throughout. All codes need not to be replaced at once.
Conversion rules: the old code is NOT replaced, if the new code
- is already in the original code list or
- is the same as the old code or
- is empty.
With these commands you can easily modify the course collections according to the rule table you paste from the Clipboard.
Paste one to many from the Clipboard
This command enables you to replace single component codes by a set of (one or more) component codes in course collections. This is useful if, for example; you are going to change from class-based to student-based timetables or if you notice that the component definitions need to changed throughout.
You might have classes or groups which do not always remain the same in all instances, and which in turn may cause extra constraints in timetable assignments. If the components (classes) are not clearly and uniquely defined, you cannot expect the application to change the whole process so that it is more precise.
You can first build the courses using the class codes, even if the classes do not exactly represent their students in all instances. After you have replaced the classes with their lists of students you can later on fine-tune the collections by modifying the list of students. This way you can construct personalised timetables starting with class codes, approximating the lists of students.
Each line in the table begins with the component code to be replaced, and on the right are listed those codes that are going to be substituted in all course collections.
<OldCode><NewCode1><NewCode2> ... <NewCodeN><OldCode> is a component code that is going to be substituted and <NewCode>s are component codes, which will replace <OldCode> wherever they appear in course collections. These new codes must already exist in the list of components in order to enable the substitution.
Example:
The table in this example defines how class Form-B is going to be replaced with students Student11, Student16, class Form-C with Student21, ... , Student26 etc. After the substitution, these four classes are no longer members of any course collections.
You may have a table indicating that you want to map the classes IA and IB into smaller groups IA1, IA2 and IB1, IB2 and IB3:
After mapping any course that refers to one of those components will be automatically modified as in this example:
Paste many to one from the Clipboard
This command works in exactly the reverse order of the previous command. It substitutes a single component for one or more components in course collections.
If you want to perform a more exotic many to many mapping function in course collections, you must create temporary component codes and do the mapping in two stages: first many to one, and then one to many. The temporary components are artificial here and they are used to denote sets of components to facilitate mappings between sets of components.
This selection enables you to replace a set of (one or more) component codes in course collections by a single component. This is useful for example, if you are going to change from student-based timetables back to class-based timetables or you want to combine several components in courses into one component.
The mapping table has the same structure as in the previous command. Each line in the table begins with the component code that is going to replace the set of other components codes on the same line. All new codes must exist in the course collection where the replacement is going to be performed.
You may have a table indicating that you want to map the smaller groups IA-1, IA-2 and IB-1, IB-2 and IB-3 into larger groups IA and IB respectively:
After mapping any course that refers to the sets of those components (IA-1,IA-2) and (IB-1,IB-2,IB-3) will be automatically modified as in this example:
Note that the mapping requires that ALL these components must be listed in the course collection to enable an unique replacement.
These commands perform course selection of students according to their subjects and removes previous selections. The selection can be used in similar manner for other component categories and the selection table is pasted from the Clipboard, having the following format:

The first column contains the subject code, and the following cells in the same row contain the codes of the students that are going to select the particular subject.
All codes in this table must exist in the list of components.
Note that you cannot refer to courses directly, since all course (and component) codes are unique. If you have several courses of English, say English1, English2, English3, which are all available to same students, you express this by first creating a Subject in Components window with a code Eng (or equivalent) and then add this component to all courses that are associated with it.
Add to collections
Scans all rows in the selection matrix, and within each row, it searches for all courses having this code in their collections. It then adds the students on this row to one of these courses, if they do not initially exist. Each student is added only once, if the addition can be performed without causing conflicts. The addition is performed according to increasing order of course collection sizes. Courses with less number of components are scanned first in order to keep the sizes of collections balanced.
Remove from collections
This command clears all selections from collections according to the selection matrix.
With block scheduling you can assign all lectures in Timetables view into predefined slots just by referring to their block numbers. See the Block scheduling section for details.
We call cycling timetables here a special setting where the users want to create timetables for a number of days (n) that is not a multiple of the number of days in a school week. See the Cycling timetables section for details.
Intake scheduling permits to use the same schedule or allocation of lectures all over again. For instance, in some schools students arrive regularly several times in a year and the same lectures are given each time, but for different classes. See details in Intake scheduling.
Selection optimisation enables to change components (such as students) from one course to another in order to improve the timetables (by minimising the total number of gaps).
If the collections of the courses contain students (personalised timetables), it is in some cases possible for students to change their selections across alternative courses. This tool checks all permissible selection changes and moves the students to alternative courses, if their timetables will have less total number of gaps after the changes. In all changes, creating of overlaps (conflicts) in the timetables are not permitted.
In order to tell the application, which courses are alternative, create Subjects in Components window and then add same subjects to two or more courses which are alternative. Subjects are component categories, which do not check overlaps (uncheck Prevent conflicts for from this component category in Options|Timetables).
For instance, you might have several alternative language courses in the course list. You can create a subject Language and then go to Components window, click [Enter] on Language and add it to all courses that match this criteria. You can of course have several subjects with the same interpretation and add this information to the appropriate courses.
If courses French123 and Spanish234 both have the subject Language, the student can be changed from French123 to Spanish234, if the operation is otherwise permitted.
At the start, you should assign students to their courses in Components window by clicking [Enter] on each student, selecting the courses on the right box and then clicking the Add button. This solution will be used as the initial solution, which is then optimised.
When you invoke this tool, the application first asks you to specify the category for Students (default=5), and then the category for Subjects (default=4).
After these selections, you can set the criteria for optimisation. If you select Courses must have same subject, the application only checks that both courses have (at least one) same subject. If you select Assigned lectures must be equal, all those courses are accepted for change which have a equal number of lectures assigned in timetables.
The third selection Both must be met checks that both above conditions are satisfied, whereas the fourth selection Neither must be met does not care about these conditions.
In all cases, only those changes are made, which 1) Do not cause conflicts in timetables and 2) Decrease the number of gaps of students (gaps in other timetables remain the same during changes).
You can abort the optimisation process at any stage. It will also stop itself automatically, when no improvements cannot be found.
Lock coursesIn this selection you can lock or unlock courses to prevent changing them accidentally in Weeks and Timetables window.
Select courses to lock
Locks selected courses.
Select components to lock
Locks all courses that contain selected components in their collections.
Lock all courses by rules
Locks all courses by setting filters to courses.
Unlock all courses by rules
Unlocks all courses by setting filters to courses.
Additional rules to lock and unlock courses (two last selections):
ClearIn this selection you can clear the lectures and bookings, courses and components from all weeks all at once. Use this tool carefully, since it clears a lot of information at once.
1 Bookings from timetables
Removes all bookings from all timetables.
2 Lectures from timetables
Clears all lectures from all timetables.
3 Bookings from weeks
Cancels all bookings from all courses and weeks.
4 Lectures from weeks
Clears all lectures from all weeks and also all lectures from all timetables.
5 Courses
Removes selected courses from the course list.
6 Components
Removes selected components from the component list.
7 Collections
Removes selected components from the collections of selected courses. You first select those courses you want to remove components from and then you specify those components which you want to remove. This option enables you to reorganise collections effectively. See also equivalent Clipboard operations in Courses|Edit|Paste from the Clipboard.
8 Comments
Removes all comments. To view and edit the comments, select Options|Statistics|Files.
9 Memos
Removes all memos attached to components and courses. To view and edit the memos, select Options|Statistics|Files.
OptimiseIn this selection you can create timetables automatically and selectively, optimise existing timetables, copy timetabled lectures from one week to another week(s) or remove timetabled lectures selectively. See Optimise.