You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2019/11/05 21:40:07 UTC
[airavata-django-portal] branch master updated: AIRAVATA-3264
Wagtail: ExtraWebResources for including CSS/JS on all pages
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
The following commit(s) were added to refs/heads/master by this push:
new 71f972e AIRAVATA-3264 Wagtail: ExtraWebResources for including CSS/JS on all pages
71f972e is described below
commit 71f972ec358cc37bc4974523e46eb16aa17aafec
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Tue Nov 5 16:39:37 2019 -0500
AIRAVATA-3264 Wagtail: ExtraWebResources for including CSS/JS on all pages
---
.../includes/extra_web_resources.html | 7 +++
django_airavata/templates/includes/head.html | 2 +
.../base/migrations/0021_auto_20191105_2053.py | 56 +++++++++++++++++++++
django_airavata/wagtailapps/base/models.py | 58 ++++++++++++++++++++++
.../base/templatetags/navigation_tags.py | 10 ++++
5 files changed, 133 insertions(+)
diff --git a/django_airavata/templates/django_airavata_wagtail_base/includes/extra_web_resources.html b/django_airavata/templates/django_airavata_wagtail_base/includes/extra_web_resources.html
new file mode 100644
index 0000000..9836f97
--- /dev/null
+++ b/django_airavata/templates/django_airavata_wagtail_base/includes/extra_web_resources.html
@@ -0,0 +1,7 @@
+{% for css_link in extra_web_resources.css_links.all %}
+<link media="all" type="text/css" rel="stylesheet" href="{{ css_link.url }}">
+{% endfor %}
+
+{% for js_link in extra_web_resources.js_links.all %}
+<script src="{{ js_link.url }}"></script>
+{% endfor %}
diff --git a/django_airavata/templates/includes/head.html b/django_airavata/templates/includes/head.html
index 83a7db9..2e3febe 100644
--- a/django_airavata/templates/includes/head.html
+++ b/django_airavata/templates/includes/head.html
@@ -27,6 +27,8 @@
{% include "includes/head-extra.html" %}
{% endblock head-extra %}
+ {% extra_web_resources %}
+
<style>
{% get_css %}
</style>
diff --git a/django_airavata/wagtailapps/base/migrations/0021_auto_20191105_2053.py b/django_airavata/wagtailapps/base/migrations/0021_auto_20191105_2053.py
new file mode 100644
index 0000000..f75ffa2
--- /dev/null
+++ b/django_airavata/wagtailapps/base/migrations/0021_auto_20191105_2053.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.21 on 2019-11-05 20:53
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import modelcluster.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('django_airavata_wagtail_base', '0020_auto_20190417_1949'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='CssLink',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
+ ('url', models.CharField(help_text='URL of CSS stylesheet.', max_length=255)),
+ ],
+ options={
+ 'ordering': ['sort_order'],
+ 'abstract': False,
+ },
+ ),
+ migrations.CreateModel(
+ name='ExtraWebResources',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ],
+ options={
+ 'verbose_name_plural': 'Extra Web Resources',
+ },
+ ),
+ migrations.CreateModel(
+ name='JsLink',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
+ ('url', models.CharField(help_text='URL of JavaScript script.', max_length=255)),
+ ('extra_web_resources', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='js_links', to='django_airavata_wagtail_base.ExtraWebResources')),
+ ],
+ options={
+ 'ordering': ['sort_order'],
+ 'abstract': False,
+ },
+ ),
+ migrations.AddField(
+ model_name='csslink',
+ name='extra_web_resources',
+ field=modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='css_links', to='django_airavata_wagtail_base.ExtraWebResources'),
+ ),
+ ]
diff --git a/django_airavata/wagtailapps/base/models.py b/django_airavata/wagtailapps/base/models.py
index 3a88e8e..4a85e1b 100644
--- a/django_airavata/wagtailapps/base/models.py
+++ b/django_airavata/wagtailapps/base/models.py
@@ -1,7 +1,10 @@
from __future__ import unicode_literals
+import os
+
from django.db import models
from modelcluster.fields import ParentalKey
+from modelcluster.models import ClusterableModel
from wagtail.admin.edit_handlers import (
FieldPanel,
InlinePanel,
@@ -374,6 +377,61 @@ class GatewayTitle(models.Model):
verbose_name_plural = 'Gateway Title'
+@register_snippet
+class ExtraWebResources(ClusterableModel):
+ """
+ Links to CSS and JavaScript to be included in all pages.
+ """
+
+ panels = [
+ InlinePanel('css_links', label="CSS Links"),
+ InlinePanel('js_links', label="JS Links"),
+ ]
+
+ def __str__(self):
+ try:
+ return "Extra Web Resources: {}".format(", ".join(
+ [os.path.basename(l.url) for l in self.css_links.all()] +
+ [os.path.basename(l.url) for l in self.js_links.all()]))
+ except Exception:
+ return "Extra Web Resources"
+
+ class Meta:
+ verbose_name_plural = 'Extra Web Resources'
+
+
+class CssLink(Orderable):
+ url = models.CharField(
+ max_length=255,
+ help_text='URL of CSS stylesheet.'
+ )
+ panels = [
+ FieldPanel('url'),
+ ]
+ extra_web_resources = ParentalKey(ExtraWebResources,
+ on_delete=models.CASCADE,
+ related_name="css_links")
+
+ class Meta:
+ verbose_name = 'CSS Link'
+
+
+class JsLink(Orderable):
+ url = models.CharField(
+ max_length=255,
+ help_text='URL of JavaScript script.'
+ )
+ panels = [
+ FieldPanel('url'),
+ ]
+ extra_web_resources = ParentalKey(ExtraWebResources,
+ on_delete=models.CASCADE,
+ related_name="js_links")
+
+ class Meta:
+ verbose_name = 'JS Link'
+
+
class HomePage(Page):
"""
The Home Page. This looks slightly more complicated than it is. You can
diff --git a/django_airavata/wagtailapps/base/templatetags/navigation_tags.py b/django_airavata/wagtailapps/base/templatetags/navigation_tags.py
index b46e3a9..84391a3 100644
--- a/django_airavata/wagtailapps/base/templatetags/navigation_tags.py
+++ b/django_airavata/wagtailapps/base/templatetags/navigation_tags.py
@@ -6,6 +6,7 @@ from django_airavata.wagtailapps.base.models import (
Announcements,
CustomCss,
CustomHeaderLinks,
+ ExtraWebResources,
FooterText,
GatewayIcon,
GatewayTitle,
@@ -184,3 +185,12 @@ def gateway_title(context):
'gateway_title': gateway_title,
'default_title': settings.PORTAL_TITLE,
}
+
+
+@register.inclusion_tag('django_airavata_wagtail_base/includes/extra_web_resources.html',
+ takes_context=True)
+def extra_web_resources(context):
+ extra_web_resources = ExtraWebResources.objects.first()
+ return {
+ 'extra_web_resources': extra_web_resources,
+ }