rapid-router 5.4.1__py2.py3-none-any.whl → 7.6.8__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. example_project/rapid_router_test_settings.py +164 -0
  2. example_project/settings.py +152 -0
  3. example_project/urls.py +15 -0
  4. example_project/{example_project/wsgi.py → wsgi.py} +2 -1
  5. game/__init__.py +1 -1
  6. game/admin.py +43 -4
  7. game/app_settings.py +3 -7
  8. game/character.py +26 -18
  9. game/decor.py +172 -97
  10. game/end_to_end_tests/base_game_test.py +44 -33
  11. game/end_to_end_tests/editor_page.py +17 -2
  12. game/end_to_end_tests/game_page.py +127 -45
  13. game/end_to_end_tests/selenium_test_case.py +1 -20
  14. game/end_to_end_tests/test_cow_crashes.py +3 -5
  15. game/end_to_end_tests/test_language_dropdown.py +14 -0
  16. game/end_to_end_tests/test_level_editor.py +290 -0
  17. game/end_to_end_tests/test_level_failures.py +1 -1
  18. game/end_to_end_tests/test_level_selection.py +79 -0
  19. game/end_to_end_tests/test_play_through.py +240 -102
  20. game/end_to_end_tests/test_python_levels.py +44 -13
  21. game/end_to_end_tests/test_saving_workspace.py +22 -0
  22. game/forms.py +9 -2
  23. game/level_management.py +38 -29
  24. game/messages.py +1218 -203
  25. game/migrations/0001_squashed_0025_levels_ordering_pt1.py +19 -1
  26. game/migrations/0026_levels_pt2.py +13 -2
  27. game/migrations/0032_cannot_turn_left_level.py +13 -2
  28. game/migrations/0033_recursion_level.py +13 -2
  29. game/migrations/0034_joes_level.py +13 -2
  30. game/migrations/0035_disable_route_score_level_70.py +0 -2
  31. game/migrations/0036_level_score_73.py +0 -2
  32. game/migrations/0037_level_score_79.py +0 -2
  33. game/migrations/0038_level_score_40.py +0 -1
  34. game/migrations/0042_level_score_73.py +0 -2
  35. game/migrations/0048_add_cow_field_and_blocks.py +0 -2
  36. game/migrations/0049_level_score_34.py +0 -2
  37. game/migrations/0050_level_score_40.py +0 -2
  38. game/migrations/0051_level_score_49.py +0 -1
  39. game/migrations/0076_level_locked_for_class.py +19 -0
  40. game/migrations/0077_alter_level_next_level.py +52 -0
  41. game/migrations/0078_add_block_types.py +23 -0
  42. game/migrations/0079_populate_block_type_add_cow_blocks.py +60 -0
  43. game/migrations/0080_level_disable_algorithm_score.py +18 -0
  44. game/migrations/0081_first_12_levels_no_algo_score.py +29 -0
  45. game/migrations/0082_level_43_solution.py +16 -0
  46. game/migrations/0083_add_cows_to_existing_levels.py +195 -0
  47. game/migrations/0084_alter_block_block_type.py +18 -0
  48. game/migrations/0085_add_new_blocks.py +53 -0
  49. game/migrations/0086_loop_levels.py +482 -0
  50. game/migrations/0087_workspace_python_view_enabled.py +18 -0
  51. game/migrations/0088_rename_episodes.py +35 -0
  52. game/migrations/0089_episodes_in_development.py +30 -0
  53. game/migrations/0090_add_missing_model_solutions.py +144 -0
  54. game/migrations/0091_disable_algo_score_if_no_model_solution.py +46 -0
  55. game/migrations/0092_disable_algo_score_in_custom_levels.py +28 -0
  56. game/migrations/0093_alter_level_character_name.py +18 -0
  57. game/migrations/0094_add_hint_lesson_subtitle_to_levels.py +28 -0
  58. game/migrations/0095_level_commands.py +18 -0
  59. game/migrations/0096_alter_level_commands.py +18 -0
  60. game/migrations/0097_add_python_den_levels.py +1515 -0
  61. game/migrations/0098_add_episode_link_fields.py +44 -0
  62. game/migrations/0099_python_episodes_links.py +103 -0
  63. game/migrations/0100_reorder_python_levels.py +179 -0
  64. game/migrations/0101_rename_episodes.py +45 -0
  65. game/migrations/0102_reoder_episodes_13_14.py +136 -0
  66. game/migrations/0103_level_1015_solution.py +26 -0
  67. game/migrations/0104_remove_level_direct_drive.py +17 -0
  68. game/migrations/0105_delete_invalid_attempts.py +18 -0
  69. game/migrations/0106_fields_to_snake_case.py +48 -0
  70. game/migrations/0107_rename_worksheet_link_episode_student_worksheet_link.py +18 -0
  71. game/migrations/0108_episode_indy_worksheet_link.py +18 -0
  72. game/migrations/0109_create_episodes_23_and_24.py +99 -0
  73. game/migrations/0110_remove_episode_indy_worksheet_link_and_more.py +100 -0
  74. game/migrations/0111_create_worksheets.py +149 -0
  75. game/migrations/0112_worksheet_locked_classes.py +21 -0
  76. game/migrations/0113_level_needs_approval.py +18 -0
  77. game/migrations/0114_default_and_non_student_levels_no_approval.py +31 -0
  78. game/migrations/0115_level_level__default_does_not_need_approval.py +22 -0
  79. game/migrations/0116_update_worksheet_video_links.py +68 -0
  80. game/migrations/0117_update_solutions_to_if_else.py +61 -0
  81. game/models.py +157 -16
  82. game/permissions.py +34 -19
  83. game/python_den_urls.py +26 -0
  84. game/random_road.py +43 -127
  85. game/serializers.py +12 -17
  86. game/static/django_reverse_js/js/reverse.js +171 -0
  87. game/static/game/css/LilitaOne-Regular.ttf +0 -0
  88. game/static/game/css/backgrounds.css +14 -10
  89. game/static/game/css/dataTables.custom.css +4 -2
  90. game/static/game/css/dataTables.jqueryui.css +561 -320
  91. game/static/game/css/editor.css +47 -0
  92. game/static/game/css/game.css +43 -49
  93. game/static/game/css/game_screen.css +116 -53
  94. game/static/game/css/jquery.dataTables.css +455 -251
  95. game/static/game/css/level_editor.css +10 -1
  96. game/static/game/css/level_selection.css +32 -3
  97. game/static/game/css/level_share.css +6 -5
  98. game/static/game/css/skulpt/codemirror.css +1 -0
  99. game/static/game/image/Python_Den_hero_student.png +0 -0
  100. game/static/game/image/Python_levels_page.svg +1954 -0
  101. game/static/game/image/characters/front_view/Electric_van.svg +448 -0
  102. game/static/game/image/characters/top_view/Electric_van.svg +448 -0
  103. game/static/game/image/characters/top_view/Sleigh.svg +436 -0
  104. game/static/game/image/decor/city/solar_panel.svg +1200 -0
  105. game/static/game/image/decor/farm/solar_panel.svg +86 -0
  106. game/static/game/image/decor/grass/solar_panel.svg +86 -0
  107. game/static/game/image/decor/snow/barn.svg +1788 -0
  108. game/static/game/image/decor/snow/cfc.svg +1050 -147
  109. game/static/game/image/decor/snow/crops.svg +7370 -0
  110. game/static/game/image/decor/snow/hospital.svg +1220 -0
  111. game/static/game/image/decor/snow/house1.svg +971 -0
  112. game/static/game/image/decor/snow/house2.svg +1574 -0
  113. game/static/game/image/decor/snow/school.svg +1071 -0
  114. game/static/game/image/decor/snow/shop.svg +3211 -0
  115. game/static/game/image/decor/snow/solar_panel.svg +173 -0
  116. game/static/game/image/electric_van.svg +448 -0
  117. game/static/game/image/icons/add_house.svg +26 -0
  118. game/static/game/image/icons/delete_house.svg +26 -0
  119. game/static/game/image/icons/description.svg +1 -0
  120. game/static/game/image/icons/hint.svg +1 -0
  121. game/static/game/image/icons/if_else.svg +3 -0
  122. game/static/game/image/icons/python.svg +1 -1
  123. game/static/game/image/if_else_example.png +0 -0
  124. game/static/game/image/pigeon.svg +684 -0
  125. game/static/game/image/python_den_header.svg +19 -0
  126. game/static/game/js/animation.js +84 -28
  127. game/static/game/js/blockly/msg/js/bg.js +52 -1
  128. game/static/game/js/blockly/msg/js/ca.js +52 -1
  129. game/static/game/js/blockly/msg/js/en-gb.js +52 -1
  130. game/static/game/js/blockly/msg/js/en.js +52 -1
  131. game/static/game/js/blockly/msg/js/es.js +52 -1
  132. game/static/game/js/blockly/msg/js/fr.js +52 -1
  133. game/static/game/js/blockly/msg/js/hi.js +52 -1
  134. game/static/game/js/blockly/msg/js/it.js +52 -1
  135. game/static/game/js/blockly/msg/js/pl.js +52 -1
  136. game/static/game/js/blockly/msg/js/pt-br.js +52 -1
  137. game/static/game/js/blockly/msg/js/ru.js +52 -1
  138. game/static/game/js/blockly/msg/js/ur.js +52 -1
  139. game/static/game/js/blocklyCompiler.js +550 -392
  140. game/static/game/js/blocklyControl.js +335 -302
  141. game/static/game/js/blocklyCustomBlocks.js +691 -458
  142. game/static/game/js/blocklyCustomisations.js +3 -1
  143. game/static/game/js/button.js +12 -0
  144. game/static/game/js/cow.js +15 -130
  145. game/static/game/js/drawing.js +313 -201
  146. game/static/game/js/editor.js +23 -0
  147. game/static/game/js/game.js +148 -139
  148. game/static/game/js/jquery.dataTables.min.js +3 -159
  149. game/static/game/js/level_editor.js +823 -448
  150. game/static/game/js/level_moderation.js +33 -2
  151. game/static/game/js/level_selection.js +62 -25
  152. game/static/game/js/loadLanguages.js +21 -0
  153. game/static/game/js/map.js +106 -36
  154. game/static/game/js/model.js +55 -107
  155. game/static/game/js/pathFinder.js +73 -72
  156. game/static/game/js/program.js +184 -193
  157. game/static/game/js/pythonControl.js +14 -1
  158. game/static/game/js/scoreboard.js +0 -37
  159. game/static/game/js/scoreboardSharedLevels.js +48 -0
  160. game/static/game/js/sharing.js +22 -10
  161. game/static/game/js/skulpt/codemirror.js +5 -4
  162. game/static/game/js/skulpt/skulpt-stdlib.js +1 -1
  163. game/static/game/js/sound.js +52 -5
  164. game/static/game/js/van.js +0 -7
  165. game/static/game/raphael_image/characters/top_view/Electric_van.svg +448 -0
  166. game/static/game/raphael_image/characters/top_view/Sleigh.svg +436 -0
  167. game/static/game/raphael_image/decor/city/solar_panel.svg +1200 -0
  168. game/static/game/raphael_image/decor/farm/solar_panel.svg +86 -0
  169. game/static/game/raphael_image/decor/grass/solar_panel.svg +86 -0
  170. game/static/game/raphael_image/decor/snow/barn.svg +1788 -0
  171. game/static/game/raphael_image/decor/snow/cfc.svg +1050 -147
  172. game/static/game/raphael_image/decor/snow/crops.svg +7370 -0
  173. game/static/game/raphael_image/decor/snow/hospital.svg +1220 -0
  174. game/static/game/raphael_image/decor/snow/house1.svg +971 -0
  175. game/static/game/raphael_image/decor/snow/house2.svg +1574 -0
  176. game/static/game/raphael_image/decor/snow/school.svg +1071 -0
  177. game/static/game/raphael_image/decor/snow/shop.svg +3211 -0
  178. game/static/game/raphael_image/decor/snow/solar_panel.svg +173 -0
  179. game/static/game/raphael_image/pigeon.svg +685 -0
  180. game/static/game/raphael_image/sleigh_wreckage.svg +430 -0
  181. game/static/game/sass/game.scss +22 -6
  182. game/static/game/sound/clown_horn.mp3 +0 -0
  183. game/static/game/sound/clown_horn.ogg +0 -0
  184. game/static/game/sound/electric_van_starting.mp3 +0 -0
  185. game/static/game/sound/electric_van_starting.ogg +0 -0
  186. game/static/game/sound/pigeon.mp3 +0 -0
  187. game/static/game/sound/pigeon.ogg +0 -0
  188. game/static/game/sound/sleigh_bells.mp3 +0 -0
  189. game/static/game/sound/sleigh_bells.ogg +0 -0
  190. game/static/game/sound/sleigh_crash.mp3 +0 -0
  191. game/static/game/sound/sleigh_crash.ogg +0 -0
  192. game/templates/game/base.html +35 -15
  193. game/templates/game/basenonav.html +23 -17
  194. game/templates/game/game.html +236 -111
  195. game/templates/game/level_editor.html +353 -275
  196. game/templates/game/level_moderation.html +19 -6
  197. game/templates/game/level_selection.html +75 -62
  198. game/templates/game/python_den_level_selection.html +291 -0
  199. game/templates/game/python_den_worksheet.html +101 -0
  200. game/templates/game/scoreboard.html +88 -65
  201. game/tests/test_level_editor.py +210 -35
  202. game/tests/test_level_moderation.py +6 -20
  203. game/tests/test_level_selection.py +332 -11
  204. game/tests/test_python_den_worksheet.py +85 -0
  205. game/tests/test_scoreboard.py +258 -66
  206. game/tests/utils/level.py +43 -3
  207. game/tests/utils/teacher.py +2 -2
  208. game/theme.py +21 -21
  209. game/urls.py +125 -78
  210. game/views/language_code_conversions.py +90 -0
  211. game/views/level.py +201 -63
  212. game/views/level_editor.py +109 -48
  213. game/views/level_moderation.py +29 -6
  214. game/views/level_selection.py +179 -56
  215. game/views/level_solutions.py +600 -106
  216. game/views/scoreboard.py +181 -66
  217. game/views/worksheet.py +25 -0
  218. rapid_router-7.6.8.dist-info/METADATA +174 -0
  219. {rapid_router-5.4.1.dist-info → rapid_router-7.6.8.dist-info}/RECORD +222 -242
  220. {rapid_router-5.4.1.dist-info → rapid_router-7.6.8.dist-info}/WHEEL +1 -1
  221. rapid_router-7.6.8.dist-info/licenses/LICENSE.md +3 -0
  222. example_project/example_project/__init__.py +0 -1
  223. example_project/example_project/settings.py +0 -54
  224. example_project/example_project/urls.py +0 -16
  225. example_project/manage.py +0 -10
  226. game/autoconfig.py +0 -59
  227. game/csp_config.py +0 -23
  228. game/locale/ar_SA/LC_MESSAGES/django.mo +0 -0
  229. game/locale/ar_SA/LC_MESSAGES/django.po +0 -405
  230. game/locale/ar_SA/LC_MESSAGES/djangojs.mo +0 -0
  231. game/locale/ar_SA/LC_MESSAGES/djangojs.po +0 -743
  232. game/locale/bg_BG/LC_MESSAGES/django.mo +0 -0
  233. game/locale/bg_BG/LC_MESSAGES/django.po +0 -405
  234. game/locale/bg_BG/LC_MESSAGES/djangojs.mo +0 -0
  235. game/locale/bg_BG/LC_MESSAGES/djangojs.po +0 -739
  236. game/locale/ca_ES/LC_MESSAGES/django.mo +0 -0
  237. game/locale/ca_ES/LC_MESSAGES/django.po +0 -405
  238. game/locale/ca_ES/LC_MESSAGES/djangojs.mo +0 -0
  239. game/locale/ca_ES/LC_MESSAGES/djangojs.po +0 -740
  240. game/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  241. game/locale/cs_CZ/LC_MESSAGES/django.po +0 -405
  242. game/locale/cs_CZ/LC_MESSAGES/djangojs.mo +0 -0
  243. game/locale/cs_CZ/LC_MESSAGES/djangojs.po +0 -741
  244. game/locale/cy_GB/LC_MESSAGES/django.mo +0 -0
  245. game/locale/cy_GB/LC_MESSAGES/django.po +0 -405
  246. game/locale/cy_GB/LC_MESSAGES/djangojs.mo +0 -0
  247. game/locale/cy_GB/LC_MESSAGES/djangojs.po +0 -743
  248. game/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  249. game/locale/de_DE/LC_MESSAGES/django.po +0 -405
  250. game/locale/de_DE/LC_MESSAGES/djangojs.mo +0 -0
  251. game/locale/de_DE/LC_MESSAGES/djangojs.po +0 -739
  252. game/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  253. game/locale/el_GR/LC_MESSAGES/django.po +0 -405
  254. game/locale/el_GR/LC_MESSAGES/djangojs.mo +0 -0
  255. game/locale/el_GR/LC_MESSAGES/djangojs.po +0 -739
  256. game/locale/en_GB/LC_MESSAGES/django.mo +0 -0
  257. game/locale/en_GB/LC_MESSAGES/django.po +0 -405
  258. game/locale/en_GB/LC_MESSAGES/djangojs.mo +0 -0
  259. game/locale/en_GB/LC_MESSAGES/djangojs.po +0 -739
  260. game/locale/es_ES/LC_MESSAGES/django.mo +0 -0
  261. game/locale/es_ES/LC_MESSAGES/django.po +0 -405
  262. game/locale/es_ES/LC_MESSAGES/djangojs.mo +0 -0
  263. game/locale/es_ES/LC_MESSAGES/djangojs.po +0 -739
  264. game/locale/fi_FI/LC_MESSAGES/django.mo +0 -0
  265. game/locale/fi_FI/LC_MESSAGES/django.po +0 -405
  266. game/locale/fi_FI/LC_MESSAGES/djangojs.mo +0 -0
  267. game/locale/fi_FI/LC_MESSAGES/djangojs.po +0 -739
  268. game/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  269. game/locale/fr_FR/LC_MESSAGES/django.po +0 -405
  270. game/locale/fr_FR/LC_MESSAGES/djangojs.mo +0 -0
  271. game/locale/fr_FR/LC_MESSAGES/djangojs.po +0 -739
  272. game/locale/gu_IN/LC_MESSAGES/django.mo +0 -0
  273. game/locale/gu_IN/LC_MESSAGES/django.po +0 -405
  274. game/locale/gu_IN/LC_MESSAGES/djangojs.mo +0 -0
  275. game/locale/gu_IN/LC_MESSAGES/djangojs.po +0 -739
  276. game/locale/hi_IN/LC_MESSAGES/django.mo +0 -0
  277. game/locale/hi_IN/LC_MESSAGES/django.po +0 -405
  278. game/locale/hi_IN/LC_MESSAGES/djangojs.mo +0 -0
  279. game/locale/hi_IN/LC_MESSAGES/djangojs.po +0 -739
  280. game/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  281. game/locale/id_ID/LC_MESSAGES/django.po +0 -405
  282. game/locale/id_ID/LC_MESSAGES/djangojs.mo +0 -0
  283. game/locale/id_ID/LC_MESSAGES/djangojs.po +0 -738
  284. game/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  285. game/locale/it_IT/LC_MESSAGES/django.po +0 -405
  286. game/locale/it_IT/LC_MESSAGES/djangojs.mo +0 -0
  287. game/locale/it_IT/LC_MESSAGES/djangojs.po +0 -739
  288. game/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  289. game/locale/ja_JP/LC_MESSAGES/django.po +0 -405
  290. game/locale/ja_JP/LC_MESSAGES/djangojs.mo +0 -0
  291. game/locale/ja_JP/LC_MESSAGES/djangojs.po +0 -738
  292. game/locale/lol_US/LC_MESSAGES/django.mo +0 -0
  293. game/locale/lol_US/LC_MESSAGES/django.po +0 -405
  294. game/locale/lol_US/LC_MESSAGES/djangojs.mo +0 -0
  295. game/locale/lol_US/LC_MESSAGES/djangojs.po +0 -739
  296. game/locale/nb_NO/LC_MESSAGES/django.mo +0 -0
  297. game/locale/nb_NO/LC_MESSAGES/django.po +0 -405
  298. game/locale/nb_NO/LC_MESSAGES/djangojs.mo +0 -0
  299. game/locale/nb_NO/LC_MESSAGES/djangojs.po +0 -739
  300. game/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  301. game/locale/nl_NL/LC_MESSAGES/django.po +0 -405
  302. game/locale/nl_NL/LC_MESSAGES/djangojs.mo +0 -0
  303. game/locale/nl_NL/LC_MESSAGES/djangojs.po +0 -739
  304. game/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  305. game/locale/pl_PL/LC_MESSAGES/django.po +0 -405
  306. game/locale/pl_PL/LC_MESSAGES/djangojs.mo +0 -0
  307. game/locale/pl_PL/LC_MESSAGES/djangojs.po +0 -741
  308. game/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  309. game/locale/pt_BR/LC_MESSAGES/django.po +0 -405
  310. game/locale/pt_BR/LC_MESSAGES/djangojs.mo +0 -0
  311. game/locale/pt_BR/LC_MESSAGES/djangojs.po +0 -739
  312. game/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  313. game/locale/pt_PT/LC_MESSAGES/django.po +0 -405
  314. game/locale/pt_PT/LC_MESSAGES/djangojs.mo +0 -0
  315. game/locale/pt_PT/LC_MESSAGES/djangojs.po +0 -739
  316. game/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  317. game/locale/ro_RO/LC_MESSAGES/django.po +0 -405
  318. game/locale/ro_RO/LC_MESSAGES/djangojs.mo +0 -0
  319. game/locale/ro_RO/LC_MESSAGES/djangojs.po +0 -740
  320. game/locale/ru_RU/LC_MESSAGES/django.mo +0 -0
  321. game/locale/ru_RU/LC_MESSAGES/django.po +0 -405
  322. game/locale/ru_RU/LC_MESSAGES/djangojs.mo +0 -0
  323. game/locale/ru_RU/LC_MESSAGES/djangojs.po +0 -741
  324. game/locale/sv_SE/LC_MESSAGES/django.mo +0 -0
  325. game/locale/sv_SE/LC_MESSAGES/django.po +0 -405
  326. game/locale/sv_SE/LC_MESSAGES/djangojs.mo +0 -0
  327. game/locale/sv_SE/LC_MESSAGES/djangojs.po +0 -739
  328. game/locale/tl_PH/LC_MESSAGES/django.mo +0 -0
  329. game/locale/tl_PH/LC_MESSAGES/django.po +0 -405
  330. game/locale/tl_PH/LC_MESSAGES/djangojs.mo +0 -0
  331. game/locale/tl_PH/LC_MESSAGES/djangojs.po +0 -739
  332. game/locale/tlh_AA/LC_MESSAGES/django.mo +0 -0
  333. game/locale/tlh_AA/LC_MESSAGES/django.po +0 -405
  334. game/locale/tlh_AA/LC_MESSAGES/djangojs.mo +0 -0
  335. game/locale/tlh_AA/LC_MESSAGES/djangojs.po +0 -739
  336. game/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  337. game/locale/tr_TR/LC_MESSAGES/django.po +0 -405
  338. game/locale/tr_TR/LC_MESSAGES/djangojs.mo +0 -0
  339. game/locale/tr_TR/LC_MESSAGES/djangojs.po +0 -740
  340. game/locale/ur_IN/LC_MESSAGES/django.mo +0 -0
  341. game/locale/ur_IN/LC_MESSAGES/django.po +0 -405
  342. game/locale/ur_IN/LC_MESSAGES/djangojs.mo +0 -0
  343. game/locale/ur_IN/LC_MESSAGES/djangojs.po +0 -739
  344. game/locale/ur_PK/LC_MESSAGES/django.mo +0 -0
  345. game/locale/ur_PK/LC_MESSAGES/django.po +0 -405
  346. game/locale/ur_PK/LC_MESSAGES/djangojs.mo +0 -0
  347. game/locale/ur_PK/LC_MESSAGES/djangojs.po +0 -739
  348. game/static/game/image/actions/go.svg +0 -18
  349. game/static/game/image/icons/destination.svg +0 -9
  350. game/static/game/js/pqselect.min.js +0 -9
  351. game/static/game/js/widget-scroller.js +0 -906
  352. rapid_router-5.4.1.dist-info/LICENSE.md +0 -577
  353. rapid_router-5.4.1.dist-info/METADATA +0 -24
  354. {rapid_router-5.4.1.dist-info → rapid_router-7.6.8.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,47 @@
1
+ editor-wc {
2
+ display: block;
3
+ width: 66%;
4
+ }
5
+
6
+ video,
7
+ iframe {
8
+ border: 1px solid black;
9
+ border-radius: 5px;
10
+ }
11
+
12
+ .tab-pane video,
13
+ .tab-pane iframe {
14
+ border-radius: 0 0 5px 5px;
15
+ }
16
+
17
+ .nav-tabs {
18
+ border-bottom: 0;
19
+ }
20
+
21
+ .nav-tabs > li > a {
22
+ text-decoration: none;
23
+ }
24
+
25
+ .nav-tabs > li > a,
26
+ .nav-tabs > li > a:hover,
27
+ .nav-tabs > li > a:focus {
28
+ border: 1px solid grey;
29
+ border-bottom-color: transparent;
30
+ font-weight: normal;
31
+ }
32
+
33
+ .nav-tabs > li.active > a,
34
+ .nav-tabs > li.active > a:hover,
35
+ .nav-tabs > li.active > a:focus {
36
+ border: 1px solid black;
37
+ border-bottom-color: transparent;
38
+ font-weight: bold;
39
+ text-decoration: none;
40
+ }
41
+
42
+ @media (max-width: 1000px) {
43
+ editor-wc {
44
+ height: 600px;
45
+ width: 100%;
46
+ }
47
+ }
@@ -1,8 +1,8 @@
1
1
  #paper {
2
2
  width: 50%;
3
- height:100%;
4
- overflow:scroll;
5
- z-index:6;
3
+ height: 100%;
4
+ overflow: scroll;
5
+ z-index: 6;
6
6
  float: left;
7
7
  padding-left: 16px;
8
8
  }
@@ -18,12 +18,17 @@
18
18
  }
19
19
  }
20
20
 
21
+ @font-face {
22
+ font-family: LilitaOne;
23
+ src: url(LilitaOne-Regular.ttf);
24
+ }
25
+
21
26
  /*****************/
22
27
  /* Tab structure */
23
28
  /*****************/
24
29
 
25
30
  #tabs {
26
- width: 95px;
31
+ width: fit-content;
27
32
  height: 100%;
28
33
  float: left;
29
34
  }
@@ -37,19 +42,30 @@
37
42
  }
38
43
 
39
44
  #tabs #blockly_tab span,
40
- #tabs #python_tab span {
45
+ #tabs #python_tab span,
46
+ #tabs #language_tab select {
47
+ color: white;
48
+ }
49
+
50
+ #language_dropdown {
51
+ -webkit-appearance: none;
52
+ -moz-appearance: none;
53
+ appearance: none;
54
+ background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='white'><polygon points='0,0 7,0 3.5,5'/></svg>") 96% 60% no-repeat;
55
+ }
56
+
57
+ option {
41
58
  color: black;
42
59
  }
43
60
 
44
61
  #tabs #blockly_tab img,
45
62
  #tabs #python_tab img {
46
- filter: none;
63
+ filter: invert(1);
47
64
  }
48
65
 
49
66
  #right {
50
67
  position: relative;
51
68
  height: 100%;
52
- margin-left: 95px;
53
69
  overflow: hidden;
54
70
  }
55
71
 
@@ -165,6 +181,9 @@ div > .navigation_button_kurono {
165
181
  margin:0;
166
182
  border: none;
167
183
  resize: none;
184
+ height: 100vh;
185
+ min-height: 100vh;
186
+ max-height: 100vh;
168
187
  }
169
188
 
170
189
  #editor {
@@ -251,7 +270,7 @@ div > .navigation_button_kurono {
251
270
  /* Fuel gauge */
252
271
  /**************/
253
272
 
254
- #fuelGauge {
273
+ #fuelGauge, #electricFuelGauge {
255
274
  position: fixed;
256
275
  z-index: 7;
257
276
  width: 100px;
@@ -305,21 +324,11 @@ div > .navigation_button_kurono {
305
324
  cursor: col-resize;
306
325
  }
307
326
 
308
- /******************/
309
- /** Direct drive **/
310
- /******************/
311
-
312
- #direct_drive {
313
- width: 200px;
314
- height: 95px;
315
- position: absolute;
316
- z-index: 7;
317
- left: 50%;
318
- bottom: 20px;
319
- margin-left: 35px;
320
- }
327
+ /**************/
328
+ /** Zoom pan **/
329
+ /**************/
321
330
 
322
- .direct_drive_button {
331
+ .zoom_pan_button {
323
332
  display: inline;
324
333
  cursor: pointer;
325
334
  background-repeat: no-repeat;
@@ -333,8 +342,8 @@ div > .navigation_button_kurono {
333
342
  transition: background-size 0.3s;
334
343
  }
335
344
 
336
- .direct_drive_button:hover,
337
- .direct_drive_button:focus
345
+ .zoom_pan_button:hover,
346
+ .zoom_pan_button:focus
338
347
  {
339
348
  background-color: rgba(240,240,240,0.3);
340
349
  background-size: 50px 50px;
@@ -342,38 +351,15 @@ div > .navigation_button_kurono {
342
351
  outline: none;
343
352
  }
344
353
 
345
- #go {
346
- left: 60px;
347
- bottom: 0px;
348
- background-image : url('/static/game/image/actions/go.svg');
349
- }
350
-
351
- #turnLeft {
352
- left: 10px;
353
- bottom: 0px;
354
- background-image : url('/static/game/image/actions/left.svg');
355
- }
356
-
357
- #turnRight {
358
- left: 110px;
359
- bottom: 0px;
360
- background-image : url('/static/game/image/actions/right.svg');
361
- }
362
-
363
- #moveForward {
364
- left: 60px;
365
- bottom: 50px;
366
- background-image : url('/static/game/image/actions/forward.svg');
367
- }
368
-
369
354
  .blocklyWidgetDiv {
370
355
  line-height: 1;
371
356
  }
372
357
 
373
358
  #zoom_pan {
374
- right: 10%;
359
+ right: 5%;
375
360
  position: absolute;
376
361
  height: 100px;
362
+ width: 100px;
377
363
  z-index: 7;
378
364
  }
379
365
 
@@ -388,3 +374,11 @@ div > .navigation_button_kurono {
388
374
  bottom: 0px;
389
375
  background-image : url('/static/game/image/actions/btn_zoom_in.svg');
390
376
  }
377
+
378
+ /**************/
379
+ /* Python den */
380
+ /**************/
381
+
382
+ .game-header {
383
+ width: 100%;
384
+ }
@@ -87,6 +87,15 @@
87
87
  margin-right: 20px;
88
88
  }
89
89
 
90
+ video {
91
+ aspect-ratio: 16 / 9;
92
+ border: none;
93
+ height: 100%;
94
+ overflow: hidden;
95
+ position: relative;
96
+ width: 100%;
97
+ }
98
+
90
99
  /************/
91
100
  /** Tables **/
92
101
  /************/
@@ -162,12 +171,71 @@ table th {
162
171
  padding: 0px;
163
172
  }
164
173
 
174
+ .navigation_button_portal_secondary {
175
+ min-width: 180px;
176
+ position: relative;
177
+ overflow: hidden;
178
+ text-align: center;
179
+ background: transparent;
180
+ border-radius: 8px;
181
+ cursor: pointer;
182
+ color: black;
183
+ padding: 0px;
184
+ border: 3px solid #eab502;
185
+ display: flex;
186
+ flex-direction: row;
187
+ align-items: center;
188
+ }
189
+
165
190
  .navigation_button_portal:hover,
191
+ .navigation_button_portal:active,
166
192
  .navigation_button_portal:focus {
167
193
  box-shadow: 0px 6px 10px 0px rgb(0 0 0 / 14%), 0px 1px 18px 0px rgb(0 0 0 / 12%), 0px 3px 5px 0px rgb(0 0 0 / 20%);
168
194
  background: #ffd23b;
169
195
  }
170
196
 
197
+ .navigation_button_portal_secondary:hover,
198
+ .navigation_button_portal_secondary:active,
199
+ .navigation_button_portal_secondary:focus {
200
+ text-decoration: underline;
201
+ color: black;
202
+ background: white;
203
+ }
204
+
205
+ .navigation_button_portal_secondary:hover > svg,
206
+ .navigation_button_portal_secondary:focus > svg {
207
+ color: black;
208
+ }
209
+
210
+ .rapid-router-welcome {
211
+ width: 13rem;
212
+ }
213
+
214
+ .modal-buttons > button > svg {
215
+ height: 100%;
216
+ width: 20%;
217
+ }
218
+
219
+ #prev_button > span,
220
+ #next_button > span {
221
+ padding: 0;
222
+ margin: 0;
223
+ }
224
+
225
+ #prev_button,
226
+ #next_button {
227
+ justify-content: space-between;
228
+ }
229
+
230
+ #prev_button {
231
+ flex-direction: row-reverse;
232
+ padding-right: 1rem;
233
+ }
234
+
235
+ #next_button {
236
+ padding-left: 1rem;
237
+ }
238
+
171
239
  button > svg {
172
240
  width: 30%;
173
241
  height: 30%;
@@ -214,36 +282,17 @@ button > svg {
214
282
  box-shadow: 0px 6px 10px 0px rgb(0 0 0 / 14%), 0px 1px 18px 0px rgb(0 0 0 / 12%), 0px 3px 5px 0px rgb(0 0 0 / 20%);
215
283
  }
216
284
 
285
+ .description {
286
+ height: 100%;
287
+ }
288
+
217
289
  .navigation_button {
218
290
  display: inline-block;
219
291
  position: relative;
220
292
  overflow: hidden;
221
293
  text-align: center;
222
- background: #fbed21; /* Old browsers */
223
- background: -moz-linear-gradient(top, #fbed21 0%, #faaf3b 100%); /* FF3.6+ */
224
- background: -webkit-gradient(
225
- linear,
226
- left top,
227
- left bottom,
228
- color-stop(0%, #fbed21),
229
- color-stop(100%, #faaf3b)
230
- ); /* Chrome,Safari4+ */
231
- background: -webkit-linear-gradient(
232
- top,
233
- #fbed21 0%,
234
- #faaf3b 100%
235
- ); /* Chrome10+,Safari5.1+ */
236
- background: -o-linear-gradient(
237
- top,
238
- #fbed21 0%,
239
- #faaf3b 100%
240
- ); /* Opera 11.10+ */
241
- background: -ms-linear-gradient(top, #fbed21 0%, #faaf3b 100%); /* IE10+ */
242
- background: linear-gradient(to bottom, #fbed21 0%, #faaf3b 100%); /* W3C */
243
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fbed21', endColorstr='#faaf3b',GradientType=0 ); /* IE6-9 */
244
- border: solid;
245
- border-color: rgb(246, 146, 30);
246
- border-radius: 8px;
294
+ background: rgb(255, 210, 59);
295
+ border: none;
247
296
  cursor: pointer;
248
297
  color: black;
249
298
  padding: 0px;
@@ -251,31 +300,8 @@ button > svg {
251
300
 
252
301
  .navigation_button:hover,
253
302
  .navigation_button:focus {
254
- background: #fce623; /* Old browsers */
255
- background: -moz-linear-gradient(top, #fce623 0%, #f4a73a 100%); /* FF3.6+ */
256
- background: -webkit-gradient(
257
- linear,
258
- left top,
259
- left bottom,
260
- color-stop(0%, #fce623),
261
- color-stop(100%, #f4a73a)
262
- ); /* Chrome,Safari4+ */
263
- background: -webkit-linear-gradient(
264
- top,
265
- #fce623 0%,
266
- #f4a73a 100%
267
- ); /* Chrome10+,Safari5.1+ */
268
- background: -o-linear-gradient(
269
- top,
270
- #fce623 0%,
271
- #f4a73a 100%
272
- ); /* Opera 11.10+ */
273
- background: -ms-linear-gradient(top, #fce623 0%, #f4a73a 100%); /* IE10+ */
274
- background: linear-gradient(to bottom, #fce623 0%, #f4a73a 100%); /* W3C */
275
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fce623', endColorstr='#f4a73a',GradientType=0 ); /* IE6-9 */
276
- border-color: rgb(216, 125, 28);
277
- outline: none;
278
- color: black;
303
+ box-shadow: 0px 6px 10px 0px rgb(0 0 0 / 14%), 0px 1px 18px 0px rgb(0 0 0 / 12%), 0px 3px 5px 0px rgb(0 0 0 / 20%);
304
+ background: rgb(255, 210, 59);
279
305
  }
280
306
 
281
307
  .navigation_button:active {
@@ -312,7 +338,7 @@ button > svg {
312
338
  .long_button {
313
339
  min-width: 120px;
314
340
  font-size: 20px;
315
- height: 50px;
341
+ height: 42px;
316
342
  margin-top: 5px;
317
343
  margin-bottom: 5px;
318
344
  }
@@ -332,6 +358,12 @@ button > svg {
332
358
  padding-right: 10px;
333
359
  }
334
360
 
361
+ .navigation_button_portal_secondary.long_button span {
362
+ text-align: left;
363
+ margin: 0;
364
+ width: 100%;
365
+ }
366
+
335
367
  .long_button img + span {
336
368
  line-height: 30px;
337
369
  margin-left: 2px;
@@ -354,6 +386,7 @@ button > svg {
354
386
  width: 100%;
355
387
  height: 40px;
356
388
  padding-top: 10px;
389
+
357
390
  }
358
391
 
359
392
  .tab.hidden {
@@ -369,7 +402,7 @@ button > svg {
369
402
  text-align: left;
370
403
  margin: 0;
371
404
  display: block;
372
- padding: 5px 0px 5px 5px;
405
+ padding: 5px 5px 5px 5px;
373
406
  font-weight: bold;
374
407
  width: 100%;
375
408
  -webkit-transition: all 0.2s ease-in-out;
@@ -406,6 +439,17 @@ div.no-print div.tab label {
406
439
  background: rgba(255, 255, 255, 0.25);
407
440
  }
408
441
 
442
+ .tab select:hover {
443
+ background: rgba(255, 255, 255, 0.25);
444
+ }
445
+
446
+ .tab select {
447
+ color: black;
448
+ border: none;
449
+ font-weight: bold;
450
+ padding-right: 20px;
451
+ }
452
+
409
453
  #console {
410
454
  z-index: 100;
411
455
  display: flex;
@@ -457,6 +501,17 @@ div.no-print div.tab label {
457
501
  overflow: hidden;
458
502
  }
459
503
 
504
+ #tab_panes_wrapper .tab_pane {
505
+ padding: 20px 20px 0 30px;
506
+ overflow: scroll;
507
+ position: absolute;
508
+ width: 380px;
509
+ }
510
+
511
+ #scenery_pane {
512
+ overflow: visible !important;
513
+ }
514
+
460
515
  .tab_break {
461
516
  width: auto;
462
517
  height: 20px;
@@ -476,7 +531,15 @@ div.no-print div.tab label {
476
531
 
477
532
  #modal-content {
478
533
  float: left;
479
- width: 78%;
534
+ width: 100%;
535
+ }
536
+
537
+ .modal-buttons {
538
+ margin-top: 4rem;
539
+ display:flex;
540
+ flex-direction: row;
541
+ justify-content: space-between;
542
+ width: 100%;
480
543
  }
481
544
 
482
545
  #modal-buttons button {