The schedule showed a lecturer only where the session notes named one (Globalizacja), so the student plan had nobody under the other courses. The session JSON now carries the course lecturer in its course ref and an optional per-session lecturer (new nullable column, admin field, seed key) for courses shared between two people. The student app shows the session's own lecturer or, failing that, the course's.
2 lines
5.3 KiB
JavaScript
2 lines
5.3 KiB
JavaScript
import{_ as N}from"./PageHead.vue_vue_type_script_setup_true_lang-BJjYuJvl.js";import{_ as R}from"./LoadState.vue_vue_type_script_setup_true_lang-BD6A8a9g.js";import{_ as B}from"./ReadingItem.vue_vue_type_script_setup_true_lang-CJzr1aQp.js";import{d as D,p as S,q as V,A as q,c as a,h as m,i as y,r as T,E as A,G as F,o as t,F as r,b as d,m as z,a as e,t as n,e as i,y as p,s as f,k as M,x as j,B as C}from"./index-C9sCss04.js";import{F as P,b as O,a as $,T as Z,c as G}from"./format-bcE-cYHJ.js";const K={class:"card"},W={style:{margin:"0",display:"grid","grid-template-columns":"auto 1fr",gap:"4px 16px"}},Y={style:{margin:"0"}},H={style:{margin:"0"},class:"mono small"},I={style:{margin:"0"}},J={style:{margin:"0"}},Q={key:0,style:{margin:"10px 0 0"}},U={key:1,style:{margin:"10px 0 0"}},X=["href"],ee={class:"section","aria-labelledby":"sess-h"},se={class:"section-head"},te={class:"muted small"},ae={key:0,class:"rows"},le={class:"row-main"},oe={class:"title"},ne={class:"when"},ie={class:"muted small"},re={key:0},de={key:1,class:"badge online",style:{"margin-left":"6px"}},ue={key:2,class:"badge onsite",style:{"margin-left":"6px"}},ce={key:3},_e={key:4},me={key:1,class:"empty"},ye={class:"section","aria-labelledby":"read-h"},pe={class:"section-head"},ge={class:"muted small"},ve={class:"rows"},he={class:"rows"},ke={key:1,class:"empty"},fe={class:"section","aria-labelledby":"mat-h"},be={class:"section-head"},we={class:"muted small"},xe={key:0,class:"rows"},Be={class:"muted small"},Te={class:"badge"},ze={key:0},Ce={key:1,class:"empty"},De=D({__name:"CourseView",props:{id:{}},setup(E){const g=E,_=S(),l=T(null),v=T("");async function h(){l.value=null,v.value="";try{l.value=await A.course(Number(g.id))}catch(u){v.value=F(u)}}V(()=>{h(),_.loadReadings()}),q(()=>g.id,()=>{h()});const c=f(()=>_.allReadings.filter(u=>u.course_id===Number(g.id))),b=f(()=>c.value.filter(u=>u.is_required)),w=f(()=>c.value.filter(u=>!u.is_required)),L=Date.now();return(u,o)=>{const x=M("router-link");return t(),a("div",null,[m(R,{ready:!!l.value,error:v.value,onRetry:o[0]||(o[0]=s=>h())},{default:y(()=>[l.value?(t(),a(r,{key:0},[m(N,{eyebrow:`${d(P)[l.value.form]} · semestr ${l.value.semester}`,title:l.value.name},{default:y(()=>[m(x,{class:"btn small ghost",to:"/przedmioty"},{default:y(()=>[...o[1]||(o[1]=[z("← Przedmioty",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),e("section",K,[e("dl",W,[l.value.lecturer?(t(),a(r,{key:0},[o[2]||(o[2]=e("dt",{class:"muted"},"Prowadzący",-1)),e("dd",Y,n(l.value.lecturer),1)],64)):i("",!0),l.value.code?(t(),a(r,{key:1},[o[3]||(o[3]=e("dt",{class:"muted"},"Kod",-1)),e("dd",H,n(l.value.code),1)],64)):i("",!0),l.value.ects?(t(),a(r,{key:2},[o[4]||(o[4]=e("dt",{class:"muted"},"ECTS",-1)),e("dd",I,n(l.value.ects),1)],64)):i("",!0),l.value.assessment?(t(),a(r,{key:3},[o[5]||(o[5]=e("dt",{class:"muted"},"Zaliczenie",-1)),e("dd",J,n(l.value.assessment),1)],64)):i("",!0),l.value.elective_group?(t(),a(r,{key:4},[o[6]||(o[6]=e("dt",{class:"muted"},"Wybór",-1)),o[7]||(o[7]=e("dd",{style:{margin:"0"}},[e("span",{class:"badge alert"},"do wyboru")],-1))],64)):i("",!0)]),l.value.description?(t(),a("p",Q,n(l.value.description),1)):i("",!0),l.value.syllabus_url?(t(),a("p",U,[e("a",{href:l.value.syllabus_url,target:"_blank",rel:"noopener noreferrer"},"Sylabus",8,X)])):i("",!0)]),e("section",ee,[e("div",se,[o[8]||(o[8]=e("h2",{id:"sess-h"},"Zajęcia",-1)),e("span",te,n(l.value.sessions.length),1)]),l.value.sessions.length?(t(),a("ul",ae,[(t(!0),a(r,null,p(l.value.sessions,s=>(t(),a("li",{key:s.id,class:j({past:Date.parse(s.ends_at)<d(L)})},[e("div",le,[e("span",oe,n(d(O)(s.starts_at)),1),e("span",ne,n(d($)(s.starts_at))+"–"+n(d($)(s.ends_at)),1)]),e("div",ie,[s.meeting_number?(t(),a("span",re,"zjazd "+n(s.meeting_number),1)):i("",!0),s.is_online?(t(),a("span",de,"online")):s.room?(t(),a("span",ue,"sala "+n(s.room),1)):i("",!0),s.lecturer?(t(),a("span",ce," · "+n(s.lecturer),1)):i("",!0),s.notes?(t(),a("span",_e," · "+n(s.notes),1)):i("",!0)])],2))),128))])):(t(),a("p",me,"Brak zajęć w planie."))]),e("section",ye,[e("div",pe,[o[9]||(o[9]=e("h2",{id:"read-h"},"Lektury",-1)),e("span",ge,n(c.value.filter(s=>s.read_at).length)+"/"+n(c.value.length),1)]),c.value.length?(t(),a(r,{key:0},[b.value.length?(t(),a(r,{key:0},[o[10]||(o[10]=e("h3",{class:"subhead"},"Obowiązkowe",-1)),e("ul",ve,[(t(!0),a(r,null,p(b.value,s=>(t(),C(B,{key:s.id,reading:s,onToggle:k=>d(_).toggleReading(s.id,k)},null,8,["reading","onToggle"]))),128))])],64)):i("",!0),w.value.length?(t(),a(r,{key:1},[o[11]||(o[11]=e("h3",{class:"subhead"},"Dodatkowe",-1)),e("ul",he,[(t(!0),a(r,null,p(w.value,s=>(t(),C(B,{key:s.id,reading:s,onToggle:k=>d(_).toggleReading(s.id,k)},null,8,["reading","onToggle"]))),128))])],64)):i("",!0)],64)):(t(),a("p",ke,"Brak lektur."))]),e("section",fe,[e("div",be,[o[12]||(o[12]=e("h2",{id:"mat-h"},"Materiały",-1)),e("span",we,n(l.value.materials.length),1)]),l.value.materials.length?(t(),a("ul",xe,[(t(!0),a(r,null,p(l.value.materials,s=>(t(),a("li",{key:s.id},[m(x,{to:`/materialy/${s.id}`,class:"title"},{default:y(()=>[z(n(s.title),1)]),_:2},1032,["to"]),e("div",Be,[e("span",Te,n(d(Z)[s.type]),1),s.files_count?(t(),a("span",ze," · "+n(d(G)(s.files_count,"plik","pliki","plików")),1)):i("",!0)])]))),128))])):(t(),a("p",Ce,"Brak materiałów."))])],64)):i("",!0)]),_:1},8,["ready","error"])])}}});export{De as default};
|