RunestoneInteractive / RunestoneServer

Interactive books for computer science and mathematics
http://runestoneinteractive.org
Other
575 stars 502 forks source link

Books are "hardcoded" through the code base, should be "discovered" instead #1180

Closed yarikoptic closed 3 years ago

yarikoptic commented 5 years ago

ATM starting a server with e.g. only a single local book (good that book name is one of the known ;-)) still results to all known to Runestone Academy books listed in the drop down menu, although none of them (but the one installed) is actually available and results in 404. Here is a sample search which hints on locations where list of books is hardcoded. IMHO either books should be available as submodules within this repo (and then explored under that directory) or better -- be a configuration option to point to the directory of books outside of the RunestoneServer, so them and only them become available, and their names become available as the ones to build custom courses.

(git)hopa:~/doc/classes/psyc161-3rdparty/runestone/RunestoneServer[enh-dockerfile]git
$> git grep StudentCSP              
controllers/admin.py:    if row.course_name not in ['thinkcspy','pythonds','webfundamentals','apcsareview', 'JavaReview', 'pip2', 'StudentCSP']:
controllers/assignments.py:    if auth.user.course_name in ['thinkcspy', 'pythonds', 'JavaReview', 'webfundamentals', 'StudentCSP', 'apcsareview']:
controllers/dashboard.py:    if auth.user.course_name in ['thinkcspy','pythonds','JavaReview','JavaReview-RU', 'StudentCSP']:
rsmanage/initialize_tables.py:    db.courses.insert(course_name='StudentCSP', base_course='StudentCSP', term_start_date=datetime.date(2000, 1, 1))
views/default/user.html:                                <p><a class="btn btn-lg btn-primary" href="https://runestone.academy/runestone/static/StudentCSP/index.html" role="button">Learn more</a></p>
views/default/user.html:                    <li><strong>StudentCSP</strong> for the AP CS Principles</li>
views/designer/index.html:              <input type="radio" name="coursetype" value="StudentCSP" />
views/layout.html:                                    <li><a href="/{{=request.application}}/static/StudentCSP/index.html">CS Principles: Big Ideas inProgramming</a></li>
github-actions[bot] commented 3 years ago

Stale issue message