I'm trying to build a Mailman 3 front-end, integrating Postorius and HyperKitty into
an existing Django system. I'm assuming from the docs and various components of
HyperKitty (eg. the postorius_info context processor) that this is an anticipated use
case, but it seems unnecessarily difficult.
I suppose the first question is whether this is wholly premature. I realize that all
these components are still in beta, but on their own they seem relatively full-featured so
it doesn't seem like a stretch to try to stitch them together, but perhaps there was
some decision to punt all the integration to some later stage of development. (Or perhaps
these really aren't meant to be integrated at all?)
Anyway, a few of the things I've run into:
- HyperKitty uses the top-level template directory (eg. it has a templates/base.html
file), which is generally reserved for site-level templates.
- HyperKitty's base templates aren't broken up into blocks in such a way that they
can easily be used to extend a different base template. The base template defines both
the overall page structure and various HyperKitty components, so it's impossible to,
say, modify the navigation bar without replicating a large chunk of HyperKitty stuff.
- Both HyperKitty and Postorius have independent user profile systems, but both are set up
to use global user settings like LOGIN_URL. The result is that one or the other is
generally invisible and unnavigable.
- Moreover, both apps use the same view names in places. For example, the HyperKitty
user_profile page loads Ajax content from the "user_subscriptions" view, but
Postorius defines its own "user_subscriptions" view that returns a full page.
The result is that if the main urls.py includes Postorius URLs after HyperKitty URLs, the
HyperKitty subscriptions tab tries to load the Postorius page via Ajax and fails.
- Postorius uses BrowserID authentication through social_auth, while HyperKitty includes a
separate browser_id library
- Both connect to the Mailman API in the same way, but using different settings names
(HyperKitty uses MAILMAN_REST_SERVER/MAILMAN_API_USER/MAILMAN_API_PASS, while Postorius
uses MAILMAN_API_URL/MAILMAN_USER/MAILMAN_PASS).
I was hoping to get a sense of the big picture here before either filing a bunch of
tickets or working on a pull request to try to address some of these.
Thanks
Adam