added module enum

This commit is contained in:
vextrixes committed 2026-10-27 23:20:16 +01:00
1 parent 442816aa1f
commit 4a83f16a8b
3 files changed
+196 -10

No files matched your search

+3 -2
View File
@@ -9,6 +9,7 @@ mod gdpr;
mod homework; //TDOS
//marking
mod marks;
mod modules;
mod payments;
mod semester;
mod stdtype;
@@ -31,11 +32,11 @@ pub use gdpr::{
};
pub use homework::{HomeworkList, HomeworkListItem};
pub use marks::{Mark, MarkConfirmationStatus, Marks, SubjectMarks};
pub use modules::*;
pub use payments::*;
pub use semester::{
CertificateTerm, CertificateTerms, FinalMark, PedagogicalMeasure, PedagogicalMeasures,
};
pub use stdtype::*;
pub use stdtype::{
Room, RoomSet, SchoolClass, SchoolClassSet, StdClassGroup, StdType, StdTypeNullable, Student,
Teacher, TeacherSet, TimetableStudent,
@@ -46,4 +47,4 @@ pub use substitutions::{
};
pub use teaching::{Lesson, Teaching, TeachingTheme};
pub use timetable::*;
pub use user::{Module, UserInfo, UserInfoStudent, UserType, SchoolType};
pub use user::{SchoolType, UserInfo, UserInfoStudent, UserType};
+192
View File
@@ -0,0 +1,192 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "Module")]
pub enum Module {
Absence { rights: Vec<AbsenceRights> },
AccessSystem { rights: Vec<AccessSystemRights> },
Application { rights: Vec<ApplicationRights> },
Campaign { rights: Vec<CampaignRights> },
Classbook { rights: Vec<ClassbookRights> },
Emergency { rights: Vec<EmergencyRights> },
Events { rights: Vec<EventsRights> },
Gdpr { rights: Vec<GdprRights> },
Homeworks { rights: Vec<HomeworksRights> },
Komens { rights: Vec<KomensRights> },
Marking { rights: Vec<MarkingRights> },
Marks { rights: Vec<MarksRights> },
Payments { rights: Vec<PaymentsRights> },
Semester { rights: Vec<SemesterRights> },
Subjects { rights: Vec<SubjectsRights> },
Substitutions { rights: Vec<SubstitutionsRights> },
Teaching { rights: Vec<TeachingRights> },
Timetable { rights: Vec<TimetableRights> },
Unknown { rights: Vec<UnknownRights> },
UserAccount { rights: Vec<UserAccountRights> },
WebBased { rights: Vec<WebBasedRights> },
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum AbsenceRights {
ShowAbsence,
ShowAbsencePercentage,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum AccessSystemRights {
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ApplicationRights {
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum CampaignRights {
ShowCampaign,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ClassbookRights {
CanExcuseAbsence,
EditClassBook,
ShowClassBook,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum EmergencyRights {
CanAccessEmergency,
CanBeEmergencyParticipant,
CanManageEmergencies,
CanOverseeEmergencyParticipants,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum EventsRights {
ShowEvents,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum GdprRights {
ShowChildConsents,
ShowCommissioners,
ShowOwnConsents,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum HomeworksRights {
ShowHomeworks,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum KomensRights {
SendAttachments,
SendMessageAsDirector,
SendMessages,
ShowApologyMessages,
ShowNoticeBoardMessages,
ShowRatingDetails,
ShowRatingMessage,
ShowReceivedMessages,
ShowSentMessages,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum MarkingRights {
EditMarks,
ShowMarking,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum MarksRights {
CanConfirmClassification,
PredictMarks,
ShowFinalMarks,
ShowManners,
ShowMarks,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum PaymentsRights {
ClassFundEnabled,
ClassFundPaymentsEnabled,
RegularPaymentsEnabled,
ShowClassFundDetails,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SemesterRights {
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SubjectsRights {
ShowSubjectThemes,
ShowSubjects,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SubstitutionsRights {
ShowSubstitutions,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TeachingRights {
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TimetableRights {
ShowTimetable,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum UnknownRights {
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum UserAccountRights {
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum WebBasedRights {
#[serde(other)]
Unknown,
}
+1 -8
View File
@@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;
use crate::SchoolClass;
use crate::{Module, SchoolClass};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
@@ -33,13 +33,6 @@ pub enum UserType {
Teacher,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Module {
pub module: String, //Make an Enum "absence", "accesssystem", "application", "campaign", "classbook", "emergency", "events", "gdpr", "homeworks", "komens", "marking", "marks", "payments", "semester", "subjects", "substitutions", "teaching", "timetable", "unknown", "user_account", "web_based"
pub rights: Vec<String>, //Make enum "CanAccessEmergency", "CanBeEmergencyParticipant", "CanConfirmClassification", "CanExcuseAbsence", "CanManageEmergencies", "CanOverseeEmergencyParticipants", "ClassFundEnabled", "ClassFundPaymentsEnabled", "EditClassBook", "EditMarks", "PredictMarks", "RegularPaymentsEnabled", "SendAttachments", "SendMessageAsDirector", "SendMessages", "ShowAbsence", "ShowAbsencePercentage", "ShowApologyMessages", "ShowCampaign", "ShowChildConsents", "ShowClassBook", "ShowClassFundDetails", "ShowCommissioners", "ShowEvents", "ShowFinalMarks", "ShowHomeworks", "ShowManners", "ShowMarking", "ShowMarks", "ShowNoticeBoardMessages", "ShowOwnConsents", "ShowRatingDetails", "ShowRatingMessage", "ShowReceivedMessages", "ShowSentMessages", "ShowSubjectThemes", "ShowSubjects", "ShowSubstitutions", "ShowTimetable", "Unknown"
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct UserInfoStudent {