Generation of certificates, course reports, assignment letters and other documents from ODT template
IMPORTANT: The file must be in .odt format and not .doc, so the use of word is not recommended. Instead, it is highly recommended to use Openoffice
This mini guide on generating certificates, certifications, course reports and other documents from .odt template is divided into the following paragraphs:
- INTRODUCTION
- PLACEHOLDER DEFINITION
- PLACEHOLDER LISTS
- PLACEHOLDERS IN TABLES
- CONDITIONAL BLOCKS
- FILTERS
- LIST OF AVAILABLE PLACE CARDS
- UPLOADING ODT TEMPLATE TO SYSTEM
- USE OF THE CONTRACT TEMPLATE
1. INTRODUCTION
In the direction of allowing the individual school autonomous management of certificates, certificates, reports and other documents, the system allows for the preparation and activation of documents in total autonomy, which will then be exportable for each course and for each student enrolled in the courses.
The report will have to be a template in .odt format, i.e., OpenOffice, the content will be able to integrate dynamic content through the use of placeholders responsive to a predefined syntax, being able to choose from an extensive list of entities and attributes that will allow documents of various types to be generated.
The system will also allow access to custom fields of courses and users, or to insert tables to list enrollees, with a rather simple syntax, allowing rather rich documents to be generated.
The generation of a report from odt template enables the generation of documents in Open Document Text format (ODF text document, .odt extension), containing dynamic information, using an .odt file, called a template, in which appropriate placeholders are inserted, which, in the final generated document, will be replaced by the value indicated by the placeholder.
WARNING: template refers, in the context of this documentation, to a normal .odt file containing placeholders, the file must be in ODF text document format, extension .odt.
The template for generating the final document, to be uploaded when setting up the report, is a normal odt document, and where there is text, a placeholder can be inserted there, within the normal text flow, even within a table.
This type of report can be linked to a course, to a student in a course, or to a teacher in a course and allows for the generation of certificates, certificates, and reports on the course; it can also be linked to a student in the student registry to generate enrollment forms, for example, or to a teacher in the teacher registry to generate a letter of assignment; another possible use is as a contract template, to be used in order management.
2. DEFINITION OF PLACEHOLDERS
La sintassi per definire un segnaposto è {oggetto.attributo}, il nome dell’oggetto è la parte del nome a sinistra del punto, il nome dell’attributo è la parte a destra del punto; quindi, ad esempio, per mostrare nel documento finale il nome del corso si usa {course.name}, per mostrare la sede del corso si usa {location.location}.
If the name of the object is plural, in English, it means that it is a list of values, which can be used within a table or to create a list of values in the final document, using an appropriate syntax to indicate the beginning and end of the list; the list of placeholders below indicates when a placeholder is a list.
Some placeholders, e.g. course, students, students, teachers, possess an attribute that has a different behavior, the customfields attribute, the syntax of which is {object.customfields[code]}, which is used to show the value of a custom field, e.g., to show the value of the custom field of the course with code _LEVEL, we use {course.customfields[LEVEL]}.
To summarize, if we wanted to show the name, code, location, and custom field LEVEL, of the course:
{course.name}
{course.code}
{location.location}
{course.customfields[_LEVEL]}
3. LISTS OF PLACEHOLDERS
The syntax for using a list of values, involves indicating where the list begins and where it ends; in the block of text enclosed between the two markers, placeholders are inserted to show the values of each list item, for example, to list the full names and email address of each student in the course:
[!-- BEGIN students --]
{students.fullName} {students.email}
[!-- END students --]
the line between [!-- BEGIN students --] e [!-- END students --]
will be repeated for each student, in the final document.
Two special placeholders are available for each list item, _position, the position of the item in the list, and _total, the total number of items in the list.
4. PLACEHOLDERS IN TABLES
The syntax for using a list of values within a table involves indicating where the table row begins and where it ends; in the block of text enclosed between the two markers, placeholders are inserted to show the values of each item in the list, e.g., to list the full names, email address, and mobile phone of each student in the course, within a table:
[!-- BEGIN row.students --] {students.fullName} |
{students.email}
|
{students.mobile} [!-- END row.students --] |
the table row between [!-- BEGIN row.students --]
e [!-- END row.students --]
will be repeated for each student, in the table of the final document.
5. CONDITIONAL BLOCKS
The conditional block is a part of the document, delimited by appropriate markers, with which a condition is associated, which can be true or false; if true, the contents of the block are included in the final document; if false, the contents of the block are removed from the final document.
One of the defined custom fields or the conditions given in the CONDITION section of the list of available placeholders can be used as a condition for the block.
The condition using a custom field is true if the field is valorized, it is false if it is empty.
The syntax for defining the conditional block involves stating the beginning and end of the block, indicating the associated condition, e.g., to define a conditional block to be shown only if the order is discounted:
[!-- IF order.isDiscounted --]
Sconto: {order.discount}
[!-- ENDIF order.isDiscounted --]
order.isDiscounted is the condition, if it is true the order is discounted and the discount applied is shown, if it is false the order is not discounted and the discount line will not be included in the final document.
You can reverse the condition check by adding NOT to the syntax to define the conditional block, for example, to define a conditional block to be shown only if the order is not discounted:
[!-- IF NOT order.isDiscounted --]
Discount not applicable.
[!-- ENDIF NOT order.isDiscounted --]
order.isDiscounted is the condition, if it is true the order is discounted and the text "Discount not applicable" will not be shown in the final document, if it is false the order is not discounted and therefore the text "Discount not applicable" will be shown in the final document.
To use a custom field as a condition use the following syntax:
[!-- IF student.customfields[CERTIFICAZIONI] --]
Certifications: {student.customfields[CERTIFICATIONS]}
[!-- ENDIF student.customfields[CERTIFICAZIONI] --]
the row within the block will be shown only the student's certifications have been indicated, that is, if the custom field with code CERTIFICATIONS of the student is not empty.
6. FILTERS
Filters allow an operation to be performed that changes the value of the individual placeholder entered in the document and are available for any type of odt report, regardless of section.
The available filters are as follows:
- cut allows us to limit the length of a text within the given value, for example to limit the length of the course name to a maximum of 5 characters we can use the placeholder {course.name|cut[5]}
- daysbefore allows us to compute a date earlier than the date of the valorized placeholder, e.g. if we want to get the date corresponding to 2 weeks before the start of the course we can use the placeholder {course.startDate|daysbefore[14]}
- daysafter allows us to compute a date later than the date of the valorized placeholder, for example if we want to get the date corresponding to 1 week after the start of the course we can use the placeholder {course.startDate|daysafter[7]}
- lowercase changes the value of the placeholder to lowercase, for example to show the course name all in lowercase use the placeholder {course.name|lowercase}
- uppercase changes the value of the placeholder to uppercase, e.g. to show the course name all in uppercase use the placeholder {course.name|uppercase}
- uppercasefirst changes the value of the placeholder by capitalizing the first letter, e.g. to show the course name with the first letter capitalized use the placeholder {course.name|uppercasefirst}
If two versions of the same placeholder are needed in the document, one filtered and one unfiltered, simply add a _ (underscore) to the second occurrence of the placeholder, e.g., use {course.name|cut[5]} to show the abbreviated course name and {course_.name} to show the full course name later.
7. LIST OF AVAILABLE PLACEHOLDERS
Branch placeholders
Data related to the School branch, for management systems that manage more than one branch.SIGNAGE | VALUE | NOTES |
---|---|---|
{branch.code} | branch code | |
{branch.description} | branch description | |
{branch.name} | branch name |
Placeholder report
Report dataSIGNAGE | VALUE | NOTES |
---|---|---|
{report.parameters[name]} | possible parameter |
Placeholder configuration
Configuration dataSIGNAGE | VALUE | NOTES |
---|---|---|
{configuration.settinga[name]} | configuration parameter value |
Placeholders actualTeacher course sections
course instructor data course section, valued only if the course is taught by only one instructor or the report is by individual instructor, data taken from lesson planningSIGNAGE | VALUE | NOTES |
---|---|---|
{actualTeacher.address} | address | |
{actualTeacher.birthdate} | date of birth | |
{actualTeacher.birthday} | birthday | |
{actualTeacher.birthplace} | place of birth | |
{actualTeacher.birthprovince} | province of birth | |
{actualTeacher.cap} | zip code | |
{actualTeacher.city} | city | |
{actualTeacher.country} | country | |
{actualTeacher.countryCode} | country iso code | |
{actualTeacher.customfields[]} | custom field | The custom field code should be indicated between the square brackets |
{actualTeacher.defaultRate} | amount of the default pay class | €/hour |
{actualTeacher.defaultRateName} | default pay class | |
{actualTeacher.email} | ||
{actualTeacher.fee} | fee | |
{actualTeacher.fullName} | call sign | |
{actualTeacher.gender} | genre | |
{actualTeacher.hourlyFee} | hourly compensation of the Teacher | The salary set in the master data is displayed |
{actualTeacher.id} | identifier | |
{actualTeacher.mobile} | mobile phone | |
{actualTeacher.pec} | certified e-mail address | |
{actualTeacher.phone} | landline | |
{actualTeacher.province} | province | |
{actualTeacher.subjectsList} | subjects taught in the course | |
{actualTeacher.name} | name | |
{actualTeacher.surname} | surname | |
{actualTeacher.alias} | Alias | If entered in teacher master data |
{actualTeacher.taxcode} | tax code | |
{actualTeacher.vatnumber} | VAT number | |
{actualTeacher.hours} | class hours | |
CONDITION | VALUE | NOTES |
actualTeacher.isAdult | true if the teacher is of age, false otherwise | |
actualTeacher.isNotAdult | true if the teacher is a minor, false otherwise | |
actualTeacher.teacherSubjects | concatenated list of the teacher's planned subjects | Example: Math, Italian, English Language |
Placeholders actualTeachers course sections
Course faculty section data, list, data obtained from lesson planningSIGNAGE | VALUE | NOTES |
---|---|---|
{actualTeachers.address} | address | |
{actualTeachers.birthdate} | date of birth | |
{actualTeachers.birthday} | birthday | |
{actualTeachers.birthplace} | place of birth | |
{actualTeachers.birthprovince} | province of birth | |
{actualTeachers.cap} | zip code | |
{actualTeachers.city} | city | |
{actualTeachers.country} | country | |
{actualTeachers.countryCode} | country iso code | |
{actualTeachers.customfields[]} | custom field | The custom field code should be indicated between the square brackets |
{actualTeachers.defaultRate} | amount of the default pay class | €/hour |
{actualTeachers.defaultRateName} | default pay class | |
{actualTeachers.email} | ||
{actualTeachers.fee} | fee | |
{actualTeachers.fullName} | call sign | |
{actualTeachers.gender} | genre | |
{actualTeachers.hourlyFee} | hourly fee | |
{actualTeachers.id} | identifier | |
{actualTeachers.mobile} | mobile phone | |
{actualTeachers.pec} | certified e-mail address | |
{actualTeachers.phone} | landline | |
{actualTeachers.province} | province | |
{actualTeachers.subjectsList} | subjects taught in the course | |
{actualTeachers.name} | name | |
{actualTeachers.surname} | surname | |
{actualTeachers.alias} | Alias | If entered in teacher master data |
{actualTeachers.taxcode} | tax code | |
{actualTeachers.vatnumber} | VAT number | |
{actualTeachers._position} | position of the item in the list | |
{actualTeachers._total} | total number of items in the list | |
{actualTeachers.hours} | total hours | |
CONDITION | VALUE | NOTES |
actualTeachers.isAdult | true if the teacher is of age, false otherwise | |
actualTeachers.isNotAdult | true if the teacher is a minor, false otherwise | |
actualTeachers.teacherSubjects | concatenated list of the teacher's planned subjects | Example: Math, Italian, English Language |
Placeholder company course section
client company data course sectionSIGNAGE | VALUE | NOTES |
---|---|---|
{company.address} | address | |
{company.cap} | zip code | |
{company.city} | city | |
{company.country} | country | |
{company.countryCode} | country code | |
{company.email} | ||
{company.mobile} | mobile phone | |
{company.name} | business name | |
{company.phone} | landline | |
{company.provinces} | province | |
{company.taxcode} | tax code | |
{company.vatnumber} | VAT number |
Course placeholders course section
course data course sectionSIGNAGE | VALUE | NOTES |
---|---|---|
{course.booksTitleList} | textbooks | each title is separated by comma from the next, not valued if course model |
{course.code} | code | |
{course.customfields[]} | custom field | in square brackets should be the custom field code, valorized only if it is a course, not valorized in case of course template |
{course.endDate} | end date | not valued if course model |
{course.hours} | total lecture hours of the course | |
{course.lessons} | number of lessons | |
{course.name} | name | |
{course.startDate} | start date | not valued if course model |
{course.subject} | subject of study | valued only if single subject course |
{course.subjectAlias} | Aliases subject of study | valued only if single subject course |
{course.teachersFullNameList} | teachers' names | each callsign is separated by comma from the next, not valued if course model |
{course.teachingYear} | academic year | not valued if course model |
{course.internalStartLevel} | Internal starting level of the course | Valued if level entered in course outline |
{course.internalStartLevelFirstPart} | Internal starting level of the course first part | Ex A1.1 - Beginner. The part before the line is returned - : "A1.1" |
{course.internalStartLevelSecondPart} | Internal starting level of the course second part | Ex A1.1 - Beginner. The second part after the line - : "Beginner" is returned. |
{course.internalStartLevelDescription} | description of the internal level of initiation | |
{course.internalEndLevel} | Internal arrival level of the course | Valued if level entered in course outline |
{course.internalEndLevelFirstPart} | Internal end-of-course level first part | Ex A1.1 - Beginner. The part before the line is returned - : "A1.1" |
{course.internalEndLevelSecondPart} | Internal end-of-course level second part | Ex A1.1 - Beginner. The second part after the line - : "Beginner" is returned. |
{course.internalEndLevelDescription} | description of the internal arrival level | |
{course.certificateStartLevel} | Certified starting course level | Valued if level entered in course outline |
{course.certificateEndLevel} | Certified course arrival level | Valued if level entered in course outline |
{course.studentsFullNameList} | student list, the separator is the comma | |
{course.enrolledStudents} | number of students enrolled | |
{course.plannedHours} | planned class hours | |
{course.lessonsPerWeek} | number of lessons per week, set only if regular course | |
{course.lessonsWeekDay} | day of class week, set only if regular course and 1 class per week | |
{course.lessonsWeekSchedule} | classes, days of the week and schedule | Valued if more than one class per week, not valued if course model |
{course.lessonsStartTime} | class start time, set only if regular course | |
{course.lessonsEndTime} | class end time, set only if regular course | |
{course.locationName} | name of the venue where the course is held | |
{course.locationCompleteAddress} | Address of the venue where the course is held | |
{course.cost} | course cost | |
{course.costIfInstallments} | cost in case of payment in installments | |
{course.installmentsNumber} | Number of installments under the installment plan, if any | |
{course.firstInstallmentAmount} | First installment amount of any installment plan | |
{course.firstInstallmentDate} | first installment date of any installment plan | |
{course.firstInstallmentDay} | day first installment of any installment plan | |
{course.firstInstallmentMonth} | month first installment of any installment plan | |
{course.installmentsAdvanceAmount} | amount paid in advance | |
{course.model} | template name used to create the course | |
{course.lessonsDuration} | lesson duration, set only if regular course, in minutes |
Placeholder currentDate
data for the current dateSIGNAGE | VALUE | NOTES |
---|---|---|
{currentDate.date} | current date | |
{currentDate.day} | current day | 01 to 31 |
{currentDate.year} | current year | |
{currentDate.month} | current month | 1 to 12 |
{currentDate.monthName} | current month name | |
{currentDate.weekDay} | day of the week |
Placeholder judgment course section
student's final judgment, valued only if the report is by individual studentSIGNAGE | VALUE | NOTES |
---|---|---|
{judgment.comment} | comment | |
{judgment.grade} | judgment | |
{judgment.customfields[]} | custom field | The custom field code should be indicated between the square brackets |
{judgment.customGrade} | personalized judgment |
Placeholders judgments course section
final judgment of the course, listSIGNAGE | VALUE | NOTES |
---|---|---|
{judgments.comment} | comment | |
{judgments.grade} | judgment | |
{judgments.customfields[]} | custom field | The custom field code should be indicated between the square brackets |
{judgments.customGrade} | personalized judgment | |
{judgments._position} | position of the item in the list | |
{judgments._total} | total number of items in the list |
FinalJudgment Placeholders
Final grade data according to the teaching period.The corresponding period is defined by the prefix "firstFinalJudgment" "secondFinalJudgments" "thirdFinalJudgment" "fourthFinalJudgment"
SIGNAGE | VALUE | NOTES |
---|---|---|
{firstFinalJudgment.grade} | judgment | |
{firstFinalJudgment.comment} | comment | |
{firstFinalJudgment.customGrade} | personalized judgment | |
{firstFinalJudgment.customfields[]} | custom fields |
FinalJudgments Placeholders
Final grade data according to the teaching period.The corresponding period is defined by the prefix "firstFinalJudgments" "secondFinalJudgments" "thirdFinalJudgments" "fourthFinalJudgments"
SIGNAGE | VALUE | NOTES |
---|---|---|
{firstFinalJudgments.grade} | judgment | |
{firstFinalJudgments.comment} | comment | |
{firstFinalJudgments.customGrade} | personalized judgment | |
{firstFinalJudgments.customfields[]} | custom fields |
Placeholder lesson course section
course lecture informationSIGNAGE | VALUE | NOTES |
---|---|---|
{lesson.duration} | lesson duration | in minutes |
Placeholder lessons section
course lecture information, listSIGNAGE | VALUE | NOTES |
---|---|---|
{lessons.classroom} | classroom | |
{lessons.date} | date | |
{lessons.duration} | duration | in minutes |
{lessons.endTime} | end of class time | |
{lessons.originalDate} | original lecture date | |
{lessons.startTime} | class start time | |
{lessons.subject} | matter | |
{lessons.subjectAlias} | Alias matter | |
{lessons.teachersFullNameList} | teachers' names | each callsign is separated with a comma from the next |
{lessons.topic} | topic | |
{lessons._position} | position of the item in the list | |
{lessons._total} | total number of items in the list | |
{lessons.publiccomments} | public commentary / lesson plan | field usable sse entered teacher presence |
{lessons.comments} | private comment | |
{lessons.homeworks} | Homework if assigned in the lesson |
Placeholder lessonsCounter course section
lesson counterSIGNAGE | VALUE | NOTES |
---|---|---|
{lessonsCounter.totalHeld} | lectures given | |
{lessonsCounter.totalHoursHeld} | duration of lectures given | in hours |
Placeholder location course section
course location informationSIGNAGE | VALUE | NOTES |
---|---|---|
{location.address} | address | |
{location.cap} | ||
{location.city} | city | |
{location.location} | venue name | |
{location.province} | province |
Placeholder model course section
course model information course sectionSIGNAGE | VALUE | NOTES |
---|---|---|
{model.name} | model name |
PlannedTeacher placeholders course sections
course instructor data course section, valued only if the course is taught by only one instructor or the report is by individual instructor, data taken from course scheduleSIGNAGE | VALUE | NOTES |
---|---|---|
{plannedTeacher.address} | address | |
{plannedTeacher.birthdate} | date of birth | |
{plannedTeacher.birthday} | birthday | |
{plannedTeacher.birthplace} | place of birth | |
{plannedTeacher.birthprovince} | province of birth | |
{plannedTeacher.cap} | zip code | |
{plannedTeacher.city} | city | |
{plannedTeacher.country} | country | |
{plannedTeacher.countryCode} | country iso code | |
{plannedTeacher.customfields[]} | custom field | The custom field code should be indicated between the square brackets |
{plannedTeacher.defaultRate} | amount of the default pay class | €/hour |
{plannedTeacher.defaultRateName} | default pay class | |
{plannedTeacher.email} | ||
{plannedTeacher.fee} | fee | For course, valued only if course duration can be calculated |
{plannedTeacher.fullName} | call sign | |
{plannedTeacher.gender} | genre | |
{plannedTeacher.hourlyFee} | hourly fee | |
{plannedTeacher.id} | identifier | |
{plannedTeacher.pec} | certified e-mail address | |
{plannedTeacher.phone} | landline | |
{plannedTeacher.province} | province | |
{plannedTeacher.subjectsList} | subjects taught in the course | |
{plannedTeacher.name} | name | |
{plannedTeacher.surname} | surname | |
{plannedTeacher.alias} | Alias | If entered in teacher master data |
{plannedTeacher.taxcode} | tax code | |
{plannedTeacher.vatnumber} | VAT number | |
{plannedTeacher.citizenship} | citizenship | |
{plannedTeacher.passport} | passport number | |
{plannedTeacher.profession} | profession | |
{plannedTeacher.maritalstatus} | marital status | |
{plannedTeacher.qualification} | qualification | |
{plannedTeacher.notes} | notes | |
{plannedTeacher.cardnumber} | number of the card, if any | |
{plannedTeacher.hours} | class hours | |
CONDITION | VALUE | NOTES |
plannedTeacher.isAdult | true if the teacher is of age, false otherwise | |
plannedTeacher.isNotAdult | true if the teacher is a minor, false otherwise | |
plannedTeacher.teacherSubjects | concatenated list of the teacher's planned subjects | Example: Math, Italian, English Language |
PlannedTeachers placeholders course sections
Course faculty data course section, list, data taken from course scheduleSIGNAGE | VALUE | NOTES |
---|---|---|
{plannedTeachers.address} | address | |
{plannedTeachers.birthdate} | date of birth | |
{plannedTeachers.birthday} | birthday | |
{plannedTeachers.birthplace} | place of birth | |
{plannedTeachers.birthprovince} | province of birth | |
{plannedTeachers.cap} | zip code | |
{plannedTeachers.city} | city | |
{plannedTeachers.country} | country | |
{plannedTeachers.countryCode} | country iso code | |
{plannedTeachers.customfields[]} | custom field | The custom field code should be indicated between the square brackets |
{plannedTeachers.defaultRate} | amount of the default pay class | €/hour |
{plannedTeachers.defaultRateName} | default pay class | |
{plannedTeachers.email} | ||
{plannedTeachers.fee} | fee | For course, valued only if course duration can be calculated |
{plannedTeachers.fullName} | call sign | |
{plannedTeachers.gender} | genre | |
{plannedTeachers.hourlyFee} | hourly fee | |
{plannedTeachers.id} | identifier | |
{plannedTeachers.mobile} | mobile phone | |
{plannedTeachers.pec} | certified e-mail address | |
{plannedTeachers.phone} | landline | |
{plannedTeachers.province} | province | |
{plannedTeachers.subjectsList} | subjects taught in the course | |
{plannedTeachers.name} | name | |
{plannedTeachers.surname} | surname | |
{plannedTeachers.alias} | Alias | If entered in teacher master data |
{plannedTeachers.taxcode} | tax code | |
{plannedTeachers.vatnumber} | VAT number | |
{plannedTeachers._position} | position of the item in the list | |
{plannedTeachers._total} | total number of items in the list | |
{plannedTeachers.citizenship} | citizenship | |
{plannedTeachers.passport} | passport number | |
{plannedTeachers.profession} | profession | |
{plannedTeachers.maritalstatus} | marital status | |
{plannedTeachers.qualification} | qualification | |
{plannedTeachers.notes} | notes | |
{plannedTeachers.cardnumber} | number of the card, if any | |
{plannedTeachers.hours} | class hours | |
CONDITION | VALUE | NOTES |
plannedTeachers.isAdult | true if the teacher is of age, false otherwise | |
plannedTeachers.isNotAdult | true if the teacher is a minor, false otherwise | |
plannedTeachers.teacherSubjects | concatenated list of the teacher's planned subjects | Example: Math, Italian, English Language |
Placeholders progresses course section
student progress, grades sorted from oldest to most recent, valued only if report is by individual student, listSIGNAGE | VALUE | NOTES |
---|---|---|
{progresses.ability} | skill achieved | |
{progresses.date} | assignment date | |
{progresses.vote} | vote | |
{progresses.attendanceStatus} | Presence status | Will be indicated if present or absent from class |
{progresses.publiccomments} | Public comment of the lecture | |
{progresses.description} | Lesson description | |
{progresses.comments} | Lesson commentary | |
{progresses.homeworks} | Assigned tasks | |
{progresses.customfields[]} | Custom field | In square brackets enter the custom field code |
Protocol placeholders course section
protocol numberSIGNAGE | VALUE | NOTES |
---|---|---|
{protocol.id} | unique id | |
{protocol.number} | unformatted sequence number | |
{protocol.year} | year | |
{protocol.formattedNumber} | formatted sequence number |
Placeholders subjects course section
course study subjects, valued only if the course parameter "Allocate a specific number of hours for each subject" is selected, listSIGNAGE | VALUE | NOTES |
---|---|---|
{subjects.hours} | total hours matter | |
{subjects.teacher} | last name and first name subject teacher | |
{subjects.title} | subject of study | |
{subjects._position} | position of the item in the list | |
{subjects._total} | total number of items in the list |
Placeholders teachersubjects course section
course faculty information, valued only if the course parameter "Allocate a specific number of hours for each subject" is selected, listSIGNAGE | VALUE | NOTES |
---|---|---|
{teachersubjects.hours} | Hours assigned | Refer to each individual module |
{teachersubjects.teacher} | Lecturers | Referred to each individual module |
{teachersubjects.title} | Materials | Refer to each individual module |
Placeholder student course section
course section student data, valued only if the report is by individual studentSIGNAGE | VALUE | NOTES |
---|---|---|
{student.abilities[]} | skill achieved | The ability code should be indicated in square brackets |
{student.absence} | absences | lectures |
{student.absenceHours} | absences | hours |
{student.absencePercentage} | percentage of absences | calculated on the hours of absence |
{student.address} | address | |
{student.attendance} | attendance | lectures |
{student.attendanceHours} | attendance | hours |
{student.attendancePercentage} | percentage of attendance | calculated on the hours of attendance |
{student.birthdate} | date of birth | |
{student.birthday} | birthday | |
{student.birthplace} | place of birth | |
{student.birthprovince} | province of birth | |
{student.cap} | zip code | |
{student.city} | city | |
{student.country} | country | |
{student.countryCode} | country iso code | |
{student.customfields[]} | custom field | The custom field code should be indicated between the square brackets |
{student.email} | ||
{student.fullName} | call sign | |
{student.gender} | genre | |
{student.id} | identifier | |
{student.certificateStartLevel} | Certified level of study at the beginning of the course. | Set from the Student Teaching Levels tab. |
{student.certificateEndLevel} | Certified level of study at the end of the course. | Set from the Course Evaluations tab. |
{student.internalEndLevel} | Internal study level at the end of the course. | Set from the Course Evaluations tab. |
{student.internalStartLevel} | Internal study level at the beginning of the course. | Set from the Student Teaching Levels tab. |
{student.internalStartLevelDescription} | Description internal study level at the beginning of the course. | Set from the Student Teaching Levels tab. |
{student.internalEndLevelDescription} | Description level of internal study at the end of the course. | Set from the Ratings tab |
{student.lastVote} | most recent vote | Valued only if course with only one subject |
{student.lastVoteComment} | commentary on the most recent vote | Valued only if course with only one subject |
{student.lastVoteDate} | most recent vote date | Valued only if course with only one subject |
{student.mobile} | mobile phone | |
{student.name} | name | |
{student.pec} | certified e-mail address | |
{student.phone} | landline | |
{student.province} | province | |
{student.surname} | surname | |
{student.taxcode} | tax code | |
{student.vatnumber} | VAT number | |
{student.studLocation} | Reference site | |
{student.citizenship} | citizenship | |
{student.studyplan} | current curriculum | |
{student.lastVoteAbilities[]} | skills related to the most recent grade | |
{student.passport} | passport number | |
{student.profession} | profession | |
{student.maritalstatus} | marital status | |
{student.qualification} | qualification | |
{student.notes} | notes | |
{student.cardnumber} | number of the card, if any | |
{student.enrollmentDate} | course registration date | |
{student.attendanceLastDate} | last attendance date | |
CONDITION | VALUE | NOTES |
student.isAdult | true if the student is of age, false otherwise | |
student.isNotAdult | true if the student is a minor, false otherwise |
Placeholders students course section
course section student data, listSIGNAGE | VALUE | NOTES |
---|---|---|
{students.abilities[]} | skill achieved | The ability code should be indicated in square brackets |
{students.absence} | absences | lectures |
{students.absenceHours} | absences | hours |
{students.absencePercentage} | percentage of absences | calculated on the hours of absence |
{students.address} | address | |
{students.attendance} | attendance | lectures |
{students.attendanceHours} | attendance | hours |
{students.attendancePercentage} | percentage of attendance | calculated on the hours of attendance |
{students.birthdate} | date of birth | |
{students.birthday} | birthday | |
{students.birthplace} | place of birth | |
{students.birthprovince} | province of birth | |
{students.cap} | zip code | |
{students.city} | city | |
{students.country} | country | |
{students.countryCode} | country iso code | |
{students.customfields[]} | custom field | The custom field code should be indicated between the square brackets |
{students.email} | ||
{students.fullName} | call sign | |
{students.gender} | genre | |
{students.id} | identifier | |
{students.internalEndLevel} | Internal study level at the end of the course | Valued if level entered in course outline |
{students.internalStartLevel} | Internal study level at the beginning of the course | Set from the Student Teaching Levels tab. |
{students.lastVote} | most recent vote | Valued only if course with only one subject |
{students.lastVoteComment} | commentary on the most recent vote | Valued only if course with only one subject |
{students.lastVoteDate} | most recent vote date | Valued only if course with only one subject |
{students.mobile} | mobile phone | |
{students.name} | name | |
{students.pec} | certified e-mail address | |
{students.phone} | landline | |
{students.province} | province | |
{students.surname} | surname | |
{students.taxcode} | tax code | |
{students.vatnumber} | VAT number | |
{students.citizenship} | citizenship | |
{students.passport} | passport number | |
{students.certificateStartLevel} | Certified level of study at the beginning of the course | Set from the Student Teaching Levels tab. |
{students.certificateEndLevel} | Certified level of study at the end of the course | Valued if level entered in the course sheet. |
{students.studyplan} | current curriculum | |
{students.lastVoteAbilities[]} | skills related to the most recent grade | |
{students.profession} | profession | |
{students.maritalstatus} | marital status | |
{students.qualification} | qualification | |
{student.studLocation} | Reference site | |
{students.notes} | notes | |
{students.cardnumber} | number of the card, if any | |
{students.enrollmentDate} | course registration date | |
{students.attendanceLastDate} | last attendance date | |
{students.judgmentComment} | comment | |
{students.judgmentGrade} | judgment | |
{students.judgmentCustomFields[]} | custom field | The custom field code should be indicated between the square brackets |
{students.judgmentCustomGrade} | personalized judgment | |
CONDITION | VALUE | NOTES |
students.isAdult | true if parent/guardian is of age, false otherwise | |
students.isNotAdult | true if the parent/guardian is a minor, false otherwise |
Placeholder studyPlan order section
curriculumSIGNAGE | VALUE | NOTES |
---|---|---|
{studyPlan.name} | name | |
{studyPlan.years} | duration | in years |
{studyPlan.code} | code | |
{studyplan.firstChoosedSubject} | first subject of choice in the curriculum | |
{studyplan.subscriptionSubjectsList} | curriculum choice subject list | |
{studyPlan.yearName} | year of the study plan | |
{studyPlan.subscriptionYear} | year of enrollment |
TeachingYear placeholders
data for the school yearSIGNAGE | VALUE | NOTES |
---|---|---|
{teachingYear.endDate} | final date | |
{teachingYear.firstLesson} | first lesson date | |
{teachingYear.lastLesson} | last lecture date | |
{teachingYear.name} | name academic year | |
{teachingYear.startDate} | start date |
TeachingYear placeholders (if divided into periods)
Data on the periods into which the school year is dividedSIGNAGE | VALUE | NOTES |
---|---|---|
{teachingYear.firstPeriod} | first period name | |
{teachingYear.firstPeriodStartDate} | starting date first period | |
{teachingYear.firstPeriodEndDate} | end date first period | |
{teachingYear.secondPeriod} | second period name | |
{teachingYear.secondPeriodStartDate} | starting date second period | |
{teachingYear.secondPeriodEndDate} | final date second period | |
{teachingYear.thirdPeriod} | third period name | |
{teachingYear.thirdPeriodStartDate} | starting date third period | |
{teachingYear.thirdPeriodEndDate} | final date third period | |
{teachingYear.fourthPeriod} | name fourth period | |
{teachingYear.fourthPeriodStartDate} | starting date fourth period | |
{teachingYear.fourthPeriodEndDate} | final date fourth period |
Placeholder vote course section
student's most recent grade, valued only if the report is by individual studentSIGNAGE | VALUE | NOTES |
---|---|---|
{vote.ability} | skill achieved | |
{vote.comment} | comment | |
{vote.date} | assignment date | |
{vote.vote} | vote |
Placeholder votes course section
most recent course grades, listSIGNAGE | VALUE | NOTES |
---|---|---|
{votes.ability} | skill achieved | |
{votes.comment} | comment | |
{votes.date} | assignment date | |
{votes.vote} | vote | |
{votes._position} | position of the item in the list | |
{votes._total} | total number of items in the list |
Placeholders firstPeriodGrades
Educational period data available if report per individual student, grades per subject in the given period, reported only if courses are part of a Plan of Study, list.The corresponding period is defined by the prefix "firstPeriodGrades" "secondPeriodGrades" "thirdPeriodGrades" "fourthPeriodGrades" etc.
SIGNAGE | VALUE | NOTES |
---|---|---|
{firstPeriodGrades.subject} | subject first teaching period | |
{firstPeriodGrades.teacher} | teacher first teaching period | |
{firstPeriodGrades.grade} | grade first teaching period | |
{firstPeriodGrades.judgment} | final judgment first teaching period | |
{firstPeriodGrades.comment} | commentary first teaching period | |
{firstPeriodGrades.date} | first teaching period grade assignment date | |
{firstPeriodGrades.attendanceRate} | percentage attendance first teaching period | |
{firstPeriodGrades.absenceRate} | percentage absences first teaching period | |
{firstPeriodGrades.ability} | skills first teaching period |
SIGNAGE | VALUE | |||
---|---|---|---|---|
{firstPeriodGradesCourses.subject} | matter first period | |||
{firstPeriodGradesCourses.teacher} | teacher first period | |||
{firstPeriodGradesCourses.grade} | The setting schoolReport.subject.gradeAverage: VALUE 1 grade average is calculated if set to simple numeric. VALUE 0 - grade assigned in the first period. Warning. Usage is in case of clients using only one grade in the period! Currently planned for simple numerical grade and/or multi-skill grade based on how it was set in the course. | |||
{firstPeriodGradesCourses.courseName} | course in which the assessment was assigned. The setting must be active to appear: schoolReport.includeMultipleCoursesWithSameSubject = 1; | |||
{firstPeriodGradesCourses.votecomment} | comment vote first period if entered. | |||
{firstPeriodGradesCourses.date} | date of assessment assignment | |||
{firstPeriodGradesCourses.attendanceRate} | percentage attendance first period | |||
{firstPeriodGradesCourses.absenceRate} | percentage absence first period | |||
{firstPeriodGradesCourses.judgment} | Final judgment first period | |||
{firstPeriodGradesCourses.altjudgment} | Final judgment comment first period | |||
{firstPeriodGradesCourses.commment} | first period skill |
8. MODEL UPLOAD TO SYSTEM
To enter the report template into the system navigate to Configuration → Reports and click the "Add Report".
From the next screen, fill in the following fields (then entering Edit Report will show other settings):
- Name*: the name of the report (e.g. "Final certificate", "Certificate of attendance", "Progress report", etc.)
- Enabled: Leave checked to enable the report
- Visibility: Set whether the Report is visible to all or only to certain administrators.
- Description: any description of the report
- Report type: choose the "From odt template" option to be able to upload your own template
- Section in which to show the report *: Course sheet
- Report/export by individual student: if this checkbox is valorized, the report in question will be exportable per individual student enrolled in the course, so as it is explained a little below, in case of individual courses the report can be exported from the course sheet, and in case of a collective course from the section of students enrolled in the course.
- This is a certificate/attestation, to be issued in an unmodifiable version: If checked we should indicate a protocol number (click here for guidance on protocols)
- Template extension: OpenOffice Write (.odt)
- Report template: upload the template with odt extension of your report
- Enable certificate expiration: If enabled the terms for the expiration of the issued Certificate should be specified (click here for guidance on enabling automatic notifications for certificate deadlines):
- Expiration Type: Select Days, Months or Years
- Number: Number of days, months or years before the due date
- Year type: Item that appears only if Years is chosen in Expiration Type. Choose whether the years to be considered are 365 calendar days or whether the certificate is valid until the end of the expiration year.
- Uses customized communication templates: Allows you to select custom Email templates (click here for guidance on creating a custom Email/SMS Template)
- Enable pre-issuance verification: Parameter reserved for developers.
- Send report via email: Indicate whether the report is emailable directly from the Course.
- Report visible to faculty: If checked, the generated report can be viewed and downloaded by Course Lecturers.
- Select type: select the type of file extension that the report that will be exported should have, being able to choose from:
- OpenOffice Write (.odt)
- Portable Document Format (.pdf)
- Order *: the order in which the reports are listed (e.g. 1, 2, 3, etc.)
Click the "Add report" to save the operation.
9. USE OF REPORTS
In case it is an individual student report (so if the option "Report/export for individual student"), you will be able to export it for each individual course from the course tab by clicking the button in the upper right corner "Report / Export" and choosing the specific report.
In the case of a group course, on the other hand, you will have to enter the section of students enrolled in the course by clicking the icon on the line of the same and click from the next screen the "Report / Export" present on the line of each enrolled student.
In case of report per collective course (thus leaving the checkbox "Report/export by individual student"), for example, a progress report in which the progress of each individual enrolled in the course is summarized via a table, it will be possible to export the report from the course tab by clicking the button in the upper right-hand corner "Report / Export" and choosing the specific report.