[extensions-web/wip/visual-tag: 2/4] Updated login-dialog tag as a model field




commit e5dc06aa5eaff16edda682d5ffe5f2f063120044
Author: Aryan Kaushik <73686-Aryan20 users noreply gitlab gnome org>
Date:   Fri Mar 4 09:49:02 2022 +0000

    Updated login-dialog tag as a model field

 .../migrations/0010_extension_session_unlock_dialog.py | 18 ++++++++++++++++++
 sweettooth/extensions/models.py                        |  7 +++++++
 sweettooth/extensions/templates/extensions/detail.html |  2 +-
 sweettooth/extensions/views.py                         | 13 +------------
 4 files changed, 27 insertions(+), 13 deletions(-)
---
diff --git a/sweettooth/extensions/migrations/0010_extension_session_unlock_dialog.py 
b/sweettooth/extensions/migrations/0010_extension_session_unlock_dialog.py
new file mode 100644
index 0000000..fb83334
--- /dev/null
+++ b/sweettooth/extensions/migrations/0010_extension_session_unlock_dialog.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.11 on 2022-03-04 09:15
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('extensions', '0009_shell40_minor_version'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='extension',
+            name='session_unlock_dialog',
+            field=models.BooleanField(default=False),
+        ),
+    ]
diff --git a/sweettooth/extensions/models.py b/sweettooth/extensions/models.py
index c488ae4..1f11a30 100644
--- a/sweettooth/extensions/models.py
+++ b/sweettooth/extensions/models.py
@@ -111,6 +111,7 @@ class Extension(models.Model):
     creator = models.ForeignKey(settings.AUTH_USER_MODEL, db_index=True, on_delete=models.PROTECT)
     description = models.TextField(blank=True)
     url = HttpURLField(blank=True)
+    session_unlock_dialog = models.BooleanField(default=False)
     created = models.DateTimeField(auto_now_add=True)
     downloads = models.PositiveIntegerField(default=0)
     popularity = models.IntegerField(default=0)
@@ -133,6 +134,12 @@ class Extension(models.Model):
         self.description = metadata.pop('description', "")
         self.url = metadata.pop('url', "")
         self.uuid = metadata['uuid']
+        try:
+            session_info = metadata.pop('session-modes', "")
+            if "unlock-dialog" in session_info or session_info is "unlock-dialog":
+                self.session_unlock_dialog = True
+        except:
+            pass
 
     def clean(self):
         from django.core.exceptions import ValidationError
diff --git a/sweettooth/extensions/templates/extensions/detail.html 
b/sweettooth/extensions/templates/extensions/detail.html
index 39668dd..6712754 100644
--- a/sweettooth/extensions/templates/extensions/detail.html
+++ b/sweettooth/extensions/templates/extensions/detail.html
@@ -55,7 +55,7 @@
               {% endif %}
             </dl>
             <dl>
-              {% if session_unlock_dialog %}
+              {% if extension.session_unlock_dialog %}
               <dt>{% trans "Session Mode(s)" %}</dt>
               <dd><button type="disabled" class="btn btn-info btn-sm" title="This extension will run while 
the screen is locked">{% trans "Unlock Dialog" %}</button></dd>
               {% endif %}
diff --git a/sweettooth/extensions/views.py b/sweettooth/extensions/views.py
index ceb4f07..005a1ef 100644
--- a/sweettooth/extensions/views.py
+++ b/sweettooth/extensions/views.py
@@ -306,23 +306,12 @@ def extension_view(request, obj, **kwargs):
     else:
         template_name = "extensions/detail.html"
 
-    # Check if unlock-dialog session mode exists in latest version of extension
-    try:
-        session_info = json.loads(obj.latest_version.extra_json_fields)["session-modes"]
-        if "unlock-dialog" in session_info:
-            session_unlock_dialog = True
-        else:
-            session_unlock_dialog = False
-    except:
-        session_unlock_dialog = False
-
     context = dict(shell_version_map = json.dumps(extension.visible_shell_version_map),
                    extension = extension,
                    all_versions = extension.versions.order_by('-version'),
                    visible_versions=json.dumps(extension.visible_shell_version_array),
                    is_visible = extension.latest_version is not None,
-                   next = extension.get_absolute_url(),
-                   session_unlock_dialog = session_unlock_dialog)
+                   next = extension.get_absolute_url())
     return render(request, template_name, context)
 
 @require_POST


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]