django-content-studio 1.0.0b11__py3-none-any.whl → 1.0.0b13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,22 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>Django Content Studio</title>
8
+ <script>
9
+ window.DCS_STATIC_PREFIX = "/";
10
+ window.DCS_BASENAME = "http://localhost:8000/admin";
11
+ </script>
12
+ <link rel="stylesheet" href="/icons/pi/style.css" />
13
+ <link rel="preconnect" href="https://fonts.googleapis.com">
14
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
15
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&display=swap" rel="stylesheet">
16
+ <script type="module" crossorigin src="/assets/index.js"></script>
17
+ <link rel="stylesheet" crossorigin href="/assets/index.css">
18
+ </head>
19
+ <body>
20
+ <div id="root"></div>
21
+ </body>
22
+ </html>
@@ -14,7 +14,9 @@
14
14
  "delete_confirm_description": "This action cannot be undone. Are you sure you want to delete?"
15
15
  },
16
16
  "app": {
17
- "copied_to_clipboard": "Copied to clipboard!"
17
+ "copied_to_clipboard": "Copied to clipboard!",
18
+ "error": "Something went wrong",
19
+ "not_found": "We couldn't find what you were looking for."
18
20
  },
19
21
  "login": {
20
22
  "title": "Welcome back",
@@ -85,6 +87,16 @@
85
87
  "activity_log": {
86
88
  "title": "Activity log",
87
89
  "subtitle": "Latest updates from your team"
90
+ },
91
+ "scheduled_tasks": {
92
+ "empty": "No scheduled tasks",
93
+ "next": "Next:",
94
+ "status": {
95
+ "SUCCESS": "Successful",
96
+ "RUNNING": "Running",
97
+ "SCHEDULED": "Scheduled",
98
+ "FAILURE": "Failed"
99
+ }
88
100
  }
89
101
  }
90
102
  }
@@ -14,7 +14,9 @@
14
14
  "delete_confirm_description": "Deze actie kan niet ongedaan gemaakt worden. Weet je zeker dat je dit wilt verwijderen?"
15
15
  },
16
16
  "app": {
17
- "copied_to_clipboard": "Gekopieerd naar klembord"
17
+ "copied_to_clipboard": "Gekopieerd naar klembord",
18
+ "error": "Er gaat iets fout",
19
+ "not_found": "We kunnen niet vinden wat je zoekt."
18
20
  },
19
21
  "login": {
20
22
  "title": "Welkom terug",
@@ -90,6 +92,16 @@
90
92
  "2": "bewerkte",
91
93
  "3": "verwijderde"
92
94
  }
95
+ },
96
+ "scheduled_tasks": {
97
+ "empty": "Geen geplande taken",
98
+ "next": "Volgende:",
99
+ "status": {
100
+ "SUCCESS": "Geslaagd",
101
+ "RUNNING": "Wordt uitgevoerd",
102
+ "SCHEDULED": "Gepland",
103
+ "FAILURE": "Mislukt"
104
+ }
93
105
  }
94
106
  }
95
107
  },
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
@@ -10,13 +10,13 @@
10
10
  window.DCS_STATIC_PREFIX = "{% static '' %}content_studio/";
11
11
  window.DCS_BASENAME = "{% url 'content_studio_web' %}";
12
12
  </script>
13
- <script type="module" crossorigin src="{% static 'content_studio/assets/index.js' %}"></script>
14
- <link rel="stylesheet" crossorigin href="{% static 'content_studio/assets/index.css' %}">
15
- <link rel="stylesheet" crossorigin href="{% static 'content_studio/icons/pi/style.css' %}">
13
+ <script type="module" crossorigin src="{% static 'content_studio/assets/index.js' %}"></script>
14
+ <link rel="stylesheet" crossorigin href="{% static 'content_studio/assets/index.css' %}">
15
+ <link rel="stylesheet" crossorigin href="{% static 'content_studio/icons/pi/style.css' %}">
16
16
 
17
- <link rel="preconnect" href="https://fonts.googleapis.com">
18
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
19
- <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&display=swap" rel="stylesheet">
17
+ <link rel="preconnect" href="https://fonts.googleapis.com">
18
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
19
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&display=swap" rel="stylesheet">
20
20
  </head>
21
21
  <body>
22
22
  <div id="root"></div>
content_studio/views.py CHANGED
@@ -1,7 +1,9 @@
1
1
  from django.conf import settings
2
2
  from django.contrib import admin
3
3
  from django.urls import reverse, NoReverseMatch
4
+ from django.utils.decorators import method_decorator
4
5
  from django.utils.translation import gettext_lazy as _
6
+ from django.views.decorators.cache import never_cache
5
7
  from django.views.generic import TemplateView
6
8
  from rest_framework import serializers
7
9
  from rest_framework.decorators import action
@@ -18,6 +20,7 @@ from .serializers import SessionUserSerializer
18
20
  from .settings import cs_settings
19
21
 
20
22
 
23
+ @method_decorator(never_cache, name="dispatch")
21
24
  class ContentStudioWebAppView(TemplateView):
22
25
  """
23
26
  View for rendering the content studio web app.
@@ -89,6 +92,7 @@ class AdminApiViewSet(ViewSet):
89
92
  "models": get_models(request),
90
93
  "model_groups": get_model_groups(),
91
94
  "user_model": settings.AUTH_USER_MODEL,
95
+ "extensions": get_extensions(),
92
96
  }
93
97
 
94
98
  media_model = cs_settings.MEDIA_LIBRARY_MODEL
@@ -211,3 +215,9 @@ def get_health_check_path():
211
215
  return reverse("healthcheck")
212
216
  except NoReverseMatch:
213
217
  return None
218
+
219
+
220
+ def get_extensions():
221
+ admin_site = cs_settings.ADMIN_SITE
222
+
223
+ return [i.serialize() for i in getattr(admin_site, "extensions", [])]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-content-studio
3
- Version: 1.0.0b11
3
+ Version: 1.0.0b13
4
4
  Summary: Modern & flexible Django admin
5
5
  License: MIT
6
6
  Author: Leon van der Grient
@@ -1,12 +1,16 @@
1
- content_studio/__init__.py,sha256=vV3N4np4LcJU52AM38SNlW0eqLdlhguO78GcMBW_W_U,162
2
- content_studio/admin.py,sha256=bsGQvHndTHmlFUgsBgWiDk9YOEz5i7duHwJk73CSdyk,11180
1
+ content_studio/__init__.py,sha256=5-L1b0b2HyqF-GDdcLfozF7D31uMkdWgEFtF7027zHU,162
2
+ content_studio/admin.py,sha256=9D1vP0w_EeHpKT9_Ro1y_dSjLtJJg7UgDBjFc3EPvC4,11203
3
3
  content_studio/apps.py,sha256=iGZYxsGerYYC8EmV9Wu9phuT9R8UHUkIQ6XAm94EUgA,3961
4
4
  content_studio/dashboard/__init__.py,sha256=G0fsYbegeZScWRb3vbCwd0sEm8fVc-tT_r-zCSPktgw,2377
5
5
  content_studio/dashboard/activity_log.py,sha256=0hK96lXziD663a6YuKO7zRTVcVmbRitERqfNGc2NrtE,939
6
+ content_studio/dashboard/scheduled_tasks.py,sha256=XBg80l78p4ZjrR9U9R4rBewnTUXf2povwZEfgoYOjOs,1367
6
7
  content_studio/dashboard/statistic.py,sha256=aoHJMM88zehapYWOmq_lqdSArkagYLCRWEAxXoNMcRg,912
8
+ content_studio/extensions.py,sha256=VqaQtuIZiwtaXJDlzIwJuncW_fet-YtY1fBHIVMfoDM,1500
7
9
  content_studio/filters.py,sha256=GyglR2E_wswomW7EnfShEXr14zxuRlLAuxrHVO3QQYg,4335
8
10
  content_studio/form.py,sha256=XvUbBVR3QlvyM1l73QWV5TnreQTM8cWNJqgxkACj9dQ,5041
9
11
  content_studio/formats.py,sha256=JzOWrDRCVSnjJI0oX5fyFQU8LC634_jeAe84Widy43U,786
12
+ content_studio/locale/nl/LC_MESSAGES/django.mo,sha256=dXVT-R_RZzpfAE3L7X7lwj2gRtFk2f2igK7IQU_Fqvw,559
13
+ content_studio/locale/nl/LC_MESSAGES/django.po,sha256=F8ixGh7o55FheE3BiqvpUXir8Q5KyjVuJYFcEiNxkL0,934
10
14
  content_studio/login_backends/__init__.py,sha256=hgPJh9hFobubImfhynaeZ_dku3sjqNQvN5B43TVg7Gw,643
11
15
  content_studio/login_backends/username_password.py,sha256=JJbF3oWnhOwLs-WaqclCCH6nAnrhlKbyBUzAJKVtq7A,2561
12
16
  content_studio/media_library/serializers.py,sha256=1MPFqbZdE0iTYqZrzzYoT_y4q0ItGTbQ-I7omyojAZo,660
@@ -17,25 +21,27 @@ content_studio/router.py,sha256=7Up_sipGaUDoY6ElJNRf85ADaYfJCWV4To523L4LGuw,393
17
21
  content_studio/serializers.py,sha256=tWgL7J2z-Qc5BQjMc3PXpvLZa_6J6MfVUqRDOK_X0Xs,3867
18
22
  content_studio/settings.py,sha256=uu5Pnb502ZQE328J9-3Q4UtLGvD6tTAOOgv652dVUig,4598
19
23
  content_studio/static/content_studio/assets/browser-ponyfill-TyWUZ1Oq.js,sha256=sKLpD8vGwLfnJVLaSGMMi8krArcm2Qj3-igVwDvLMek,10287
20
- content_studio/static/content_studio/assets/index.css,sha256=tVhQGiiwkxpKnVK-U3FeqlWyCFuvdDD-PkTQrcQwLvM,88555
21
- content_studio/static/content_studio/assets/index.js,sha256=xEsF930ycAhkogPms3DWxSvzbG2MGdziA_3hUhsdj8E,1459628
24
+ content_studio/static/content_studio/assets/index.css,sha256=MIaKvkMAv0W3HMmMqNqVBXRWmeO-sD468LlwB1rtB7E,88470
25
+ content_studio/static/content_studio/assets/index.js,sha256=labYrcFrLJ5lNNYg4aCDeW7nx6E86htnUUW_8w8zYgI,1463141
22
26
  content_studio/static/content_studio/icons/pi/Phosphor-Bold.svg,sha256=4kdzmyaGcNVhK6qRIA8PdhaZ7raHU0xoU26ht52VG_c,2967217
23
27
  content_studio/static/content_studio/icons/pi/Phosphor-Bold.ttf,sha256=EKChy0-BVqQg-fhM80xOmHHljtLd6h9qgHmtByQ6f7I,495308
24
28
  content_studio/static/content_studio/icons/pi/Phosphor-Bold.woff,sha256=3k3MnRjPMzY8GdLJJMnZ1R4hCXi9Pm7FCK7HFnCz2wY,495388
25
29
  content_studio/static/content_studio/icons/pi/Phosphor-Bold.woff2,sha256=IVO1LOqeBvwMyElgSL5IWzgaD4vxMK3qWpdW_I8QC4c,150052
26
30
  content_studio/static/content_studio/icons/pi/style.css,sha256=yKMt9n-L1X9wxjceFewjLfJd3ro-uQYNeqpoEBps4kA,85821
27
31
  content_studio/static/content_studio/img/media_placeholder.svg,sha256=ZLrfeqvaC5YwuHAg_7YJXLhYzLz2azVcKqCLEGOVTTs,3253
28
- content_studio/static/content_studio/locales/en/translation.json,sha256=6KV4rb4kgvTcWVAXjcHePG7HSV4C5GAlU_S4hMlY1t4,2581
29
- content_studio/static/content_studio/locales/nl/translation.json,sha256=_8jK7BAFglRR3t8W5Jubf-oIeY8GYVdSPR46Fk_OFeI,3189
30
- content_studio/templates/content_studio/index.html,sha256=As2C1ahUKDvVy4kTFU0gHTy9mIL82817NUSSf93GC_Q,1032
32
+ content_studio/static/content_studio/index.html,sha256=IuVbv9-sX3WUUr7mDDEAVG9Q1tKmsHoZMpZwaWJ9SNM,896
33
+ content_studio/static/content_studio/locales/en/translation.json,sha256=1JIhLZ7OiHRzSF13tt5MMx05Za_TBlaC8qM5oCRIFp0,2954
34
+ content_studio/static/content_studio/locales/nl/translation.json,sha256=6ePG2f7oaRyKAM6tgKmsxYaRSBOUrNMGWB2-_BF0BvQ,3553
35
+ content_studio/static/content_studio/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
36
+ content_studio/templates/content_studio/index.html,sha256=Pb2IAIkWFUd4Ey_Hd-_gF0DCFiaM9L0sfyTK2rDx4I4,1048
31
37
  content_studio/token_backends/__init__.py,sha256=dO3aWIHXX8He399ZEvlS4fNgyL84OY9TEtkva9b5N5Q,1183
32
38
  content_studio/token_backends/jwt.py,sha256=niGCpRqaUVhhS9haXfH1uFlg2v8NLB5IpsJ4N79Q0Gg,1565
33
39
  content_studio/urls.py,sha256=EY7lbzC0Q5vLfvqE3rK_4hmDrXhTuxKzYC55cc5tEEo,701
34
40
  content_studio/utils.py,sha256=dGiYCixg-qcPGbF4hV6fts1Vv4ED8gRi8syLuSS4xzw,2123
35
- content_studio/views.py,sha256=D5-o5pcj3RHuGyGB7S8fXAXoccRqdFpQEZZQ6sn7TvE,6361
41
+ content_studio/views.py,sha256=wyIZxNFo_JGa14x8B88_-ZnZRSn2a4M8Hfze9YicIzo,6699
36
42
  content_studio/viewsets.py,sha256=iLhV6A_dl64-Ui4_DDT1Gje9ygvu0dYtF4OAO90MHSQ,5776
37
43
  content_studio/widgets.py,sha256=kROwtBrM3s-NKSo9riVX_oDW5crlCx1TiPBt0HKX6Zc,1111
38
- django_content_studio-1.0.0b11.dist-info/LICENSE,sha256=Wnx2EJhtSNnXE5Qs80i1HTBNFZTi8acEtC5TYqtFlnQ,1075
39
- django_content_studio-1.0.0b11.dist-info/METADATA,sha256=swK5LfS4ld1JYzHYr1MyAgWFo3S-M5Psls5UNmU_5gk,2513
40
- django_content_studio-1.0.0b11.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
41
- django_content_studio-1.0.0b11.dist-info/RECORD,,
44
+ django_content_studio-1.0.0b13.dist-info/LICENSE,sha256=Wnx2EJhtSNnXE5Qs80i1HTBNFZTi8acEtC5TYqtFlnQ,1075
45
+ django_content_studio-1.0.0b13.dist-info/METADATA,sha256=Vh4DZKRqKswwHw-AMiatW4KHmZjGjQZwKNMC3nGE9rI,2513
46
+ django_content_studio-1.0.0b13.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
47
+ django_content_studio-1.0.0b13.dist-info/RECORD,,