File tree Expand file tree Collapse file tree 8 files changed +43
-20
lines changed Expand file tree Collapse file tree 8 files changed +43
-20
lines changed Original file line number Diff line number Diff line change 11<template >
22 <div v-if =" sessionPrepared" class =" StudySession" >
33 <v-row align =" center" >
4- <v-col >
5- <h1 class =" text-h3" >
6- {{ courseNames[courseID] }}:
7- <v-progress-circular v-if =" loading" color =" primary" indeterminate size =" 32" width =" 4" />
8- </h1 >
9- <v-spacer ></v-spacer >
10- </v-col >
4+ <h1 class =" text-h3" v-if =" courseNames[courseID]" >{{ courseNames[courseID] }}:</h1 >
5+ <v-spacer ></v-spacer >
6+ <v-progress-circular v-if =" loading" color =" primary" indeterminate size =" 32" width =" 4" />
117 </v-row >
128
139 <br />
Original file line number Diff line number Diff line change @@ -48,13 +48,19 @@ export interface ScheduledCard {
4848 *
4949 * (Should probably be UTC adjusted so that performance is
5050 * not wonky across time zones)
51+ *
52+ * Note: Stored as ISO string for PouchDB serialization compatibility,
53+ * but can be consumed as Moment objects via moment.utc(reviewTime)
5154 */
52- reviewTime : Moment ;
55+ reviewTime : string | Moment ;
5356
5457 /**
5558 * The time at which this scheduled event was created.
59+ *
60+ * Note: Stored as ISO string for PouchDB serialization compatibility,
61+ * but can be consumed as Moment objects via moment.utc(scheduledAt)
5662 */
57- scheduledAt : Moment ;
63+ scheduledAt : string | Moment ;
5864
5965 /**
6066 * Classifying whether this card is scheduled on behalf of a
Original file line number Diff line number Diff line change @@ -964,10 +964,10 @@ Currently logged-in as ${this._username}.`
964964 scheduledFor : ScheduledCard [ 'scheduledFor' ] ;
965965 schedulingAgentId : ScheduledCard [ 'schedulingAgentId' ] ;
966966 } ) {
967- return scheduleCardReviewLocal ( this . remoteDB , review ) ;
967+ return scheduleCardReviewLocal ( this . writeDB , review ) ;
968968 }
969969 public async removeScheduledCardReview ( reviewId : string ) : Promise < void > {
970- return removeScheduledCardReviewLocal ( this . remoteDB , reviewId ) ;
970+ return removeScheduledCardReviewLocal ( this . writeDB , reviewId ) ;
971971 }
972972
973973 public async registerForClassroom (
Original file line number Diff line number Diff line change @@ -125,9 +125,9 @@ export function scheduleCardReviewLocal(
125125 void userDB . put < ScheduledCard > ( {
126126 _id : DocTypePrefixes [ DocType . SCHEDULED_CARD ] + review . time . format ( REVIEW_TIME_FORMAT ) ,
127127 cardId : review . card_id ,
128- reviewTime : review . time ,
128+ reviewTime : review . time . toISOString ( ) ,
129129 courseId : review . course_id ,
130- scheduledAt : now ,
130+ scheduledAt : now . toISOString ( ) ,
131131 scheduledFor : review . scheduledFor ,
132132 schedulingAgentId : review . schedulingAgentId ,
133133 } ) ;
Original file line number Diff line number Diff line change @@ -198,9 +198,9 @@ export function scheduleCardReview(review: {
198198 void getCouchUserDB ( review . user ) . put < ScheduledCard > ( {
199199 _id : DocTypePrefixes [ DocType . SCHEDULED_CARD ] + review . time . format ( REVIEW_TIME_FORMAT ) ,
200200 cardId : review . card_id ,
201- reviewTime : review . time ,
201+ reviewTime : review . time . toISOString ( ) ,
202202 courseId : review . course_id ,
203- scheduledAt : now ,
203+ scheduledAt : now . toISOString ( ) ,
204204 scheduledFor : review . scheduledFor ,
205205 schedulingAgentId : review . schedulingAgentId ,
206206 } ) ;
Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ import * as directives from 'vuetify/directives';
1414import { aliases , mdi } from 'vuetify/iconsets/mdi' ;
1515
1616// data layer
17- import { initializeDataLayer } from '@vue-skuilder/db' ;
17+ import { initializeDataLayer , getDataLayer } from '@vue-skuilder/db' ;
1818
1919// auth store
2020import { useAuthStore } from '@vue-skuilder/common-ui' ;
@@ -163,5 +163,28 @@ import config from '../skuilder.config.json';
163163
164164 await useAuthStore ( ) . init ( ) ;
165165
166+ // Auto-register user for the course in standalone mode
167+ if ( config . course ) {
168+ try {
169+ const authStore = useAuthStore ( ) ;
170+ const user = getDataLayer ( ) . getUserDB ( ) ;
171+
172+ // Check if user is already registered for the course
173+ const courseRegistrations = await user . getCourseRegistrationsDoc ( ) ;
174+ const isRegistered = courseRegistrations . courses . some ( c => c . courseID === config . course ) ;
175+
176+ if ( ! isRegistered ) {
177+ console . log ( `[Standalone] Auto-registering user for course: ${ config . course } ` ) ;
178+ await user . registerForCourse ( config . course , false ) ; // non-preview mode
179+ console . log ( `[Standalone] Auto-registration completed for course: ${ config . course } ` ) ;
180+ } else {
181+ console . log ( `[Standalone] User already registered for course: ${ config . course } ` ) ;
182+ }
183+ } catch ( error ) {
184+ console . warn ( `[Standalone] Failed to auto-register for course ${ config . course } :` , error ) ;
185+ // Don't block app startup on registration failure
186+ }
187+ }
188+
166189 app . mount ( '#app' ) ;
167190} ) ( ) ;
Original file line number Diff line number Diff line change 22 <v-container >
33 <v-row >
44 <v-col cols =" 12" >
5- <h1 class =" text-h4 mb-4" >Study Session</h1 >
6-
75 <div v-if =" sessionPrepared" >
86 <StudySession
97 :content-sources =" sessionContentSources"
Original file line number Diff line number Diff line change @@ -57,8 +57,8 @@ onMounted(async () => {
5757 const courseDB = dataLayer .getCourseDB (courseId );
5858
5959 // Try to get user's ELO profile for this course
60- const userRegistrations = await dataLayer .getUserDB ( user . getUsername ()). getCourseRegistrations ();
61- const courseReg = userRegistrations . find ( reg => reg . courseID === courseId );
60+ const userDB = dataLayer .getUserDB ();
61+ const courseReg = await userDB . getCourseRegDoc ( courseId );
6262
6363 if (courseReg && courseReg .elo ) {
6464 userElo .value = courseReg .elo ;
You can’t perform that action at this time.
0 commit comments