+ {#if $response.loading}
+
+ {/if}
+
+ {#if $response.error}
+
ERROR: {$response.error.message}
+ {/if}
+
+ {#if !$response.loading && $response}
+
+ {#each $response.data.dynamicRoutes[1].options as routes}
+
+
+
+ {/each}
+
+ {/if}
+
+
+
diff --git a/client/src/pages/index.js b/client/src/pages/index.js
index dc10a8e2..60812ba6 100644
--- a/client/src/pages/index.js
+++ b/client/src/pages/index.js
@@ -1,5 +1,6 @@
export {default as About} from './About.svelte';
export {default as Course} from './Course.svelte';
+export {default as Labs} from './Labs.svelte';
export {default as CourseSession} from './CourseSession.svelte';
export {default as Home} from './Home.svelte';
export {default as NotFound} from './NotFound.svelte';
diff --git a/dynamic/router.py b/dynamic/router.py
index 325b36ea..36a82e8f 100644
--- a/dynamic/router.py
+++ b/dynamic/router.py
@@ -15,18 +15,44 @@
)
routes = {
- "demo": {"graph_theory": "/demo/graph-theory"},
- "books_shelves": {
- "books_shelves_0": "/books_shelves/books_shelves_0",
- "books_shelves_1": "/books_shelves/books_shelves_1",
- "books_shelves_2": "/books_shelves/books_shelves_2",
- "books_shelves_3": "/books_shelves/books_shelves_3",
+ 'books_shelves': {
+ "books_shelves_0": {
+ 'display_name': "Book Shelves",
+ 'route': "/books_shelves/books_shelves_0"
+ },
+ "books_shelves_1": {
+ 'display_name': "Book Shelve",
+ 'route': "/books_shelves/books_shelves_1"
+ },
+ "books_shelves_2": {
+ 'display_name': "Book Shelve",
+ 'route': "/books_shelves/books_shelves_2"
+ },
+ "books_shelves_3": {
+ 'display_name': "Book Shelve",
+ 'route': "/books_shelves/books_shelves_3"
+ },
},
- "comp2804": {
- "bitstrings-of-length": "/comp2804/bitstrings-of-length",
- "set-theory-question": "/comp2804/set-theory",
- "num-of-functions": "/comp2804/num-of-functions",
+ 'demo': {
+ 'graph_theory': {
+ 'display_name': "Graph Theory",
+ 'route': "/demo/graph-theory"
+ }
},
+ 'comp2804': {
+ 'bitstrings-of-length': {
+ 'display_name': "Bitstrings of Length",
+ 'route': "/comp2804/bitstrings-of-length"
+ },
+ 'set-theory-question': {
+ 'display_name': "Set Theory",
+ 'route': "/comp2804/set-theory"
+ },
+ 'num-of-functions': {
+ 'display_name': "Number of Functions",
+ 'route': "/comp2804/num-of-functions"
+ }
+ }
}
@@ -35,47 +61,44 @@ async def get_generators():
return routes
-@router.get(routes["demo"]["graph_theory"])
+@router.get(routes['demo']['graph_theory']['route'])
async def generate_graph_theory_question():
return graph_theory_question_generator.call()
############___Books_Shelves_Questions___############
-@router.get(routes["books_shelves"]["books_shelves_0"])
+@router.get(routes["books_shelves"]["books_shelves_0"]['route'])
async def generate_books_shelves_0_question():
return books_shelves_0_generator.call()
-@router.get(routes["books_shelves"]["books_shelves_1"])
+@router.get(routes["books_shelves"]["books_shelves_1"]['route'])
async def generate_books_shelves_1_question():
return books_shelves_1_generator.call()
-@router.get(routes["books_shelves"]["books_shelves_2"])
+@router.get(routes["books_shelves"]["books_shelves_2"]['route'])
async def generate_books_shelves_2_question():
return books_shelves_2_generator.call()
-@router.get(routes["books_shelves"]["books_shelves_3"])
+@router.get(routes["books_shelves"]["books_shelves_3"]['route'])
async def generate_books_shelves_3_question():
return books_shelves_3_generator.call()
-######################################################
-
-
-@router.get(routes["comp2804"]["set-theory-question"])
+@router.get(routes['comp2804']['set-theory-question']['route'])
async def generate_set_theory_question():
return set_theory_question_generator.call()
-@router.get(routes["comp2804"]["num-of-functions"])
+@router.get(routes['comp2804']['num-of-functions']['route'])
async def generate_num_of_functions_question(
lower_range: int = 0, upper_range: int = 10
):
return num_of_functions_generator.call(lower_range, upper_range)
-@router.get(routes["comp2804"]["bitstrings-of-length"])
+@router.get(routes['comp2804']['bitstrings-of-length']['route'])
async def bitstrings_of_length_question():
return bitstrings_of_length_generator.call()