[extensions-web/wip/visual-tag: 2/4] Updated login-dialog tag as a model field
- From: Yuri Konotopov <ykonotopov src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [extensions-web/wip/visual-tag: 2/4] Updated login-dialog tag as a model field
- Date: Sun, 24 Apr 2022 17:05:05 +0000 (UTC)
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]