1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-11-02 16:44:31 +01:00

apps: display appstore badges based on UA

* on iPhone, only AppStore badge displays
* on Android, only PlayStore badge displays
* on any other platform, both display
This commit is contained in:
Alexis Mercier des Rochettes
2025-11-01 16:24:34 +01:00
parent 04001202f2
commit cae86bcd46
2 changed files with 13 additions and 0 deletions

View File

@@ -50,6 +50,15 @@ class CustomLoginView(LoginView):
self.request.session['permission_mask'] = form.cleaned_data['permission_mask'].rank
return super().form_valid(form)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
user_agent = self.request.META.get('HTTP_USER_AGENT', '').lower()
context['display_appstore_badge'] = 'iphone' in user_agent or 'android' not in user_agent
context['display_playstore_badge'] = 'android' in user_agent or 'iphone' not in user_agent
return context
class UserUpdateView(ProtectQuerysetMixin, LoginRequiredMixin, UpdateView):
"""

View File

@@ -41,14 +41,18 @@ SPDX-License-Identifier: GPL-2.0-or-later
</form>
<div class="text-center mt-4">
{% if display_appstore_badge %}
<a href="https://apps.apple.com/fr/app/la-note-kfet/id6754661723" class="d-inline-block mx-1" aria-label="{% trans 'Download on the AppStore' %}" style="cursor: pointer;">
<img src="/static/img/appstore_badge_fr.svg"
alt="{% trans 'Download on the AppStore' %}" style="height: 50px;">
</a>
{% endif %}
{% if display_playstore_badge %}
<a href="https://play.google.com/store/apps/details?id=org.crans.bde.note&hl=fr" class="d-inline-block mx-1" aria-label="{% trans 'Get it on Google Play' %}" style="cursor: pointer;">
<img src="/static/img/playstore_badge_fr.svg"
alt="{% trans 'Get it on Google Play' %}" style="height: 50px;">
</a>
{% endif %}
</div>
</div>
</div>