Profile cleaned
This commit is contained in:
parent
600d06f75b
commit
028cc3586d
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
Hilfe Widget
|
Hilfe Widget
|
||||||
|
|
||||||
|
Benachrichtigungen per eMail für einige Ereignisse
|
||||||
|
|
||||||
* Version 18.09.2018
|
* Version 18.09.2018
|
||||||
|
|
||||||
Tooltips funktionieren auch ohne JavaScript
|
Tooltips funktionieren auch ohne JavaScript
|
||||||
|
|||||||
@ -348,7 +348,7 @@ MailSheetSoonInactiveIntro courseName@Text termDesc@Text sheetName@SheetName: Ab
|
|||||||
MailSubjectSheetInactive csh@CourseShorthand sheetName@SheetName: Abgabfristt für #{sheetName} in #{csh} abgelaufen
|
MailSubjectSheetInactive csh@CourseShorthand sheetName@SheetName: Abgabfristt für #{sheetName} in #{csh} abgelaufen
|
||||||
MailSheetInactiveIntro courseName@Text termDesc@Text sheetName@SheetName: Die Abgabefirst für #{sheetName} im Kurs #{courseName} (#{termDesc}) beendet.
|
MailSheetInactiveIntro courseName@Text termDesc@Text sheetName@SheetName: Die Abgabefirst für #{sheetName} im Kurs #{courseName} (#{termDesc}) beendet.
|
||||||
MailCorrectionsAssignedIntro courseName@Text termDesc@Text sheetName@SheetName n@Int: #{display n} Abgaben wurden Ihnen zur Korrektur für #{sheetName} im Kurs #{courseName} (#{termDesc}) zugeteilt.
|
MailCorrectionsAssignedIntro courseName@Text termDesc@Text sheetName@SheetName n@Int: #{display n} Abgaben wurden Ihnen zur Korrektur für #{sheetName} im Kurs #{courseName} (#{termDesc}) zugeteilt.
|
||||||
|
MailEditNotifications: Benachrichtigungen ein-/ausschalten
|
||||||
MailSubjectSupport: Supportanfrage
|
MailSubjectSupport: Supportanfrage
|
||||||
|
|
||||||
SheetTypeBonus: Bonus
|
SheetTypeBonus: Bonus
|
||||||
|
|||||||
@ -882,7 +882,7 @@ defaultLinks = -- Define the menu items of the header.
|
|||||||
, menuItemAccessCallback' = return True
|
, menuItemAccessCallback' = return True
|
||||||
}
|
}
|
||||||
, NavbarRight $ MenuItem
|
, NavbarRight $ MenuItem
|
||||||
{ menuItemLabel = "Profil"
|
{ menuItemLabel = "Einstellungen"
|
||||||
, menuItemIcon = Just "cogs"
|
, menuItemIcon = Just "cogs"
|
||||||
, menuItemRoute = ProfileR
|
, menuItemRoute = ProfileR
|
||||||
, menuItemModal = False
|
, menuItemModal = False
|
||||||
@ -966,7 +966,7 @@ pageActions (HomeR) =
|
|||||||
]
|
]
|
||||||
pageActions (ProfileR) =
|
pageActions (ProfileR) =
|
||||||
[ PageActionPrime $ MenuItem
|
[ PageActionPrime $ MenuItem
|
||||||
{ menuItemLabel = "Gespeicherte Daten anzeigen"
|
{ menuItemLabel = "Gespeicherte Daten"
|
||||||
, menuItemIcon = Just "book"
|
, menuItemIcon = Just "book"
|
||||||
, menuItemRoute = ProfileDataR
|
, menuItemRoute = ProfileDataR
|
||||||
, menuItemModal = False
|
, menuItemModal = False
|
||||||
|
|||||||
@ -115,47 +115,11 @@ postProfileR = do
|
|||||||
(FormFailure msgs) -> forM_ msgs $ (addMessage Warning) . toHtml
|
(FormFailure msgs) -> forM_ msgs $ (addMessage Warning) . toHtml
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
|
let formText = Nothing :: Maybe UniWorXMessage
|
||||||
(admin_rights,lecturer_rights,lecture_corrector,studies) <- runDB $ (,,,) <$>
|
actionUrl = ProfileR
|
||||||
(E.select $ E.from $ \(adright `E.InnerJoin` school) -> do
|
|
||||||
E.where_ $ adright E.^. UserAdminUser E.==. E.val uid
|
|
||||||
E.on $ adright E.^. UserAdminSchool E.==. school E.^. SchoolId
|
|
||||||
return (school E.^. SchoolShorthand)
|
|
||||||
)
|
|
||||||
<*>
|
|
||||||
(E.select $ E.from $ \(lecright `E.InnerJoin` school) -> do
|
|
||||||
E.where_ $ lecright E.^. UserLecturerUser E.==. E.val uid
|
|
||||||
E.on $ lecright E.^. UserLecturerSchool E.==. school E.^. SchoolId
|
|
||||||
return (school E.^. SchoolShorthand)
|
|
||||||
)
|
|
||||||
<*>
|
|
||||||
(E.select $ E.distinct $ E.from $ \(sheet `E.InnerJoin` corrector `E.InnerJoin` course) -> do
|
|
||||||
E.on $ sheet E.^. SheetCourse E.==. course E.^. CourseId
|
|
||||||
E.on $ sheet E.^. SheetId E.==. corrector E.^. SheetCorrectorSheet
|
|
||||||
E.where_ $ corrector E.^. SheetCorrectorUser E.==. E.val uid
|
|
||||||
return (course E.^. CourseTerm, course E.^. CourseSchool, course E.^. CourseShorthand)
|
|
||||||
)
|
|
||||||
<*>
|
|
||||||
(E.select $ E.from $ \(studydegree `E.InnerJoin` studyfeat `E.InnerJoin` studyterms) -> do
|
|
||||||
E.where_ $ studyfeat E.^. StudyFeaturesUser E.==. E.val uid
|
|
||||||
E.on $ studyfeat E.^. StudyFeaturesField E.==. studyterms E.^. StudyTermsId
|
|
||||||
E.on $ studyfeat E.^. StudyFeaturesDegree E.==. studydegree E.^. StudyDegreeId
|
|
||||||
return ( ( studydegree E.^. StudyDegreeName
|
|
||||||
, studydegree E.^. StudyDegreeKey
|
|
||||||
)
|
|
||||||
, ( studyterms E.^. StudyTermsName
|
|
||||||
, studyterms E.^. StudyTermsKey
|
|
||||||
)
|
|
||||||
, studyfeat E.^. StudyFeaturesType
|
|
||||||
, studyfeat E.^. StudyFeaturesSemester)
|
|
||||||
)
|
|
||||||
let formText = Just MsgSettings
|
|
||||||
actionUrl = ProfileR
|
|
||||||
settingsForm = $(widgetFile "formPageI18n")
|
|
||||||
defaultLayout $ do
|
defaultLayout $ do
|
||||||
setTitle . toHtml $ userIdent <> "'s User page"
|
setTitle . toHtml $ userIdent <> "'s User page"
|
||||||
$(widgetFile "profile")
|
$(widgetFile "formPageI18n")
|
||||||
$(widgetFile "dsgvDisclaimer")
|
|
||||||
|
|
||||||
postProfileDataR :: Handler Html
|
postProfileDataR :: Handler Html
|
||||||
postProfileDataR = do
|
postProfileDataR = do
|
||||||
@ -233,6 +197,39 @@ getProfileDataR :: Handler Html
|
|||||||
getProfileDataR = do
|
getProfileDataR = do
|
||||||
(uid, User{..}) <- requireAuthPair
|
(uid, User{..}) <- requireAuthPair
|
||||||
-- mr <- getMessageRender
|
-- mr <- getMessageRender
|
||||||
|
(admin_rights,lecturer_rights,lecture_corrector,studies) <- runDB $ (,,,) <$>
|
||||||
|
(E.select $ E.from $ \(adright `E.InnerJoin` school) -> do
|
||||||
|
E.where_ $ adright E.^. UserAdminUser E.==. E.val uid
|
||||||
|
E.on $ adright E.^. UserAdminSchool E.==. school E.^. SchoolId
|
||||||
|
return (school E.^. SchoolShorthand)
|
||||||
|
)
|
||||||
|
<*>
|
||||||
|
(E.select $ E.from $ \(lecright `E.InnerJoin` school) -> do
|
||||||
|
E.where_ $ lecright E.^. UserLecturerUser E.==. E.val uid
|
||||||
|
E.on $ lecright E.^. UserLecturerSchool E.==. school E.^. SchoolId
|
||||||
|
return (school E.^. SchoolShorthand)
|
||||||
|
)
|
||||||
|
<*>
|
||||||
|
(E.select $ E.distinct $ E.from $ \(sheet `E.InnerJoin` corrector `E.InnerJoin` course) -> do
|
||||||
|
E.on $ sheet E.^. SheetCourse E.==. course E.^. CourseId
|
||||||
|
E.on $ sheet E.^. SheetId E.==. corrector E.^. SheetCorrectorSheet
|
||||||
|
E.where_ $ corrector E.^. SheetCorrectorUser E.==. E.val uid
|
||||||
|
return (course E.^. CourseTerm, course E.^. CourseSchool, course E.^. CourseShorthand)
|
||||||
|
)
|
||||||
|
<*>
|
||||||
|
(E.select $ E.from $ \(studydegree `E.InnerJoin` studyfeat `E.InnerJoin` studyterms) -> do
|
||||||
|
E.where_ $ studyfeat E.^. StudyFeaturesUser E.==. E.val uid
|
||||||
|
E.on $ studyfeat E.^. StudyFeaturesField E.==. studyterms E.^. StudyTermsId
|
||||||
|
E.on $ studyfeat E.^. StudyFeaturesDegree E.==. studydegree E.^. StudyDegreeId
|
||||||
|
return ( ( studydegree E.^. StudyDegreeName
|
||||||
|
, studydegree E.^. StudyDegreeKey
|
||||||
|
)
|
||||||
|
, ( studyterms E.^. StudyTermsName
|
||||||
|
, studyterms E.^. StudyTermsKey
|
||||||
|
)
|
||||||
|
, studyfeat E.^. StudyFeaturesType
|
||||||
|
, studyfeat E.^. StudyFeaturesSemester)
|
||||||
|
)
|
||||||
-- Tabelle mit eigenen Kursen
|
-- Tabelle mit eigenen Kursen
|
||||||
(hasRows, ownedCoursesTable) <- mkOwnedCoursesTable uid
|
(hasRows, ownedCoursesTable) <- mkOwnedCoursesTable uid
|
||||||
-- Tabelle mit allen Teilnehmer: Kurs (link), Datum
|
-- Tabelle mit allen Teilnehmer: Kurs (link), Datum
|
||||||
|
|||||||
@ -22,8 +22,8 @@ dispatchNotificationCorrectionsAssigned nUser nSheet jRecipient = do
|
|||||||
(Course{..}, Sheet{..}, nbrSubs) <- liftHandlerT . runDB $ do
|
(Course{..}, Sheet{..}, nbrSubs) <- liftHandlerT . runDB $ do
|
||||||
sheet <- getJust nSheet
|
sheet <- getJust nSheet
|
||||||
course <- belongsToJust sheetCourse sheet
|
course <- belongsToJust sheetCourse sheet
|
||||||
nbrSubs <- count [ SubmissionSheet ==. nSheet
|
nbrSubs <- count [ SubmissionSheet ==. nSheet
|
||||||
, SubmissionRatingBy ==. Just nUser
|
, SubmissionRatingBy ==. Just nUser
|
||||||
, SubmissionRatingTime ==. Nothing
|
, SubmissionRatingTime ==. Nothing
|
||||||
]
|
]
|
||||||
return (course, sheet, nbrSubs)
|
return (course, sheet, nbrSubs)
|
||||||
@ -38,4 +38,5 @@ dispatchNotificationCorrectionsAssigned nUser nSheet jRecipient = do
|
|||||||
shn = sheetName
|
shn = sheetName
|
||||||
|
|
||||||
addAlternatives $ do
|
addAlternatives $ do
|
||||||
providePreferredAlternative ($(ihamletFile "templates/mail/correctionsAssigned.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
let editNotifications = $(ihamletFile "templates/mail/editNotifications.hamlet")
|
||||||
|
providePreferredAlternative ($(ihamletFile "templates/mail/correctionsAssigned.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
||||||
|
|||||||
@ -33,4 +33,5 @@ dispatchNotificationSheetActive nSheet jRecipient = userMailT jRecipient $ do
|
|||||||
shn = sheetName
|
shn = sheetName
|
||||||
|
|
||||||
addAlternatives $ do
|
addAlternatives $ do
|
||||||
|
let editNotifications = $(ihamletFile "templates/mail/editNotifications.hamlet")
|
||||||
providePreferredAlternative ($(ihamletFile "templates/mail/sheetActive.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
providePreferredAlternative ($(ihamletFile "templates/mail/sheetActive.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
||||||
|
|||||||
@ -34,6 +34,7 @@ dispatchNotificationSheetSoonInactive nSheet jRecipient = userMailT jRecipient $
|
|||||||
shn = sheetName
|
shn = sheetName
|
||||||
|
|
||||||
addAlternatives $ do
|
addAlternatives $ do
|
||||||
|
let editNotifications = $(ihamletFile "templates/mail/editNotifications.hamlet")
|
||||||
providePreferredAlternative ($(ihamletFile "templates/mail/sheetSoonInactive.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
providePreferredAlternative ($(ihamletFile "templates/mail/sheetSoonInactive.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
||||||
|
|
||||||
dispatchNotificationSheetInactive :: SheetId -> UserId -> Handler ()
|
dispatchNotificationSheetInactive :: SheetId -> UserId -> Handler ()
|
||||||
@ -52,5 +53,6 @@ dispatchNotificationSheetInactive nSheet jRecipient = userMailT jRecipient $ do
|
|||||||
shn = sheetName
|
shn = sheetName
|
||||||
|
|
||||||
addAlternatives $ do
|
addAlternatives $ do
|
||||||
|
let editNotifications = $(ihamletFile "templates/mail/editNotifications.hamlet")
|
||||||
providePreferredAlternative ($(ihamletFile "templates/mail/sheetInactive.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
providePreferredAlternative ($(ihamletFile "templates/mail/sheetInactive.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
||||||
|
|
||||||
@ -55,4 +55,5 @@ dispatchNotificationSubmissionRated nSubmission jRecipient = userMailT jRecipien
|
|||||||
, "course-school" Aeson..= courseSchool
|
, "course-school" Aeson..= courseSchool
|
||||||
]
|
]
|
||||||
-- provideAlternative $ \(MsgRenderer mr) -> ($(textFile "templates/mail/submissionRated.txt") :: TextUrl (Route UniWorX)) -- textFile does not support control statements
|
-- provideAlternative $ \(MsgRenderer mr) -> ($(textFile "templates/mail/submissionRated.txt") :: TextUrl (Route UniWorX)) -- textFile does not support control statements
|
||||||
|
let editNotifications = $(ihamletFile "templates/mail/editNotifications.hamlet")
|
||||||
providePreferredAlternative ($(ihamletFile "templates/mail/submissionRated.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
providePreferredAlternative ($(ihamletFile "templates/mail/submissionRated.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))
|
||||||
|
|||||||
@ -15,3 +15,4 @@ $newline never
|
|||||||
<p>
|
<p>
|
||||||
<a href=@{CorrectionsR}>
|
<a href=@{CorrectionsR}>
|
||||||
_{MsgCorrectionsTitle}
|
_{MsgCorrectionsTitle}
|
||||||
|
^{editNotifications}
|
||||||
4
templates/mail/editNotifications.hamlet
Normal file
4
templates/mail/editNotifications.hamlet
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<p>
|
||||||
|
<a href=@{ProfileR}>
|
||||||
|
_{MsgProfileHeading}
|
||||||
|
\ _{MsgMailEditNotifications}
|
||||||
@ -15,3 +15,4 @@ $newline never
|
|||||||
<p>
|
<p>
|
||||||
<a href=@{CSheetR tid ssh csh shn SShowR}>
|
<a href=@{CSheetR tid ssh csh shn SShowR}>
|
||||||
#{sheetName}
|
#{sheetName}
|
||||||
|
^{editNotifications}
|
||||||
@ -15,3 +15,4 @@ $newline never
|
|||||||
<p>
|
<p>
|
||||||
<a href=@{CSheetR tid ssh csh shn SShowR}>
|
<a href=@{CSheetR tid ssh csh shn SShowR}>
|
||||||
#{sheetName}
|
#{sheetName}
|
||||||
|
^{editNotifications}
|
||||||
@ -15,3 +15,4 @@ $newline never
|
|||||||
<p>
|
<p>
|
||||||
<a href=@{CSheetR tid ssh csh shn SShowR}>
|
<a href=@{CSheetR tid ssh csh shn SShowR}>
|
||||||
#{sheetName}
|
#{sheetName}
|
||||||
|
^{editNotifications}
|
||||||
@ -63,3 +63,4 @@ $newline never
|
|||||||
_{MsgRatingComment}
|
_{MsgRatingComment}
|
||||||
<dd .comment>
|
<dd .comment>
|
||||||
#{comment}
|
#{comment}
|
||||||
|
^{editNotifications}
|
||||||
|
|||||||
@ -1,62 +1,2 @@
|
|||||||
<div .profile>
|
<div .profile>
|
||||||
|
|
||||||
<dl .deflist.profile-dl>
|
|
||||||
<dt .deflist__dt> _{MsgName}
|
|
||||||
<dd .deflist__dd> ^{nameWidget userDisplayName userSurname}
|
|
||||||
$maybe matnr <- userMatrikelnummer
|
|
||||||
<dt .deflist__dt> _{MsgMatrikelNr}
|
|
||||||
<dd .deflist__dd> #{matnr}
|
|
||||||
<dt .deflist__dt> _{MsgEMail}
|
|
||||||
<dd .deflist__dd> #{display userEmail}
|
|
||||||
<dt .deflist__dt> _{MsgIdent}
|
|
||||||
<dd .deflist__dd> #{display userIdent}
|
|
||||||
$if not $ null admin_rights
|
|
||||||
<dt .deflist__dt> Administrator
|
|
||||||
<dd .deflist__dd>
|
|
||||||
<ul .list-ul>
|
|
||||||
$forall (E.Value institute) <- admin_rights
|
|
||||||
<li .list-ul__item>
|
|
||||||
<a href=@{SchoolShowR $ SchoolKey institute}>
|
|
||||||
#{display institute}
|
|
||||||
$if not $ null lecturer_rights
|
|
||||||
<dt .deflist__dt> Lehrberechtigt
|
|
||||||
<dd .deflist__dd>
|
|
||||||
<ul .list-ul>
|
|
||||||
$forall (E.Value institute) <- lecturer_rights
|
|
||||||
<li .list-ul__item>
|
|
||||||
<a href=@{SchoolShowR $ SchoolKey institute}>
|
|
||||||
#{display institute}
|
|
||||||
$if not $ null lecture_corrector
|
|
||||||
<dt .deflist__dt> Korrektor
|
|
||||||
<dd .deflist__dd>
|
|
||||||
<ul .list-ul>
|
|
||||||
$forall (E.Value tid, E.Value ssh, E.Value csh) <- lecture_corrector
|
|
||||||
<li .list-ul__item>
|
|
||||||
<a href=@{CourseR tid ssh csh CShowR}>#{display tid}-#{display ssh}-#{display csh}
|
|
||||||
$if not $ null studies
|
|
||||||
<dt .deflist__dt> Studiengänge
|
|
||||||
<dd .deflist__dd>
|
|
||||||
<div .scrolltable>
|
|
||||||
<table .table.table--striped.table--hover.table--condensed>
|
|
||||||
<tr .table__row>
|
|
||||||
<th .table__th> Abschluss
|
|
||||||
<th .table__th> Studiengang
|
|
||||||
<th .table__th> Studienart
|
|
||||||
<th .table__th> Semester
|
|
||||||
|
|
||||||
$forall ((degree, degreeKey),(field, fieldKey),fieldtype,semester) <- studies
|
|
||||||
<tr.table__row>
|
|
||||||
<td .table__td>
|
|
||||||
$maybe name <- E.unValue degree
|
|
||||||
#{display name}
|
|
||||||
$nothing
|
|
||||||
#{display degreeKey}
|
|
||||||
<td .table__td>
|
|
||||||
$maybe name <- E.unValue field
|
|
||||||
#{display name}
|
|
||||||
$nothing
|
|
||||||
#{display fieldKey}
|
|
||||||
<td .table__td>_{E.unValue fieldtype}
|
|
||||||
<td .table__td>#{display semester}
|
|
||||||
|
|
||||||
^{settingsForm}
|
^{settingsForm}
|
||||||
|
|||||||
@ -1,9 +1,70 @@
|
|||||||
<div .container>
|
<div .profile>
|
||||||
$if hasRows
|
|
||||||
<div .container>
|
<dl .deflist.profile-dl>
|
||||||
<h2> Eigene Kurse
|
<dt .deflist__dt> _{MsgName}
|
||||||
|
<dd .deflist__dd> ^{nameWidget userDisplayName userSurname}
|
||||||
|
$maybe matnr <- userMatrikelnummer
|
||||||
|
<dt .deflist__dt> _{MsgMatrikelNr}
|
||||||
|
<dd .deflist__dd> #{matnr}
|
||||||
|
<dt .deflist__dt> _{MsgEMail}
|
||||||
|
<dd .deflist__dd> #{display userEmail}
|
||||||
|
<dt .deflist__dt> _{MsgIdent}
|
||||||
|
<dd .deflist__dd> #{display userIdent}
|
||||||
|
$if not $ null admin_rights
|
||||||
|
<dt .deflist__dt> Administrator
|
||||||
|
<dd .deflist__dd>
|
||||||
|
<ul .list-ul>
|
||||||
|
$forall (E.Value institute) <- admin_rights
|
||||||
|
<li .list-ul__item>
|
||||||
|
<a href=@{SchoolShowR $ SchoolKey institute}>
|
||||||
|
#{display institute}
|
||||||
|
$if not $ null lecturer_rights
|
||||||
|
<dt .deflist__dt> Lehrberechtigt
|
||||||
|
<dd .deflist__dd>
|
||||||
|
<ul .list-ul>
|
||||||
|
$forall (E.Value institute) <- lecturer_rights
|
||||||
|
<li .list-ul__item>
|
||||||
|
<a href=@{SchoolShowR $ SchoolKey institute}>
|
||||||
|
#{display institute}
|
||||||
|
$if not $ null lecture_corrector
|
||||||
|
<dt .deflist__dt> Korrektor
|
||||||
|
<dd .deflist__dd>
|
||||||
|
<ul .list-ul>
|
||||||
|
$forall (E.Value tid, E.Value ssh, E.Value csh) <- lecture_corrector
|
||||||
|
<li .list-ul__item>
|
||||||
|
<a href=@{CourseR tid ssh csh CShowR}>#{display tid}-#{display ssh}-#{display csh}
|
||||||
|
$if not $ null studies
|
||||||
|
<dt .deflist__dt> Studiengänge
|
||||||
|
<dd .deflist__dd>
|
||||||
|
<div .scrolltable>
|
||||||
|
<table .table.table--striped.table--hover.table--condensed>
|
||||||
|
<tr .table__row>
|
||||||
|
<th .table__th> Abschluss
|
||||||
|
<th .table__th> Studiengang
|
||||||
|
<th .table__th> Studienart
|
||||||
|
<th .table__th> Semester
|
||||||
|
|
||||||
|
$forall ((degree, degreeKey),(field, fieldKey),fieldtype,semester) <- studies
|
||||||
|
<tr.table__row>
|
||||||
|
<td .table__td>
|
||||||
|
$maybe name <- E.unValue degree
|
||||||
|
#{display name}
|
||||||
|
$nothing
|
||||||
|
#{display degreeKey}
|
||||||
|
<td .table__td>
|
||||||
|
$maybe name <- E.unValue field
|
||||||
|
#{display name}
|
||||||
|
$nothing
|
||||||
|
#{display fieldKey}
|
||||||
|
<td .table__td>_{E.unValue fieldtype}
|
||||||
|
<td .table__td>#{display semester}
|
||||||
|
|
||||||
|
<div .container>
|
||||||
|
$if hasRows
|
||||||
<div .container>
|
<div .container>
|
||||||
^{ownedCoursesTable}
|
<h2> Eigene Kurse
|
||||||
|
<div .container>
|
||||||
|
^{ownedCoursesTable}
|
||||||
|
|
||||||
<div .container>
|
<div .container>
|
||||||
<h2> Kursanmeldungen
|
<h2> Kursanmeldungen
|
||||||
|
|||||||
Reference in New Issue
Block a user