whiskyechobravo / kerkoapp

A web application that provides a faceted search interface for bibliographies managed with Zotero.
https://whiskyechobravo.github.io/kerko/
BSD 3-Clause "New" or "Revised" License
68 stars 24 forks source link

Landing Page #39

Closed fruehanp1 closed 12 months ago

fruehanp1 commented 1 year ago

Is there a configuration to add a different page to load as the home page? If not, I think this would be a useful option.

Here is some background:

I work as a librarian at a university and a group of computer science students created a working Kerko app that is roughly based on the 0.8.1 release. They made a number of customizations which include a landing page. These students have now graduated from the university and I need to maintain the app. Now that the project has reached 1.0, many of the changes they made have now become standardized in the release (woo!), but I'm stuck with recreating a landing page. I'm pretty savvy in many things, but don't know how to code in python. Any suggestions on how I should proceed would be helpful.

davidlesieur commented 1 year ago

At the moment, unfortunately, there is no way of replacing the landing page without dealing with Python code.

From your Git repository, I can see that the team has created a modified version of Kerko. The landing page is handled by the home() function in your repository's kerko/views.py module, and then by the custom landing.html.jinja2 template. That should be fairly easy to migrate to a newer Kerko, but that still amounts to manipulating Python code.

However, I would not recommend modifying Kerko as your team has done. It might not have been obvious at the time because the documentation was a bit lacking, but ideally all customizations of this kind would go into a fork of KerkoApp. KerkoApp is small and easy to deal with, and keeping Kerko untouched should make future maintenance much easier.

If you look at KerkoApp's code, you'll find that it has its own home() function, in wsgi.py. That could be replaced with something very similar to your current home() function. And your custom templates would then go into KerkoApp's templates directory too, with some changes to update them to Kerko 1.0 (the How to upgrade docs should help).

If you cannot get help from a developer, you might be able to find your way if you are motivated and have some programming knowledge, even if it's not specifically with Python. I would suggest that you start with a plain unmodified KerkoApp setup for your Zotero library (if that's not already done), and that you gradually try integrating some customizations. Some understanding of the Jinja template engine would help.

It's hard to tell the extent of the customizations that were done by your team. This is one of the drawbacks of implementing those directly into Kerko, as there could be little bits of code changes all over.

I hope this helps!