Repository: DDMAL/CantusDB

Issue:
Use Django Extensions, deprecate and remove ptvsd
[Django Extensions](https://django-extensions.readthedocs.io/en/latest/) are a really useful set of management and development tools. One of the most useful ones (I find) is `runserver_plus`, which you can run instead of the normal `runserver` when developing. This gives you access to an in-browser debugger tool, replacing the standard Django error  pages with an interactive traceback and debugger.

Another useful one is `shell_plus` which can pre-load all of your models into an interactive Python shell. If you also have iPython installed it will use that, making the Python repl much easier to use.

With a move to these tools, I think [the modifications](https://github.com/DDMAL/CantusDB/blob/develop/django/cantusdb_project/manage.py#L9-L18) to `manage.py` can be un-done, and the dependency on the ptvsd module can be removed. This module anyway [seems to be deprecated](https://github.com/microsoft/ptvsd). 


Discussion:
@ahankinson, did you see the commit message for when this extra section was added? https://github.com/DDMAL/CantusDB/commit/eb65cc7298cc083a055605c54aa1ba1fee1596b3

Curiously, when I remove the added code locally, I have no difficulty running `manage.py` commands in VSCode within the docker container, even without adding `django-extensions` as a dependency. If I add a print statement to a view and visit a page handled by the view, it still print to the console.

My guess is that this was added to the repo way back when to accommodate someone's previously established workflow - I don't regularly use VSCode's Python debugger, but maybe it allows people to set up breakpoints/etc. @lucasmarchd01, I know you have a tool like this set up - are you able to experiment with removing the block of code @ahankinson highlighted and see whether your debugger still works?

If removing this bit of code doesn't cause difficulties for your workflow @lucasmarchd01, I think we should revert manage.py to its initial state - better to not have a custom installation of django without any good reason, since this feels like the kind of thing that could lead to unexpected behavior that's difficult to debug. We can also add django-extensions as a dependency, but it seems these are actually two issues here - one about removing code no-one is using, and one about adding a little enhancement for developers.
@lucasmarchd01, when you get a chance, can you please check on these proposed changes, to ensure it won't interfere with your workflow?

Resolving patch:
diff --git a/django/cantusdb_project/manage.py b/django/cantusdb_project/manage.py
--- a/django/cantusdb_project/manage.py
+++ b/django/cantusdb_project/manage.py
@@ -6,17 +6,6 @@
 
 def main():
     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cantusdb.settings")
-    # start new section
-    from django.conf import settings
-
-    if settings.DEBUG:
-        if os.environ.get("RUN_MAIN") or os.environ.get("WERKZEUG_RUN_MAIN"):
-            import ptvsd
-
-            ptvsd.enable_attach(address=("0.0.0.0", 3000))
-            print("Attached!")
-    # end new section
-
     try:
         from django.core.management import execute_from_command_line
     except ImportError as exc:


Test patch: