From 2e5420f470be38e55ba31df6845628b099b2804c Mon Sep 17 00:00:00 2001
From: Elke Kreim <elke.kreim@hs-hannover.de>
Date: Wed, 20 Feb 2019 10:34:17 +0100
Subject: [PATCH] Add event on_modified to watchassets, execute changes for
 js-, css-, scss-files

---
 hshassets/management/commands/watchassets.py   | 16 ++++++++++++++++
 hshassets/templates/hshassets/layout/base.html |  2 +-
 hshassets/utils.py                             |  2 +-
 setup.py                                       |  2 +-
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/hshassets/management/commands/watchassets.py b/hshassets/management/commands/watchassets.py
index 5f143bec..e07f3d35 100644
--- a/hshassets/management/commands/watchassets.py
+++ b/hshassets/management/commands/watchassets.py
@@ -13,6 +13,22 @@ from watchdog.observers import Observer
 
 class AssetsHandler(events.FileSystemEventHandler):
 
+    def on_modified(self, event):
+        app_name = utils.get_appname_from_assets_path(event.src_path)
+        if not event.is_directory:
+            logger.info("Notice modification on file {}.".format(os.path.basename(event.src_path)))
+            file_extension = utils.get_file_extension(event.src_path)
+            if file_extension == 'css':
+                utils.copy_and_compile_assets_css_to_static(app_name)
+            elif file_extension == 'js':
+                utils.copy_and_compile_assets_js_to_static(app_name)
+            elif file_extension == 'scss':
+                utils.build_app_css_from_scss(app_name)
+            else:
+                logger.debug("Notice modification on file {} but do nothing.".format(os.path.basename(event.src_path)))
+        else:
+            logger.debug("Notice modification on directory {} but for now I do nothing. Maybe it will be implement in future.".format(os.path.basename(event.src_path)))
+
     def on_created(self, event):
         app_name = utils.get_appname_from_assets_path(event.src_path)
         if not event.is_directory:
diff --git a/hshassets/templates/hshassets/layout/base.html b/hshassets/templates/hshassets/layout/base.html
index 79874c5d..af98942d 100644
--- a/hshassets/templates/hshassets/layout/base.html
+++ b/hshassets/templates/hshassets/layout/base.html
@@ -9,7 +9,7 @@
 
         {% block meta %}{% endblock %}
         {% block extrahead %}
-            <link rel="icon" href="{% static 'hshassets/img/favicon.ico' %}">
+            <link rel="shortcut icon" href="{% static 'hshassets/img/favicon.ico' %}">
         {% endblock %}
 
         {% block pre-style %}{% endblock %}
diff --git a/hshassets/utils.py b/hshassets/utils.py
index 48b451bf..a59da563 100644
--- a/hshassets/utils.py
+++ b/hshassets/utils.py
@@ -466,7 +466,7 @@ def build_app_css_from_scss(app_name):
     copy_favicon(app_name, color_scheme)
 
 
-def build_assets(app_name = None):
+def build_assets(app_name=None):
     """
     This function calls all functions needed for execution.
     """
diff --git a/setup.py b/setup.py
index a5f93009..445e7abe 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
 
 setup(
     name='django-hshassets',
-    version='2.2.0',
+    version='2.2.1',
     packages=find_packages(),
     include_package_data=True,
     license='MIT License',
-- 
GitLab