[GH-ISSUE #63] Plugins management page #46

Closed
opened 2026-02-27 11:09:49 +03:00 by kerem · 4 comments
Owner

Originally created by @tonioo on GitHub (Dec 4, 2013).
Original GitHub issue: https://github.com/modoboa/modoboa/issues/63

Originally assigned to: @tonioo on GitHub.

Originally created by Antoine Nguyen on 2010-04-22T20:41:53Z

Add a new page that will allow administrators to activate/deactivate plugins. To activate a plugin, we need to modify the settings.py (INSTALLED_APPS) and to create a link to the plugin templates directory inside the main templates directory... or to modify the appropriate variable inside the config file.

Originally created by @tonioo on GitHub (Dec 4, 2013). Original GitHub issue: https://github.com/modoboa/modoboa/issues/63 Originally assigned to: @tonioo on GitHub. **Originally created by Antoine Nguyen on 2010-04-22T20:41:53Z** Add a new page that will allow administrators to activate/deactivate plugins. To activate a plugin, we need to modify the settings.py (INSTALLED_APPS) and to create a link to the plugin templates directory inside the main templates directory... or to modify the appropriate variable inside the config file.
kerem 2026-02-27 11:09:49 +03:00
Author
Owner

@tonioo commented on GitHub (Dec 4, 2013):

Posted by Antoine Nguyen on 2010-05-05T17:51:16Z

Actually, It seems that we cannot modify the settings module at runtime... A partial solution has been found (using a new table in the database). Unfortunately, custom templatetags are not usable if the corresponding module name is not present inside the INSTALLED_APPS parameter...

How to bypass this mechanism?

<!-- gh-comment-id:29813316 --> @tonioo commented on GitHub (Dec 4, 2013): **Posted by Antoine Nguyen on 2010-05-05T17:51:16Z** Actually, It seems that we cannot modify the settings module at runtime... A partial solution has been found (using a new table in the database). Unfortunately, custom templatetags are not usable if the corresponding module name is not present inside the INSTALLED_APPS parameter... How to bypass this mechanism?
Author
Owner

@tonioo commented on GitHub (Dec 4, 2013):

Posted by Antoine Nguyen on 2010-05-25T16:31:47Z

add_to_builtins is one possible way. Maybe not the best...
Done in [5b477f95613a]

<!-- gh-comment-id:29813318 --> @tonioo commented on GitHub (Dec 4, 2013): **Posted by Antoine Nguyen on 2010-05-25T16:31:47Z** add_to_builtins is one possible way. Maybe not the best... Done in [5b477f95613a]
Author
Owner

@tonioo commented on GitHub (Dec 4, 2013):

Posted by Antoine Nguyen on 2010-05-26T13:17:18Z

[A traduire plus tard]
Je vais repousser cette fonctionnalité car Django n'est vraiment pas prévu pour ca. Je n'ai pas réussi à trouver un moyen de mettre à jour la table d'urls systématiquement. Il y a pas mal de cas ou cela plante.
Autre méthode proposée par Alex: laisser toutes les extensions dans INSTALLED_APPS et faire un middleware pour contrôler les accès. Les problèmes avec cette méthode sont nombreux (modules omportés quoiqu'il arrive, dépendances obligatoires, modèles pris en compte par syncdb).

Bref, c'est le bordel, on reporte à plus tard!!
[/A traduire plus tard]

Django is not designed to support this.

<!-- gh-comment-id:29813319 --> @tonioo commented on GitHub (Dec 4, 2013): **Posted by Antoine Nguyen on 2010-05-26T13:17:18Z** [A traduire plus tard] Je vais repousser cette fonctionnalité car Django n'est vraiment pas prévu pour ca. Je n'ai pas réussi à trouver un moyen de mettre à jour la table d'urls systématiquement. Il y a pas mal de cas ou cela plante. Autre méthode proposée par Alex: laisser toutes les extensions dans INSTALLED_APPS et faire un middleware pour contrôler les accès. Les problèmes avec cette méthode sont nombreux (modules omportés quoiqu'il arrive, dépendances obligatoires, modèles pris en compte par syncdb). Bref, c'est le bordel, on reporte à plus tard!! [/A traduire plus tard] Django is not designed to support this.
Author
Owner

@tonioo commented on GitHub (Dec 4, 2013):

Posted by Antoine Nguyen on 2010-10-25T12:54:41Z

Finally, [9e127305fff1] is the answer!

What I've done:

  • all extensions are now listed in INSTALLED_APPS (like normal django applications),
  • a new table is used to wrap plugins states (on/off),
  • a new middleware controls accesses to extensions.

This is working pretty well like that.

<!-- gh-comment-id:29813320 --> @tonioo commented on GitHub (Dec 4, 2013): **Posted by Antoine Nguyen on 2010-10-25T12:54:41Z** Finally, [9e127305fff1] is the answer! What I've done: - all extensions are now listed in INSTALLED_APPS (like normal django applications), - a new table is used to wrap plugins states (on/off), - a new middleware controls accesses to extensions. This is working pretty well like that.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/modoboa-modoboa#46
No description provided.