punkweb-bb 0.2.2__tar.gz → 0.3.0__tar.gz

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 (339) hide show
  1. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/PKG-INFO +55 -41
  2. punkweb_bb-0.3.0/README.md +168 -0
  3. punkweb_bb-0.3.0/punkweb_bb/__pycache__/admin.cpython-311.pyc +0 -0
  4. punkweb_bb-0.3.0/punkweb_bb/__pycache__/admin_forms.cpython-311.pyc +0 -0
  5. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/forms.cpython-311.pyc +0 -0
  6. punkweb_bb-0.3.0/punkweb_bb/__pycache__/models.cpython-311.pyc +0 -0
  7. punkweb_bb-0.3.0/punkweb_bb/__pycache__/settings.cpython-311.pyc +0 -0
  8. punkweb_bb-0.3.0/punkweb_bb/__pycache__/sitemap.cpython-311.pyc +0 -0
  9. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/tests.cpython-311.pyc +0 -0
  10. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/urls.cpython-311.pyc +0 -0
  11. punkweb_bb-0.3.0/punkweb_bb/__pycache__/utils.cpython-311.pyc +0 -0
  12. punkweb_bb-0.3.0/punkweb_bb/__pycache__/views.cpython-311.pyc +0 -0
  13. punkweb_bb-0.3.0/punkweb_bb/__pycache__/widgets.cpython-311.pyc +0 -0
  14. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/admin.py +0 -4
  15. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/admin_forms.py +6 -5
  16. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/forms.py +13 -5
  17. punkweb_bb-0.3.0/punkweb_bb/migrations/0005_alter_thread_options.py +24 -0
  18. punkweb_bb-0.3.0/punkweb_bb/migrations/0006_remove_boardprofile__signature_rendered_and_more.py +60 -0
  19. punkweb_bb-0.3.0/punkweb_bb/migrations/__pycache__/0005_alter_thread_options.cpython-311.pyc +0 -0
  20. punkweb_bb-0.3.0/punkweb_bb/migrations/__pycache__/0006_remove_boardprofile__signature_rendered_and_more.cpython-311.pyc +0 -0
  21. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/models.py +12 -9
  22. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/settings.py +1 -0
  23. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/thread.css +45 -28
  24. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/editor/markdown-editor.js +23 -0
  25. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.eslintrc.json +15 -0
  26. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.gitignore +108 -0
  27. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.prettierrc.json +1 -0
  28. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/LICENSE +21 -0
  29. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/README.md +240 -0
  30. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/babel.config.json +14 -0
  31. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/blank.html +18 -0
  32. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/demo.html +126 -0
  33. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.css +231 -0
  34. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.js +3086 -0
  35. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.min.css +1 -0
  36. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.min.js +1 -0
  37. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.tiny.js +1 -0
  38. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/_config.yml +1 -0
  39. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/_layouts/default.html +50 -0
  40. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/index.md +174 -0
  41. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/globals.d.ts +172 -0
  42. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/gulpfile.mjs +226 -0
  43. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/block.test.js +696 -0
  44. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/commandbar.test.js +84 -0
  45. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/inline.test.js +486 -0
  46. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/interaction.test.js +31 -0
  47. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/setup.test.js +164 -0
  48. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/config.js +2 -0
  49. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/server.js +9 -0
  50. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/setup.js +1 -0
  51. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/test-helpers.js +98 -0
  52. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest-puppeteer.config.js +8 -0
  53. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest.config.js +13 -0
  54. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/package-lock.json +16295 -0
  55. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/package.json +72 -0
  56. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/TinyMDE.js +1926 -0
  57. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/TinyMDECommandBar.js +256 -0
  58. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/commandbar.css +72 -0
  59. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/editor.css +157 -0
  60. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/index.css +3 -0
  61. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/grammar.js +300 -0
  62. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/html/blank.html +18 -0
  63. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/html/demo.html +126 -0
  64. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/index.js +4 -0
  65. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/blockquote.svg +1 -0
  66. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/bold.svg +1 -0
  67. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/clear_formatting.svg +1 -0
  68. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/code.svg +1 -0
  69. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/h1.svg +1 -0
  70. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/h2.svg +1 -0
  71. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/hr.svg +1 -0
  72. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/image.svg +1 -0
  73. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/italic.svg +1 -0
  74. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/link.svg +1 -0
  75. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/ol.svg +1 -0
  76. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/strikethrough.svg +1 -0
  77. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/svg.js +17 -0
  78. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/ul.svg +1 -0
  79. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/tiny.js +3 -0
  80. punkweb_bb-0.3.0/punkweb_bb/templates/punkweb_bb/base_delete_modal.html +13 -0
  81. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/index.html +2 -2
  82. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/members.html +3 -1
  83. punkweb_bb-0.3.0/punkweb_bb/templates/punkweb_bb/partials/category_delete.html +7 -0
  84. punkweb_bb-0.3.0/punkweb_bb/templates/punkweb_bb/partials/post_delete.html +7 -0
  85. punkweb_bb-0.3.0/punkweb_bb/templates/punkweb_bb/partials/shout_delete.html +7 -0
  86. punkweb_bb-0.3.0/punkweb_bb/templates/punkweb_bb/partials/subcategory_delete.html +7 -0
  87. punkweb_bb-0.3.0/punkweb_bb/templates/punkweb_bb/partials/thread_delete.html +7 -0
  88. punkweb_bb-0.3.0/punkweb_bb/templates/punkweb_bb/partials/thread_move.html +24 -0
  89. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/profile.html +8 -4
  90. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html +3 -3
  91. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/subcategory.html +1 -1
  92. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/thread.html +89 -71
  93. punkweb_bb-0.3.0/punkweb_bb/templates/punkweb_bb/widgets/markdown-editor.html +3 -0
  94. punkweb_bb-0.3.0/punkweb_bb/templatetags/__pycache__/markdown.cpython-311.pyc +0 -0
  95. punkweb_bb-0.3.0/punkweb_bb/templatetags/__pycache__/render.cpython-311.pyc +0 -0
  96. punkweb_bb-0.3.0/punkweb_bb/templatetags/__pycache__/shoutbox_bbcode.cpython-311.pyc +0 -0
  97. punkweb_bb-0.3.0/punkweb_bb/templatetags/__pycache__/shoutbox_render.cpython-311.pyc +0 -0
  98. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/styled_group_name.cpython-311.pyc +0 -0
  99. punkweb_bb-0.3.0/punkweb_bb/templatetags/render.py +48 -0
  100. punkweb_bb-0.3.0/punkweb_bb/templatetags/shoutbox_render.py +22 -0
  101. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/styled_group_name.py +2 -2
  102. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/tests.py +3 -3
  103. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/urls.py +1 -0
  104. punkweb_bb-0.3.0/punkweb_bb/utils.py +63 -0
  105. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/views.py +36 -7
  106. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/widgets.py +20 -0
  107. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb.egg-info/PKG-INFO +55 -41
  108. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb.egg-info/SOURCES.txt +69 -1
  109. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb.egg-info/requires.txt +1 -0
  110. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/setup.py +2 -1
  111. punkweb_bb-0.2.2/README.md +0 -154
  112. punkweb_bb-0.2.2/punkweb_bb/__pycache__/admin.cpython-311.pyc +0 -0
  113. punkweb_bb-0.2.2/punkweb_bb/__pycache__/admin_forms.cpython-311.pyc +0 -0
  114. punkweb_bb-0.2.2/punkweb_bb/__pycache__/models.cpython-311.pyc +0 -0
  115. punkweb_bb-0.2.2/punkweb_bb/__pycache__/settings.cpython-311.pyc +0 -0
  116. punkweb_bb-0.2.2/punkweb_bb/__pycache__/utils.cpython-311.pyc +0 -0
  117. punkweb_bb-0.2.2/punkweb_bb/__pycache__/views.cpython-311.pyc +0 -0
  118. punkweb_bb-0.2.2/punkweb_bb/__pycache__/widgets.cpython-311.pyc +0 -0
  119. punkweb_bb-0.2.2/punkweb_bb/templates/punkweb_bb/partials/category_delete.html +0 -11
  120. punkweb_bb-0.2.2/punkweb_bb/templates/punkweb_bb/partials/post_delete.html +0 -11
  121. punkweb_bb-0.2.2/punkweb_bb/templates/punkweb_bb/partials/shout_delete.html +0 -11
  122. punkweb_bb-0.2.2/punkweb_bb/templates/punkweb_bb/partials/subcategory_delete.html +0 -11
  123. punkweb_bb-0.2.2/punkweb_bb/templates/punkweb_bb/partials/thread_delete.html +0 -11
  124. punkweb_bb-0.2.2/punkweb_bb/templatetags/__pycache__/shoutbox_bbcode.cpython-311.pyc +0 -0
  125. punkweb_bb-0.2.2/punkweb_bb/templatetags/shoutbox_bbcode.py +0 -14
  126. punkweb_bb-0.2.2/punkweb_bb/utils.py +0 -47
  127. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/LICENSE +0 -0
  128. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/MANIFEST.in +0 -0
  129. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__init__.py +0 -0
  130. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/__init__.cpython-311.pyc +0 -0
  131. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/apps.cpython-311.pyc +0 -0
  132. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/bbcode_tags.cpython-311.pyc +0 -0
  133. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/context_processors.cpython-311.pyc +0 -0
  134. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/guests.cpython-311.pyc +0 -0
  135. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/middleware.cpython-311.pyc +0 -0
  136. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/mixins.cpython-311.pyc +0 -0
  137. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/pagination.cpython-311.pyc +0 -0
  138. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/parsers.cpython-311.pyc +0 -0
  139. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/response.cpython-311.pyc +0 -0
  140. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/__pycache__/signals.cpython-311.pyc +0 -0
  141. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/apps.py +0 -0
  142. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/bbcode_tags.py +0 -0
  143. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/context_processors.py +0 -0
  144. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/guests.py +0 -0
  145. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/middleware.py +0 -0
  146. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/0001_initial.py +0 -0
  147. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/0002_thread_view_count.py +0 -0
  148. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/0003_alter_thread_options.py +0 -0
  149. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/0004_groupstyle.py +0 -0
  150. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/__init__.py +0 -0
  151. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/__pycache__/0001_initial.cpython-311.pyc +0 -0
  152. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/__pycache__/0002_thread_view_count.cpython-311.pyc +0 -0
  153. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/__pycache__/0003_alter_thread_options.cpython-311.pyc +0 -0
  154. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/__pycache__/0004_groupstyle.cpython-311.pyc +0 -0
  155. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/migrations/__pycache__/__init__.cpython-311.pyc +0 -0
  156. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/mixins.py +0 -0
  157. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/pagination.py +0 -0
  158. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/parsers.py +0 -0
  159. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/response.py +0 -0
  160. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/signals.py +0 -0
  161. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/category-form.css +0 -0
  162. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/defaults.css +0 -0
  163. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/index.css +0 -0
  164. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/login.css +0 -0
  165. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/members.css +0 -0
  166. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/post-form.css +0 -0
  167. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/profile.css +0 -0
  168. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/punkweb-modal.css +0 -0
  169. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/punkweb.css +0 -0
  170. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/settings.css +0 -0
  171. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/shoutbox.css +0 -0
  172. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/subcategory-form.css +0 -0
  173. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/subcategory.css +0 -0
  174. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/thread-form.css +0 -0
  175. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/typography.css +0 -0
  176. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/css/variables.css +0 -0
  177. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/editor/bbcode-editor-content.css +0 -0
  178. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/editor/bbcode-editor-tags.js +0 -0
  179. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/editor/bbcode-editor.css +0 -0
  180. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js +0 -0
  181. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/favicon.ico +0 -0
  182. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/img/default-profile-image.png +0 -0
  183. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/js/punkweb-modal.js +0 -0
  184. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/js/shoutbox.js +0 -0
  185. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/htmx-1.9.4.min.js +0 -0
  186. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/jquery-3.7.0.min.js +0 -0
  187. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/open-color.css +0 -0
  188. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/prism.css +0 -0
  189. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/prism.js +0 -0
  190. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/README.md +0 -0
  191. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/formats/bbcode.js +0 -0
  192. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/formats/xhtml.js +0 -0
  193. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/icons/material.js +0 -0
  194. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/icons/monocons.js +0 -0
  195. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.bbcode.js +0 -0
  196. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.js +0 -0
  197. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.xhtml.js +0 -0
  198. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/alternative-lists.js +0 -0
  199. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/autosave.js +0 -0
  200. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/autoyoutube.js +0 -0
  201. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/dragdrop.js +0 -0
  202. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/format.js +0 -0
  203. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/plaintext.js +0 -0
  204. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/undo.js +0 -0
  205. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/v1compat.js +0 -0
  206. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/sceditor.js +0 -0
  207. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/content/default.css +0 -0
  208. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/default.css +0 -0
  209. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/defaultdark.css +0 -0
  210. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/famfamfam.png +0 -0
  211. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/modern.css +0 -0
  212. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/office-toolbar.css +0 -0
  213. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/office.css +0 -0
  214. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/square.css +0 -0
  215. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/alien.png +0 -0
  216. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/angel.png +0 -0
  217. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/angry.png +0 -0
  218. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/blink.png +0 -0
  219. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/blush.png +0 -0
  220. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cheerful.png +0 -0
  221. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cool.png +0 -0
  222. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/credits.txt +0 -0
  223. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cwy.png +0 -0
  224. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/devil.png +0 -0
  225. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/dizzy.png +0 -0
  226. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/ermm.png +0 -0
  227. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/face.png +0 -0
  228. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/getlost.png +0 -0
  229. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/grin.png +0 -0
  230. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/happy.png +0 -0
  231. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/heart.png +0 -0
  232. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/kissing.png +0 -0
  233. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/laughing.png +0 -0
  234. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/ninja.png +0 -0
  235. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/pinch.png +0 -0
  236. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/pouty.png +0 -0
  237. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sad.png +0 -0
  238. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/shocked.png +0 -0
  239. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sick.png +0 -0
  240. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sideways.png +0 -0
  241. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/silly.png +0 -0
  242. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sleeping.png +0 -0
  243. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/smile.png +0 -0
  244. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/tongue.png +0 -0
  245. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/unsure.png +0 -0
  246. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/w00t.png +0 -0
  247. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wassat.png +0 -0
  248. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/whistling.png +0 -0
  249. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wink.png +0 -0
  250. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wub.png +0 -0
  251. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/example.html +0 -0
  252. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ar.js +0 -0
  253. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ca.js +0 -0
  254. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/cn.js +0 -0
  255. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/cs.js +0 -0
  256. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/de.js +0 -0
  257. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/el.js +0 -0
  258. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/en-US.js +0 -0
  259. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/en.js +0 -0
  260. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/es.js +0 -0
  261. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/et.js +0 -0
  262. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fa.js +0 -0
  263. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fi.js +0 -0
  264. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fr.js +0 -0
  265. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/gl.js +0 -0
  266. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/hu.js +0 -0
  267. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/id.js +0 -0
  268. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/it.js +0 -0
  269. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ja.js +0 -0
  270. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/lt.js +0 -0
  271. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/nb.js +0 -0
  272. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/nl.js +0 -0
  273. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pl.js +0 -0
  274. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pt-BR.js +0 -0
  275. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pt.js +0 -0
  276. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ru.js +0 -0
  277. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/sk.js +0 -0
  278. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/sv.js +0 -0
  279. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/template.js +0 -0
  280. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/tr.js +0 -0
  281. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/tw.js +0 -0
  282. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/uk.js +0 -0
  283. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/vi.js +0 -0
  284. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/formats/bbcode.js +0 -0
  285. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/formats/xhtml.js +0 -0
  286. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/icons/material.js +0 -0
  287. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/icons/monocons.js +0 -0
  288. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.bbcode.min.js +0 -0
  289. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.min.js +0 -0
  290. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.xhtml.min.js +0 -0
  291. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/alternative-lists.js +0 -0
  292. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/autosave.js +0 -0
  293. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/autoyoutube.js +0 -0
  294. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/dragdrop.js +0 -0
  295. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/format.js +0 -0
  296. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/plaintext.js +0 -0
  297. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/undo.js +0 -0
  298. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/v1compat.js +0 -0
  299. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/sceditor.min.js +0 -0
  300. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/content/default.min.css +0 -0
  301. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/default.min.css +0 -0
  302. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/defaultdark.min.css +0 -0
  303. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/famfamfam.png +0 -0
  304. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/modern.min.css +0 -0
  305. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office-toolbar.min.css +0 -0
  306. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office.min.css +0 -0
  307. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/square.min.css +0 -0
  308. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/base.html +0 -0
  309. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/base_modal.html +0 -0
  310. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/bbcode.html +0 -0
  311. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/category_create.html +0 -0
  312. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/category_update.html +0 -0
  313. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/login.html +0 -0
  314. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/partials/post_update.html +0 -0
  315. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/settings.html +0 -0
  316. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/shoutbox/shoutbox.html +0 -0
  317. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/signup.html +0 -0
  318. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/subcategory_create.html +0 -0
  319. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/subcategory_update.html +0 -0
  320. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/thread_create.html +0 -0
  321. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templates/punkweb_bb/thread_update.html +0 -0
  322. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__init__.py +0 -0
  323. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/__init__.cpython-311.pyc +0 -0
  324. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/can_delete.cpython-311.pyc +0 -0
  325. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/can_edit.cpython-311.pyc +0 -0
  326. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/can_post.cpython-311.pyc +0 -0
  327. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/humanize_count.cpython-311.pyc +0 -0
  328. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/humanize_int.cpython-311.pyc +0 -0
  329. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/styled_username.cpython-311.pyc +0 -0
  330. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/__pycache__/username.cpython-311.pyc +0 -0
  331. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/can_delete.py +0 -0
  332. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/can_edit.py +0 -0
  333. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/can_post.py +0 -0
  334. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/humanize_int.py +0 -0
  335. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb/templatetags/styled_username.py +0 -0
  336. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb.egg-info/dependency_links.txt +0 -0
  337. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb.egg-info/not-zip-safe +0 -0
  338. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/punkweb_bb.egg-info/top_level.txt +0 -0
  339. {punkweb_bb-0.2.2 → punkweb_bb-0.3.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: punkweb_bb
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: Django application that provides a simple and modern forum board software for your Django website.
5
5
  Home-page: https://github.com/Punkweb/PunkwebBB
6
6
  Author: Punkweb
@@ -28,20 +28,35 @@ Check out [punkweb.net](https://punkweb.net/board/) for documentation, support a
28
28
 
29
29
  - [Django](https://www.djangoproject.com/)
30
30
  - [django-precise-bbcode](https://github.com/ellmetha/django-precise-bbcode)
31
+ - [Markdown](https://python-markdown.github.io/)
31
32
  - [HTMX](https://htmx.org/)
32
33
  - [jQuery](https://jquery.com/)
33
34
  - [SCEditor](https://www.sceditor.com/)
35
+ - [TinyMDE](https://github.com/jefago/tiny-markdown-editor)
34
36
  - [PrismJS](https://prismjs.com/)
35
37
 
36
38
  ## Requirements
37
39
 
38
40
  - Python 3.9+
39
- - Django 4.2+
41
+ - Django 4.0+
40
42
  - django-precise-bbcode 1.2+
43
+ - markdown 3.6+
41
44
  - Pillow
42
45
 
43
46
  It may work with older versions of Python and Django, but it has not been tested.
44
47
 
48
+ ## BBCode or Markdown?
49
+
50
+ PunkwebBB supports both BBCode and Markdown. You'll want to decide before installing which renderer you want to use, as switching between them will cause existing threads, posts, signatures, etc. to render incorrectly! Switching will not affect the database schema, but it will affect the content.
51
+
52
+ BBCode is the default renderer, but you can switch to Markdown by setting the following in your Django settings module:
53
+
54
+ ```python
55
+ PUNKWEB_BB = {
56
+ "RENDERER": "markdown",
57
+ }
58
+ ```
59
+
45
60
  ## Installation
46
61
 
47
62
  ```bash
@@ -58,16 +73,7 @@ INSTALLED_APPS = [
58
73
  ]
59
74
  ```
60
75
 
61
- _Note_: `precise_bbcode` is required. It must be installed before `punkweb_bb`.
62
-
63
- Add the following middleware to your `MIDDLEWARE` setting:
64
-
65
- ```python
66
- MIDDLEWARE = [
67
- ...
68
- "punkweb_bb.middleware.ProfileOnlineCacheMiddleware",
69
- ]
70
- ```
76
+ _Note_: `precise_bbcode` is required even if using the Markdown renderer! It must be installed before `punkweb_bb`.
71
77
 
72
78
  Add the following context processor to your `TEMPLATES` setting:
73
79
 
@@ -110,6 +116,7 @@ These are the default settings for PunkwebBB, which can be overridden in your Dj
110
116
  PUNKWEB_BB = {
111
117
  "SITE_NAME": "PUNKWEB",
112
118
  "SITE_TITLE": "PunkwebBB",
119
+ "RENDERER": "bbcode", # "bbcode" or "markdown"
113
120
  "FAVICON": "punkweb_bb/favicon.ico",
114
121
  "OG_IMAGE": None, # Used for Open Graph meta tags, must be a full URL!
115
122
  "SHOUTBOX_ENABLED": True,
@@ -134,39 +141,46 @@ coverage run && coverage html
134
141
  ```
135
142
 
136
143
  ```bash
137
- Found 57 test(s).
144
+ Found 59 test(s).
138
145
  Creating test database for alias 'default'...
139
146
  System check identified no issues (0 silenced).
140
- .........................................................
147
+ ...........................................................
141
148
  ----------------------------------------------------------------------
142
- Ran 57 tests in 8.824s
149
+ Ran 59 tests in 9.166s
143
150
 
144
151
  OK
145
152
  Destroying test database for alias 'default'...
146
- Name Stmts Miss Cover
147
- ----------------------------------------------------------------
148
- punkweb_bb/__init__.py 0 0 100%
149
- punkweb_bb/admin.py 41 1 98%
150
- punkweb_bb/admin_forms.py 28 0 100%
151
- punkweb_bb/apps.py 6 0 100%
152
- punkweb_bb/bbcode_tags.py 115 3 97%
153
- punkweb_bb/context_processors.py 3 0 100%
154
- punkweb_bb/forms.py 35 0 100%
155
- punkweb_bb/middleware.py 10 0 100%
156
- punkweb_bb/mixins.py 11 0 100%
157
- punkweb_bb/models.py 124 0 100%
158
- punkweb_bb/pagination.py 11 4 64%
159
- punkweb_bb/parsers.py 50 2 96%
160
- punkweb_bb/response.py 3 0 100%
161
- punkweb_bb/settings.py 6 0 100%
162
- punkweb_bb/signals.py 9 0 100%
163
- punkweb_bb/templatetags/__init__.py 0 0 100%
164
- punkweb_bb/templatetags/humanize_int.py 9 5 44%
165
- punkweb_bb/templatetags/shoutbox_bbcode.py 9 0 100%
166
- punkweb_bb/tests.py 410 0 100%
167
- punkweb_bb/urls.py 4 0 100%
168
- punkweb_bb/views.py 174 17 90%
169
- punkweb_bb/widgets.py 8 0 100%
170
- ----------------------------------------------------------------
171
- TOTAL 1066 32 97%
153
+ Name Stmts Miss Cover
154
+ ------------------------------------------------------------------
155
+ punkweb_bb/__init__.py 0 0 100%
156
+ punkweb_bb/admin.py 43 0 100%
157
+ punkweb_bb/admin_forms.py 34 0 100%
158
+ punkweb_bb/apps.py 6 0 100%
159
+ punkweb_bb/context_processors.py 3 0 100%
160
+ punkweb_bb/forms.py 47 0 100%
161
+ punkweb_bb/guests.py 13 0 100%
162
+ punkweb_bb/middleware.py 14 0 100%
163
+ punkweb_bb/mixins.py 11 0 100%
164
+ punkweb_bb/models.py 153 1 99%
165
+ punkweb_bb/pagination.py 11 4 64%
166
+ punkweb_bb/parsers.py 50 36 28%
167
+ punkweb_bb/response.py 3 0 100%
168
+ punkweb_bb/settings.py 11 0 100%
169
+ punkweb_bb/signals.py 9 0 100%
170
+ punkweb_bb/templatetags/__init__.py 0 0 100%
171
+ punkweb_bb/templatetags/can_delete.py 5 0 100%
172
+ punkweb_bb/templatetags/can_edit.py 5 0 100%
173
+ punkweb_bb/templatetags/can_post.py 5 0 100%
174
+ punkweb_bb/templatetags/humanize_int.py 9 5 44%
175
+ punkweb_bb/templatetags/render.py 36 12 67%
176
+ punkweb_bb/templatetags/shoutbox_render.py 18 2 89%
177
+ punkweb_bb/templatetags/styled_group_name.py 7 1 86%
178
+ punkweb_bb/templatetags/styled_username.py 6 0 100%
179
+ punkweb_bb/tests.py 418 0 100%
180
+ punkweb_bb/urls.py 4 0 100%
181
+ punkweb_bb/utils.py 42 24 43%
182
+ punkweb_bb/views.py 304 118 61%
183
+ punkweb_bb/widgets.py 16 0 100%
184
+ ------------------------------------------------------------------
185
+ TOTAL 1283 203 84%
172
186
  ```
@@ -0,0 +1,168 @@
1
+ # PunkwebBB
2
+
3
+ PunkwebBB is a Django application that provides a simple and modern forum board software for your Django website.
4
+
5
+ This is the successor to [punkweb-boards](https://github.com/Punkweb/punkweb-boards).
6
+
7
+ Check out [punkweb.net](https://punkweb.net/board/) for documentation, support and a live demonstration of the software.
8
+
9
+ ## Built with
10
+
11
+ - [Django](https://www.djangoproject.com/)
12
+ - [django-precise-bbcode](https://github.com/ellmetha/django-precise-bbcode)
13
+ - [Markdown](https://python-markdown.github.io/)
14
+ - [HTMX](https://htmx.org/)
15
+ - [jQuery](https://jquery.com/)
16
+ - [SCEditor](https://www.sceditor.com/)
17
+ - [TinyMDE](https://github.com/jefago/tiny-markdown-editor)
18
+ - [PrismJS](https://prismjs.com/)
19
+
20
+ ## Requirements
21
+
22
+ - Python 3.9+
23
+ - Django 4.0+
24
+ - django-precise-bbcode 1.2+
25
+ - markdown 3.6+
26
+ - Pillow
27
+
28
+ It may work with older versions of Python and Django, but it has not been tested.
29
+
30
+ ## BBCode or Markdown?
31
+
32
+ PunkwebBB supports both BBCode and Markdown. You'll want to decide before installing which renderer you want to use, as switching between them will cause existing threads, posts, signatures, etc. to render incorrectly! Switching will not affect the database schema, but it will affect the content.
33
+
34
+ BBCode is the default renderer, but you can switch to Markdown by setting the following in your Django settings module:
35
+
36
+ ```python
37
+ PUNKWEB_BB = {
38
+ "RENDERER": "markdown",
39
+ }
40
+ ```
41
+
42
+ ## Installation
43
+
44
+ ```bash
45
+ pip install punkweb-bb
46
+ ```
47
+
48
+ Add `precise_bbcode` and `punkweb_bb` to your `INSTALLED_APPS` in your Django settings module:
49
+
50
+ ```python
51
+ INSTALLED_APPS = [
52
+ ...
53
+ "precise_bbcode",
54
+ "punkweb_bb",
55
+ ]
56
+ ```
57
+
58
+ _Note_: `precise_bbcode` is required even if using the Markdown renderer! It must be installed before `punkweb_bb`.
59
+
60
+ Add the following context processor to your `TEMPLATES` setting:
61
+
62
+ ```python
63
+ TEMPLATES = [
64
+ {
65
+ ...
66
+ "OPTIONS": {
67
+ "context_processors": [
68
+ ...
69
+ "punkweb_bb.context_processors.punkweb_bb",
70
+ ],
71
+ },
72
+ },
73
+ ]
74
+ ```
75
+
76
+ Add the following URL pattern to your `urls.py`:
77
+
78
+ ```python
79
+ from django.urls import path, include
80
+
81
+ urlpatterns = [
82
+ ...
83
+ path("forum/", include("punkweb_bb.urls")), # or any other path you want
84
+ ]
85
+ ```
86
+
87
+ And finally, install the models:
88
+
89
+ ```bash
90
+ python manage.py migrate
91
+ ```
92
+
93
+ ## Configuration
94
+
95
+ These are the default settings for PunkwebBB, which can be overridden in your Django settings module:
96
+
97
+ ```python
98
+ PUNKWEB_BB = {
99
+ "SITE_NAME": "PUNKWEB",
100
+ "SITE_TITLE": "PunkwebBB",
101
+ "RENDERER": "bbcode", # "bbcode" or "markdown"
102
+ "FAVICON": "punkweb_bb/favicon.ico",
103
+ "OG_IMAGE": None, # Used for Open Graph meta tags, must be a full URL!
104
+ "SHOUTBOX_ENABLED": True,
105
+ "DISCORD_WIDGET_ENABLED": False,
106
+ "DISCORD_WIDGET_THEME": "dark",
107
+ "DISCORD_SERVER_ID": None, # Found under Server Settings > Widget > Server ID
108
+ }
109
+ ```
110
+
111
+ ## Testing
112
+
113
+ Report:
114
+
115
+ ```bash
116
+ coverage run && coverage report
117
+ ```
118
+
119
+ HTML:
120
+
121
+ ```bash
122
+ coverage run && coverage html
123
+ ```
124
+
125
+ ```bash
126
+ Found 59 test(s).
127
+ Creating test database for alias 'default'...
128
+ System check identified no issues (0 silenced).
129
+ ...........................................................
130
+ ----------------------------------------------------------------------
131
+ Ran 59 tests in 9.166s
132
+
133
+ OK
134
+ Destroying test database for alias 'default'...
135
+ Name Stmts Miss Cover
136
+ ------------------------------------------------------------------
137
+ punkweb_bb/__init__.py 0 0 100%
138
+ punkweb_bb/admin.py 43 0 100%
139
+ punkweb_bb/admin_forms.py 34 0 100%
140
+ punkweb_bb/apps.py 6 0 100%
141
+ punkweb_bb/context_processors.py 3 0 100%
142
+ punkweb_bb/forms.py 47 0 100%
143
+ punkweb_bb/guests.py 13 0 100%
144
+ punkweb_bb/middleware.py 14 0 100%
145
+ punkweb_bb/mixins.py 11 0 100%
146
+ punkweb_bb/models.py 153 1 99%
147
+ punkweb_bb/pagination.py 11 4 64%
148
+ punkweb_bb/parsers.py 50 36 28%
149
+ punkweb_bb/response.py 3 0 100%
150
+ punkweb_bb/settings.py 11 0 100%
151
+ punkweb_bb/signals.py 9 0 100%
152
+ punkweb_bb/templatetags/__init__.py 0 0 100%
153
+ punkweb_bb/templatetags/can_delete.py 5 0 100%
154
+ punkweb_bb/templatetags/can_edit.py 5 0 100%
155
+ punkweb_bb/templatetags/can_post.py 5 0 100%
156
+ punkweb_bb/templatetags/humanize_int.py 9 5 44%
157
+ punkweb_bb/templatetags/render.py 36 12 67%
158
+ punkweb_bb/templatetags/shoutbox_render.py 18 2 89%
159
+ punkweb_bb/templatetags/styled_group_name.py 7 1 86%
160
+ punkweb_bb/templatetags/styled_username.py 6 0 100%
161
+ punkweb_bb/tests.py 418 0 100%
162
+ punkweb_bb/urls.py 4 0 100%
163
+ punkweb_bb/utils.py 42 24 43%
164
+ punkweb_bb/views.py 304 118 61%
165
+ punkweb_bb/widgets.py 16 0 100%
166
+ ------------------------------------------------------------------
167
+ TOTAL 1283 203 84%
168
+ ```
@@ -34,10 +34,6 @@ class BoardProfileModelAdmin(admin.ModelAdmin):
34
34
  "user__username",
35
35
  "user__email",
36
36
  )
37
- readonly_fields = ("signature_rendered",)
38
-
39
- def signature_rendered(self, obj):
40
- return mark_safe(obj.signature.rendered)
41
37
 
42
38
 
43
39
  @admin.register(Category)
@@ -8,6 +8,7 @@ from punkweb_bb.models import (
8
8
  Subcategory,
9
9
  Thread,
10
10
  )
11
+ from punkweb_bb.utils import get_editor_widget
11
12
  from punkweb_bb.widgets import BBCodeEditorWidget
12
13
 
13
14
 
@@ -16,7 +17,7 @@ class BoardProfileAdminModelForm(forms.ModelForm):
16
17
  model = BoardProfile
17
18
  fields = "__all__"
18
19
  widgets = {
19
- "signature": BBCodeEditorWidget(),
20
+ "signature": get_editor_widget(),
20
21
  }
21
22
 
22
23
 
@@ -25,7 +26,7 @@ class CategoryAdminModelForm(forms.ModelForm):
25
26
  model = Category
26
27
  fields = "__all__"
27
28
  widgets = {
28
- "description": BBCodeEditorWidget(),
29
+ "description": get_editor_widget(),
29
30
  }
30
31
 
31
32
 
@@ -34,7 +35,7 @@ class SubcategoryAdminModelForm(forms.ModelForm):
34
35
  model = Subcategory
35
36
  fields = "__all__"
36
37
  widgets = {
37
- "description": BBCodeEditorWidget(),
38
+ "description": get_editor_widget(),
38
39
  }
39
40
 
40
41
 
@@ -43,7 +44,7 @@ class ThreadAdminModelForm(forms.ModelForm):
43
44
  model = Thread
44
45
  fields = "__all__"
45
46
  widgets = {
46
- "content": BBCodeEditorWidget(),
47
+ "content": get_editor_widget(),
47
48
  }
48
49
 
49
50
 
@@ -52,7 +53,7 @@ class PostAdminModelForm(forms.ModelForm):
52
53
  model = Post
53
54
  fields = "__all__"
54
55
  widgets = {
55
- "content": BBCodeEditorWidget(),
56
+ "content": get_editor_widget(),
56
57
  }
57
58
 
58
59
 
@@ -2,7 +2,7 @@ from django import forms
2
2
  from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
3
3
 
4
4
  from punkweb_bb.models import BoardProfile, Category, Post, Shout, Subcategory, Thread
5
- from punkweb_bb.widgets import BBCodeEditorWidget
5
+ from punkweb_bb.utils import get_editor_widget
6
6
 
7
7
 
8
8
  class LoginForm(AuthenticationForm):
@@ -39,7 +39,7 @@ class BoardProfileModelForm(forms.ModelForm):
39
39
  "signature",
40
40
  )
41
41
  widgets = {
42
- "signature": BBCodeEditorWidget(),
42
+ "signature": get_editor_widget(),
43
43
  }
44
44
 
45
45
 
@@ -66,7 +66,7 @@ class PostModelForm(forms.ModelForm):
66
66
  "content": "",
67
67
  }
68
68
  widgets = {
69
- "content": BBCodeEditorWidget(),
69
+ "content": get_editor_widget(),
70
70
  }
71
71
 
72
72
 
@@ -87,7 +87,7 @@ class SubcategoryModelForm(forms.ModelForm):
87
87
  )
88
88
  widgets = {
89
89
  "name": forms.TextInput(attrs={"autofocus": True, "class": "pw-input"}),
90
- "description": BBCodeEditorWidget(),
90
+ "description": get_editor_widget(),
91
91
  "order": forms.TextInput(
92
92
  attrs={"class": "pw-input", "min": "0", "type": "number"}
93
93
  ),
@@ -103,5 +103,13 @@ class ThreadModelForm(forms.ModelForm):
103
103
  )
104
104
  widgets = {
105
105
  "title": forms.TextInput(attrs={"autofocus": True, "class": "pw-input"}),
106
- "content": BBCodeEditorWidget(),
106
+ "content": get_editor_widget(),
107
107
  }
108
+
109
+
110
+ class ThreadMoveForm(forms.Form):
111
+ subcategory = forms.ModelChoiceField(
112
+ queryset=Subcategory.objects.all(),
113
+ empty_label="Select a subcategory",
114
+ widget=forms.Select(attrs={"class": "pw-input"}),
115
+ )
@@ -0,0 +1,24 @@
1
+ # Generated by Django 4.2.11 on 2024-05-30 02:25
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("punkweb_bb", "0004_groupstyle"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterModelOptions(
14
+ name="thread",
15
+ options={
16
+ "ordering": ("subcategory", "-is_pinned", "-last_post_created_at"),
17
+ "permissions": (
18
+ ("move_thread", "Can move thread"),
19
+ ("pin_thread", "Can pin thread"),
20
+ ("close_thread", "Can close thread"),
21
+ ),
22
+ },
23
+ ),
24
+ ]
@@ -0,0 +1,60 @@
1
+ # Generated by Django 4.2.11 on 2024-05-30 21:37
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("punkweb_bb", "0005_alter_thread_options"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.RemoveField(
14
+ model_name="boardprofile",
15
+ name="_signature_rendered",
16
+ ),
17
+ migrations.RemoveField(
18
+ model_name="groupstyle",
19
+ name="_username_style_rendered",
20
+ ),
21
+ migrations.RemoveField(
22
+ model_name="post",
23
+ name="_content_rendered",
24
+ ),
25
+ migrations.RemoveField(
26
+ model_name="subcategory",
27
+ name="_description_rendered",
28
+ ),
29
+ migrations.RemoveField(
30
+ model_name="thread",
31
+ name="_content_rendered",
32
+ ),
33
+ migrations.AlterField(
34
+ model_name="boardprofile",
35
+ name="signature",
36
+ field=models.TextField(blank=True, default="", max_length=1024),
37
+ preserve_default=False,
38
+ ),
39
+ migrations.AlterField(
40
+ model_name="groupstyle",
41
+ name="username_style",
42
+ field=models.TextField(),
43
+ ),
44
+ migrations.AlterField(
45
+ model_name="post",
46
+ name="content",
47
+ field=models.TextField(),
48
+ ),
49
+ migrations.AlterField(
50
+ model_name="subcategory",
51
+ name="description",
52
+ field=models.TextField(blank=True, default=""),
53
+ preserve_default=False,
54
+ ),
55
+ migrations.AlterField(
56
+ model_name="thread",
57
+ name="content",
58
+ field=models.TextField(),
59
+ ),
60
+ ]
@@ -1,4 +1,3 @@
1
- import datetime
2
1
  import math
3
2
  import os
4
3
 
@@ -9,10 +8,9 @@ from django.db import models
9
8
  from django.forms import ValidationError
10
9
  from django.urls import reverse
11
10
  from django.utils import timezone
12
- from precise_bbcode.fields import BBCodeTextField
13
11
 
14
12
  from punkweb_bb.mixins import TimestampMixin, UUIDPrimaryKeyMixin
15
- from punkweb_bb.utils import get_styled_username
13
+ from punkweb_bb.utils import get_highest_priority_group, get_styled_username
16
14
 
17
15
  User = get_user_model()
18
16
 
@@ -25,11 +23,15 @@ def profile_image_upload_to(instance, filename):
25
23
  class BoardProfile(UUIDPrimaryKeyMixin, TimestampMixin):
26
24
  user = models.OneToOneField(User, related_name="profile", on_delete=models.CASCADE)
27
25
  image = models.ImageField(upload_to=profile_image_upload_to, blank=True, null=True)
28
- signature = BBCodeTextField(max_length=1024, blank=True, null=True)
26
+ signature = models.TextField(max_length=1024, blank=True)
29
27
 
30
28
  class Meta:
31
29
  ordering = ("user__username",)
32
30
 
31
+ @property
32
+ def priority_group(self):
33
+ return get_highest_priority_group(self.user)
34
+
33
35
  @property
34
36
  def styled_username(self):
35
37
  return get_styled_username(self.user)
@@ -38,7 +40,7 @@ class BoardProfile(UUIDPrimaryKeyMixin, TimestampMixin):
38
40
  def is_online(self):
39
41
  last_seen = cache.get(f"profile_online_{self.id}")
40
42
  if last_seen:
41
- return timezone.now() < last_seen + datetime.timedelta(minutes=5)
43
+ return timezone.now() < last_seen + timezone.timedelta(minutes=5)
42
44
  return False
43
45
 
44
46
  @property
@@ -73,7 +75,7 @@ class Subcategory(UUIDPrimaryKeyMixin, TimestampMixin):
73
75
  )
74
76
  name = models.CharField(max_length=255)
75
77
  slug = models.SlugField(max_length=1024, unique=True)
76
- description = BBCodeTextField(blank=True, null=True)
78
+ description = models.TextField(blank=True)
77
79
  order = models.PositiveIntegerField(default=0)
78
80
  staff_post_only = models.BooleanField(default=False)
79
81
 
@@ -113,7 +115,7 @@ class Thread(UUIDPrimaryKeyMixin, TimestampMixin):
113
115
  )
114
116
  user = models.ForeignKey(User, related_name="threads", on_delete=models.CASCADE)
115
117
  title = models.CharField(max_length=255)
116
- content = BBCodeTextField()
118
+ content = models.TextField()
117
119
  is_pinned = models.BooleanField(default=False)
118
120
  is_closed = models.BooleanField(default=False)
119
121
  last_post_created_at = models.DateTimeField(auto_now_add=True)
@@ -126,6 +128,7 @@ class Thread(UUIDPrimaryKeyMixin, TimestampMixin):
126
128
  "-last_post_created_at",
127
129
  )
128
130
  permissions = (
131
+ ("move_thread", "Can move thread"),
129
132
  ("pin_thread", "Can pin thread"),
130
133
  ("close_thread", "Can close thread"),
131
134
  )
@@ -157,7 +160,7 @@ class Thread(UUIDPrimaryKeyMixin, TimestampMixin):
157
160
  class Post(UUIDPrimaryKeyMixin, TimestampMixin):
158
161
  thread = models.ForeignKey(Thread, related_name="posts", on_delete=models.CASCADE)
159
162
  user = models.ForeignKey(User, related_name="posts", on_delete=models.CASCADE)
160
- content = BBCodeTextField()
163
+ content = models.TextField()
161
164
 
162
165
  class Meta:
163
166
  ordering = ("created_at",)
@@ -219,7 +222,7 @@ class GroupStyle(UUIDPrimaryKeyMixin, TimestampMixin):
219
222
  default=0,
220
223
  help_text="Highest priority is displayed",
221
224
  )
222
- username_style = BBCodeTextField()
225
+ username_style = models.TextField()
223
226
 
224
227
  class Meta:
225
228
  ordering = ("-priority",)
@@ -4,6 +4,7 @@ PUNKWEB_BB = getattr(settings, "PUNKWEB_BB", {})
4
4
 
5
5
  SITE_NAME = PUNKWEB_BB.get("SITE_NAME", "PUNKWEB")
6
6
  SITE_TITLE = PUNKWEB_BB.get("SITE_TITLE", "PunkwebBB")
7
+ RENDERER = PUNKWEB_BB.get("RENDERER", "bbcode")
7
8
  FAVICON = PUNKWEB_BB.get("FAVICON", "punkweb_bb/favicon.ico")
8
9
  OG_IMAGE = PUNKWEB_BB.get("OG_IMAGE", None)
9
10
  SHOUTBOX_ENABLED = PUNKWEB_BB.get("SHOUTBOX_ENABLED", True)