Documentation
¶
Overview ¶
Package db provides us with everything database related. Connection creation, model representation and other things.
Index ¶
- Constants
- func CategoriesByName() map[string]int
- func InitDB() *gorm.DB
- func SetUpTables(db *gorm.DB)
- func TransferCourses(db *gorm.DB, modulesDBPath string)
- func TransferExamElements(db *gorm.DB, modulesDBPath string)
- func TransferModuleCourses(db *gorm.DB, modulesDBPath string)
- func TransferModules(db *gorm.DB, modulesDBPath string)
- func TransferPersons(db *gorm.DB, modulesDBPath string)
- func TransferWorkingEfforts(db *gorm.DB, modulesDBPath string)
- type Course
- type ExamElement
- type Feedback
- type Module
- type PasswordLink
- type Person
- type SQLiteCourse
- type SQLiteExamElement
- type SQLiteModule
- type SQLiteModuleCourses
- type SQLitePerson
- type SQLiteWorkingEffort
- type User
- type WorkingEffort
- type WorkingEffortEfforts
- type WorkingEffortTemplate
Constants ¶
const ( // This category counter assings each part // of a module description an integer identifier // to map feedback to those individual parts // of the description. CATEGORY_HEADER = iota CATEGORY_LEARNING_OUTCOMES CATEGORY_TEACHING_CONTENTS CATEGORY_COURSES CATEGORY_WORKING_EFFORT CATEGORY_INSTRUCTIVE_FORM CATEGORY_REQUIREMENTS CATEGORY_EXAMINATION CATEGORY_NUMBER_TERMS CATEGORY_PARTICIPANT_LIMITATION CATEGORY_REGISTRATION_FORMALITIES CATEGORY_SCRIPT CATEGORY_LITERATURE CATEGORY_MISCELLANEOUS )
const ( // Privileges have to be kept monotonic. // That means, a user with a lower integer // privilege value will also have all privileges // numerically greater than that value. // CAUTION: Changes here will need to be reflected // to other places, e.g. template and handler // functions of admin's users site. PRIVILEGE_ADMIN = iota PRIVILEGE_REVIEWER // Status groups as increasing integer. // CAUTION: Changes here will need to be reflected // to other places, e.g. template and handler // functions of admin's users site and initial user. STATUS_GROUP_PROF = iota STATUS_GROUP_WIMI STATUS_GROUP_STUDI STATUS_GROUP_OTHER )
Variables ¶
This section is empty.
Functions ¶
func CategoriesByName ¶
CategoriesByName returns a map of all categories queryable by name of category.
func InitDB ¶
InitDB connects to the database specified by the .env file. It returns the correctly configured connector.
func SetUpTables ¶
CreateTables sets up the connected database correctly by first deleting all considered tables and afterwards setting new ones up correctly.
func TransferCourses ¶
TransferCourses connects to the provided SQLite database containing the courses as the main parts of all modules and transfers them into the main database.
func TransferExamElements ¶
TransferExamElement connects to the provided SQLite database that holds exam element information for Portfolio exams and transfers it into the main database.
func TransferModuleCourses ¶
TransferModuleCourses connects to the provided SQLite database containing the links between courses and modules and transfers them into the main database.
func TransferModules ¶
TransferModules connects to the provided SQLite database containing the modules and exports them into the services's main database.
func TransferPersons ¶
TransferPersons connects to the provided SQLite database containing the persons involved in the faculty's modules and exports them into the services's main database.
func TransferWorkingEfforts ¶
TransferWorkingEffort connects to the provided SQLite database containing information about working effort and transfers it into the main database.
Types ¶
type Course ¶
type Course struct {
ID int `gorm:"primary_key"`
Title string `gorm:"not null"`
CourseType sql.NullString
CourseID sql.NullString
CreditHours sql.NullInt64
Annotation sql.NullString
Content sql.NullString
CourseURL sql.NullString
DetailedDescription sql.NullString
Requirements sql.NullString
Audience sql.NullString
Comment sql.NullString
CourseAssessment sql.NullString
Literature sql.NullString
TeachingContents sql.NullString
Cycle sql.NullString
}
type ExamElement ¶
type Module ¶
type Module struct {
ID int `gorm:"primary_key"`
ModuleID int `gorm:"not null"`
Version int `gorm:"not null"`
Title sql.NullString `gorm:"index"`
TitleEnglish sql.NullString `gorm:"index"`
ECTS int `gorm:"not null"`
Effective *time.Time
Validity string `gorm:"not null"`
Lang string `gorm:"not null"`
MailAddress sql.NullString
Website sql.NullString
AdministrationOffice sql.NullString
URL string `gorm:"not null;unique"`
LearningOutcomes sql.NullString
LearningOutcomesHTML template.HTML `gorm:"-"`
LearningOutcomesEnglish sql.NullString
LearningOutcomesEnglishHTML template.HTML `gorm:"-"`
TeachingContents sql.NullString
TeachingContentsHTML template.HTML `gorm:"-"`
TeachingContentsEnglish sql.NullString
TeachingContentsEnglishHTML template.HTML `gorm:"-"`
Courses []Course `gorm:"many2many:module_courses;"`
WorkingEfforts []WorkingEffort
WorkingEffortsHTML []WorkingEffortTemplate `gorm:"-"`
InstructiveForm string `gorm:"not null"`
InstructiveFormHTML template.HTML `gorm:"-"`
OptionalRequirements string `gorm:"not null"`
OptionalRequirementsHTML template.HTML `gorm:"-"`
MandatoryRequirements sql.NullString
MandatoryRequirementsHTML template.HTML `gorm:"-"`
Graded bool `gorm:"not null"`
TypeOfExamination string `gorm:"not null"`
ExaminationDescription sql.NullString
ExaminationDescriptionHTML template.HTML `gorm:"-"`
ExamElements []ExamElement
NumberOfTerms int `gorm:"not null"`
ParticipantLimitation sql.NullInt64
RegistrationFormalities sql.NullString
RegistrationFormalitiesHTML template.HTML `gorm:"-"`
Script bool `gorm:"not null"`
ScriptElectronic bool `gorm:"not null"`
Literature string `gorm:"not null"`
LiteratureHTML template.HTML `gorm:"-"`
Miscellaneous sql.NullString
MiscellaneousHTML template.HTML `gorm:"-"`
ReferencePersonID sql.NullInt64
ReferencePerson Person `gorm:"ForeignKey:ReferencePersonID;AssociationForeignKey:Refer;"`
ResponsiblePersonID sql.NullInt64
ResponsiblePerson Person `gorm:"ForeignKey:ResponsiblePersonID;AssociationForeignKey:Refer;"`
}
type PasswordLink ¶
type SQLiteCourse ¶
type SQLiteCourse struct {
ID int `gorm:"column:id"`
Title string `gorm:"column:title"`
CourseType sql.NullString `gorm:"column:courseType"`
CourseID sql.NullString `gorm:"column:courseID"`
CreditHours sql.NullInt64 `gorm:"column:creditHours"`
Annotation sql.NullString `gorm:"column:annotation"`
Content sql.NullString `gorm:"column:content"`
CourseURL sql.NullString `gorm:"column:courseURL"`
DetailedDescription sql.NullString `gorm:"column:detailedDescription"`
Requirements sql.NullString `gorm:"column:requirements"`
Audience sql.NullString `gorm:"column:audience"`
Comment sql.NullString `gorm:"column:comment"`
CourseAssessment sql.NullString `gorm:"column:courseAssessment"`
Literature sql.NullString `gorm:"column:literature"`
TeachingContents sql.NullString `gorm:"column:teachingContents"`
Cycle sql.NullString `gorm:"column:cycle"`
}
func (*SQLiteCourse) TableName ¶
func (sqliteCourse *SQLiteCourse) TableName() string
func (SQLiteCourse) ToCourse ¶
func (sqliteCourse SQLiteCourse) ToCourse() Course
type SQLiteExamElement ¶
type SQLiteExamElement struct {
ID int `gorm:"column:id"`
ModuleID int `gorm:"column:module_id"`
Description string `gorm:"column:description"`
Points int `gorm:"column:points"`
}
func (*SQLiteExamElement) TableName ¶
func (sqliteExamElement *SQLiteExamElement) TableName() string
func (SQLiteExamElement) ToExamElement ¶
func (sqliteExamElement SQLiteExamElement) ToExamElement() ExamElement
type SQLiteModule ¶
type SQLiteModule struct {
ID int `gorm:"column:id"`
Title sql.NullString `gorm:"column:title"`
TitleEnglish sql.NullString `gorm:"column:titleEnglish"`
ECTS int `gorm:"column:ects"`
ModuleID int `gorm:"column:moduleID"`
Version int `gorm:"column:version"`
Effective *time.Time `gorm:"column:effective"`
Validity string `gorm:"column:validity"`
Lang string `gorm:"column:lang"`
MailAddress sql.NullString `gorm:"column:mailAddress"`
Website sql.NullString `gorm:"column:website"`
AdministrationOffice sql.NullString `gorm:"column:administrationOffice"`
LearningOutcomes sql.NullString `gorm:"column:learningOutcomes"`
LearningOutcomesEnglish sql.NullString `gorm:"column:learningOutcomesEnglish"`
TeachingContents sql.NullString `gorm:"column:teachingContents"`
TeachingContentsEnglish sql.NullString `gorm:"column:teachingContentsEnglish"`
URL string `gorm:"column:url"`
InstructiveForm string `gorm:"column:instructiveForm"`
OptionalRequirements string `gorm:"column:optionalRequirements"`
MandatoryRequirements sql.NullString `gorm:"column:mandatoryRequirements"`
Graded bool `gorm:"column:graded"`
TypeOfExamination string `gorm:"column:typeOfExamination"`
ExaminationDescription sql.NullString `gorm:"column:examinationDescription"`
NumberOfTerms int `gorm:"column:numberOfTerms"`
ParticipantLimitation sql.NullInt64 `gorm:"column:participantLimitation"`
Miscellaneous sql.NullString `gorm:"column:miscellaneous"`
Script bool `gorm:"column:script"`
ScriptElectronic bool `gorm:"column:scriptElectronic"`
Literature string `gorm:"column:literature"`
ReferencePersonID sql.NullInt64 `gorm:"column:referencePerson_id"`
ReferencePerson Person `gorm:"ForeignKey:ReferencePersonID;AssociationForeignKey:Refer;"`
ResponsiblePersonID sql.NullInt64 `gorm:"column:responsiblePerson_id"`
ResponsiblePerson Person `gorm:"ForeignKey:ResponsiblePersonID;AssociationForeignKey:Refer;"`
RegistrationFormalities sql.NullString `gorm:"column:registrationFormalities"`
}
func (*SQLiteModule) TableName ¶
func (sqliteModule *SQLiteModule) TableName() string
type SQLiteModuleCourses ¶
type SQLiteModuleCourses struct {
ID int `gorm:"column:id"`
ModuleID int `gorm:"column:mtsmodule_id"`
CourseID int `gorm:"column:course_id"`
}
func (*SQLiteModuleCourses) TableName ¶
func (sqliteModuleCourses *SQLiteModuleCourses) TableName() string
type SQLitePerson ¶
type SQLitePerson struct {
ID int `gorm:"column:id"`
FirstName string `gorm:"column:firstname"`
LastName string `gorm:"column:lastname"`
}
func (*SQLitePerson) TableName ¶
func (sqlitePerson *SQLitePerson) TableName() string
func (SQLitePerson) ToPerson ¶
func (sqlitePerson SQLitePerson) ToPerson() Person
type SQLiteWorkingEffort ¶
type SQLiteWorkingEffort struct {
ID int `gorm:"column:id"`
ModuleID sql.NullInt64 `gorm:"column:module_id"`
CourseID sql.NullInt64 `gorm:"column:course_id"`
Description string `gorm:"column:description"`
Category string `gorm:"column:category"`
Multiplier float32 `gorm:"column:multiplier"`
Hours float32 `gorm:"column:hours"`
Total float32 `gorm:"column:total"`
}
func (*SQLiteWorkingEffort) TableName ¶
func (sqliteWorkingEffort *SQLiteWorkingEffort) TableName() string
func (SQLiteWorkingEffort) ToWorkingEffort ¶
func (sqliteWorkingEffort SQLiteWorkingEffort) ToWorkingEffort() WorkingEffort
type User ¶
type User struct {
ID string `gorm:"primary_key"`
FirstName string `gorm:"not null"`
LastName string `gorm:"not null"`
Mail string `gorm:"index;not null;unique"`
MailVerified bool `gorm:"not null"`
PasswordHash string `gorm:"not null;unique"`
StatusGroup int `gorm:"not null"`
Privileges int `gorm:"not null"`
Enabled bool `gorm:"not null"`
}
type WorkingEffort ¶
type WorkingEffort struct {
ID int `gorm:"primary_key"`
ModuleID sql.NullInt64 `gorm:"index"`
CourseID sql.NullInt64 `gorm:"index"`
Description string `gorm:"not null"`
Category string `gorm:"index;not null"`
Multiplier float32 `gorm:"not null"`
Hours float32 `gorm:"not null"`
Total float32 `gorm:"not null"`
}
type WorkingEffortEfforts ¶
type WorkingEffortEfforts struct {
Description string
Multiplier float32
Hours float32
Total float32
}
WorkingEffortEfforts is a sub type for more fittingly handle working efforts in HTML templates.
type WorkingEffortTemplate ¶
type WorkingEffortTemplate struct {
Category string
Efforts []WorkingEffortEfforts
CourseTotal float32
}
WorkingEffortTemplate represents the most useful structure of working effort information for use in HTML templates.
func WorkingEffortsConvert ¶
func WorkingEffortsConvert(workingEfforts []WorkingEffort) []WorkingEffortTemplate
(*WorkingEffort).Convert transfers the working effort elements from the database representation to another one better suited to be used in HTML templates.