polyadmin 0.1.0b1__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.
Files changed (104) hide show
  1. polyadmin/__init__.py +47 -0
  2. polyadmin/core/__init__.py +0 -0
  3. polyadmin/core/_async.py +21 -0
  4. polyadmin/core/action.py +135 -0
  5. polyadmin/core/admin.py +129 -0
  6. polyadmin/core/audit.py +65 -0
  7. polyadmin/core/auth.py +52 -0
  8. polyadmin/core/authorization.py +48 -0
  9. polyadmin/core/csrf.py +70 -0
  10. polyadmin/core/dashboard.py +41 -0
  11. polyadmin/core/delete.py +146 -0
  12. polyadmin/core/exporter.py +136 -0
  13. polyadmin/core/field.py +201 -0
  14. polyadmin/core/filter.py +305 -0
  15. polyadmin/core/inline.py +97 -0
  16. polyadmin/core/login.py +110 -0
  17. polyadmin/core/model_admin.py +349 -0
  18. polyadmin/core/page.py +62 -0
  19. polyadmin/core/pagination.py +70 -0
  20. polyadmin/core/query.py +243 -0
  21. polyadmin/core/relation.py +40 -0
  22. polyadmin/core/slug.py +57 -0
  23. polyadmin/core/template_context.py +679 -0
  24. polyadmin/core/widget.py +280 -0
  25. polyadmin/fastapi/__init__.py +3 -0
  26. polyadmin/fastapi/audit.py +52 -0
  27. polyadmin/fastapi/auth.py +112 -0
  28. polyadmin/fastapi/csrf.py +93 -0
  29. polyadmin/fastapi/deletes.py +76 -0
  30. polyadmin/fastapi/errors.py +93 -0
  31. polyadmin/fastapi/handlers.py +798 -0
  32. polyadmin/fastapi/inlines.py +177 -0
  33. polyadmin/fastapi/locale.py +128 -0
  34. polyadmin/fastapi/login.py +110 -0
  35. polyadmin/fastapi/pages.py +97 -0
  36. polyadmin/fastapi/relations.py +264 -0
  37. polyadmin/fastapi/responses.py +55 -0
  38. polyadmin/fastapi/router.py +174 -0
  39. polyadmin/fastapi/static.py +21 -0
  40. polyadmin/i18n/__init__.py +50 -0
  41. polyadmin/i18n/context.py +54 -0
  42. polyadmin/i18n/negotiation.py +56 -0
  43. polyadmin/i18n/setup.py +81 -0
  44. polyadmin/i18n/translator.py +124 -0
  45. polyadmin/locale/fr/LC_MESSAGES/polyadmin.mo +0 -0
  46. polyadmin/locale/fr/LC_MESSAGES/polyadmin.po +486 -0
  47. polyadmin/locale/polyadmin.pot +485 -0
  48. polyadmin/locale/ru/LC_MESSAGES/polyadmin.mo +0 -0
  49. polyadmin/locale/ru/LC_MESSAGES/polyadmin.po +496 -0
  50. polyadmin/templates/admin/base.html +91 -0
  51. polyadmin/templates/admin/components/action_confirm_modal.html +86 -0
  52. polyadmin/templates/admin/components/csrf-field.html +5 -0
  53. polyadmin/templates/admin/components/error_fragment.html +6 -0
  54. polyadmin/templates/admin/components/field.html +60 -0
  55. polyadmin/templates/admin/components/form_wrapper.html +131 -0
  56. polyadmin/templates/admin/components/icons.html +67 -0
  57. polyadmin/templates/admin/components/inline.html +251 -0
  58. polyadmin/templates/admin/components/inline_fragment.html +2 -0
  59. polyadmin/templates/admin/components/list_content.html +54 -0
  60. polyadmin/templates/admin/components/lookup_results.html +19 -0
  61. polyadmin/templates/admin/components/search.html +19 -0
  62. polyadmin/templates/admin/components/toasts.html +151 -0
  63. polyadmin/templates/admin/components/ui/breadcrumb.html +30 -0
  64. polyadmin/templates/admin/components/ui/bulk-actions.html +69 -0
  65. polyadmin/templates/admin/components/ui/calendar.html +175 -0
  66. polyadmin/templates/admin/components/ui/combobox.html +82 -0
  67. polyadmin/templates/admin/components/ui/delete-preview.html +37 -0
  68. polyadmin/templates/admin/components/ui/dropdown-menu.html +71 -0
  69. polyadmin/templates/admin/components/ui/field.html +110 -0
  70. polyadmin/templates/admin/components/ui/filter-panel.html +155 -0
  71. polyadmin/templates/admin/components/ui/locale-switcher.html +30 -0
  72. polyadmin/templates/admin/components/ui/multi-select.html +253 -0
  73. polyadmin/templates/admin/components/ui/pagination.html +81 -0
  74. polyadmin/templates/admin/components/ui/radio-group.html +28 -0
  75. polyadmin/templates/admin/components/ui/select.html +165 -0
  76. polyadmin/templates/admin/components/ui/sidebar.html +175 -0
  77. polyadmin/templates/admin/components/ui/slider.html +22 -0
  78. polyadmin/templates/admin/components/ui/switch.html +36 -0
  79. polyadmin/templates/admin/components/ui/table.html +221 -0
  80. polyadmin/templates/admin/components/ui/theme-toggle.html +33 -0
  81. polyadmin/templates/admin/dashboard.html +35 -0
  82. polyadmin/templates/admin/error.html +33 -0
  83. polyadmin/templates/admin/login.html +94 -0
  84. polyadmin/templates/admin/resource/delete.html +29 -0
  85. polyadmin/templates/admin/resource/delete_selected.html +49 -0
  86. polyadmin/templates/admin/resource/detail.html +78 -0
  87. polyadmin/templates/admin/resource/form.html +5 -0
  88. polyadmin/templates/admin/resource/list.html +5 -0
  89. polyadmin/templates/admin/theme.html +372 -0
  90. polyadmin/templates/admin/widgets/activity.html +8 -0
  91. polyadmin/templates/admin/widgets/chart.html +15 -0
  92. polyadmin/templates/admin/widgets/donut.html +59 -0
  93. polyadmin/templates/admin/widgets/metric.html +1 -0
  94. polyadmin/templates/admin/widgets/progress.html +7 -0
  95. polyadmin/templates/admin/widgets/stat.html +22 -0
  96. polyadmin/templates/admin/widgets/table.html +29 -0
  97. polyadmin/templates/admin/widgets/tabs.html +34 -0
  98. polyadmin/templates/admin/widgets/timeline.html +21 -0
  99. polyadmin/templating.py +528 -0
  100. polyadmin/ui.py +817 -0
  101. polyadmin-0.1.0b1.dist-info/METADATA +239 -0
  102. polyadmin-0.1.0b1.dist-info/RECORD +104 -0
  103. polyadmin-0.1.0b1.dist-info/WHEEL +4 -0
  104. polyadmin-0.1.0b1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,485 @@
1
+ # Translations template for PolyAdmin.
2
+ # Copyright (C) 2026 ORGANIZATION
3
+ # This file is distributed under the same license as the PolyAdmin project.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2026.
5
+ #
6
+ #, fuzzy
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: PolyAdmin 0.1.0\n"
10
+ "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11
+ "POT-Creation-Date: 2026-09-21 18:34+0500\n"
12
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=utf-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Generated-By: Babel 2.18.0\n"
19
+
20
+ #, python-format
21
+ msgid "%(label)s (%(num)d)"
22
+ msgstr ""
23
+
24
+ #, python-format
25
+ msgid "%(label)s applied to %(num)d record."
26
+ msgid_plural "%(label)s applied to %(num)d records."
27
+ msgstr[0] ""
28
+ msgstr[1] ""
29
+
30
+ #, python-format
31
+ msgid "%(label)s is required."
32
+ msgstr ""
33
+
34
+ #, python-format
35
+ msgid "%(n)s of %(num)d row selected"
36
+ msgid_plural "%(n)s of %(num)d rows selected"
37
+ msgstr[0] ""
38
+ msgstr[1] ""
39
+
40
+ #. Translators: %(name)s is the model's name. French and Russian
41
+ #. nouns carry gender, so phrase around agreement.
42
+ #, python-format
43
+ msgid "%(name)s created."
44
+ msgstr ""
45
+
46
+ #. Translators: %(name)s is the model's name. French and Russian
47
+ #. nouns carry gender, so phrase around agreement.
48
+ #, python-format
49
+ msgid "%(name)s deleted."
50
+ msgstr ""
51
+
52
+ #. Translators: %(name)s is the model's name. French and Russian
53
+ #. nouns carry gender, so phrase around agreement.
54
+ #, python-format
55
+ msgid "%(name)s updated."
56
+ msgstr ""
57
+
58
+ #, python-format
59
+ msgid "%(num)d row"
60
+ msgid_plural "%(num)d rows"
61
+ msgstr[0] ""
62
+ msgstr[1] ""
63
+
64
+ #, python-format
65
+ msgid "%(num)d you can't view"
66
+ msgid_plural "%(num)d you can't view"
67
+ msgstr[0] ""
68
+ msgstr[1] ""
69
+
70
+ msgid "Action…"
71
+ msgstr ""
72
+
73
+ msgid "Add"
74
+ msgstr ""
75
+
76
+ msgid "Admin"
77
+ msgstr ""
78
+
79
+ msgid "All"
80
+ msgstr ""
81
+
82
+ msgid "Anonymous"
83
+ msgstr ""
84
+
85
+ msgid "Any date"
86
+ msgstr ""
87
+
88
+ msgid "Apply"
89
+ msgstr ""
90
+
91
+ msgid "Asc"
92
+ msgstr ""
93
+
94
+ msgid "Back to the admin"
95
+ msgstr ""
96
+
97
+ msgid "Breadcrumb"
98
+ msgstr ""
99
+
100
+ msgid "CSV"
101
+ msgstr ""
102
+
103
+ msgid "Cancel"
104
+ msgstr ""
105
+
106
+ msgid "Clear all"
107
+ msgstr ""
108
+
109
+ msgid "Clear selection"
110
+ msgstr ""
111
+
112
+ msgid "Close"
113
+ msgstr ""
114
+
115
+ msgid "Close filters"
116
+ msgstr ""
117
+
118
+ msgid "Confirm"
119
+ msgstr ""
120
+
121
+ #, python-format
122
+ msgid "Couldn't save %(name)s"
123
+ msgstr ""
124
+
125
+ msgid "Custom range"
126
+ msgstr ""
127
+
128
+ msgid "Dark mode"
129
+ msgstr ""
130
+
131
+ msgid "Dashboard"
132
+ msgstr ""
133
+
134
+ msgid "Delete"
135
+ msgstr ""
136
+
137
+ #, python-format
138
+ msgid "Delete %(name)s"
139
+ msgstr ""
140
+
141
+ #, python-format
142
+ msgid "Delete %(num)d record?"
143
+ msgid_plural "Delete %(num)d records?"
144
+ msgstr[0] ""
145
+ msgstr[1] ""
146
+
147
+ msgid "Delete selected"
148
+ msgstr ""
149
+
150
+ msgid "Delete the selected records? This cannot be undone."
151
+ msgstr ""
152
+
153
+ #, python-format
154
+ msgid "Delete this %(name)s?"
155
+ msgstr ""
156
+
157
+ #, python-format
158
+ msgid "Delete «%(label)s»?"
159
+ msgstr ""
160
+
161
+ #. Translators: a bulk delete stopped part-way. %(deleted)d of
162
+ #. %(total)d records were deleted; %(error)s is the underlying error.
163
+ #, python-format
164
+ msgid "Deleted %(deleted)d of %(total)d, then failed: %(error)s"
165
+ msgstr ""
166
+
167
+ #, python-format
168
+ msgid "Deleted %(num)d record."
169
+ msgid_plural "Deleted %(num)d records."
170
+ msgstr[0] ""
171
+ msgstr[1] ""
172
+
173
+ msgid "Desc"
174
+ msgstr ""
175
+
176
+ msgid "Drag to reorder"
177
+ msgstr ""
178
+
179
+ msgid "Drag to reorder (not saved)"
180
+ msgstr ""
181
+
182
+ msgid "Edit"
183
+ msgstr ""
184
+
185
+ msgid "Email"
186
+ msgstr ""
187
+
188
+ msgid "Empty"
189
+ msgstr ""
190
+
191
+ msgid "Everything is selected."
192
+ msgstr ""
193
+
194
+ msgid "Export"
195
+ msgstr ""
196
+
197
+ msgid "Filters"
198
+ msgstr ""
199
+
200
+ msgid "First page"
201
+ msgstr ""
202
+
203
+ msgid "From"
204
+ msgstr ""
205
+
206
+ msgid "History"
207
+ msgstr ""
208
+
209
+ msgid "Language"
210
+ msgstr ""
211
+
212
+ msgid "Last page"
213
+ msgstr ""
214
+
215
+ msgid "Light mode"
216
+ msgstr ""
217
+
218
+ msgid "New"
219
+ msgstr ""
220
+
221
+ msgid "Next month"
222
+ msgstr ""
223
+
224
+ msgid "Next page"
225
+ msgstr ""
226
+
227
+ msgid "No"
228
+ msgstr ""
229
+
230
+ #, python-format
231
+ msgid "No %(label)s."
232
+ msgstr ""
233
+
234
+ msgid "No data."
235
+ msgstr ""
236
+
237
+ msgid "No items selected."
238
+ msgstr ""
239
+
240
+ msgid "No matches."
241
+ msgstr ""
242
+
243
+ msgid "No options."
244
+ msgstr ""
245
+
246
+ msgid "No panels configured."
247
+ msgstr ""
248
+
249
+ msgid "No recent activity."
250
+ msgstr ""
251
+
252
+ msgid "No records."
253
+ msgstr ""
254
+
255
+ msgid "No resources registered."
256
+ msgstr ""
257
+
258
+ msgid "No widgets configured."
259
+ msgstr ""
260
+
261
+ msgid "Not empty"
262
+ msgstr ""
263
+
264
+ msgid "Not found"
265
+ msgstr ""
266
+
267
+ msgid "Notifications"
268
+ msgstr ""
269
+
270
+ msgid "Open calendar"
271
+ msgstr ""
272
+
273
+ msgid "Open menu"
274
+ msgstr ""
275
+
276
+ msgid "Page"
277
+ msgstr ""
278
+
279
+ #, python-format
280
+ msgid "Page %(page)d of %(pages)d"
281
+ msgstr ""
282
+
283
+ msgid "Password"
284
+ msgstr ""
285
+
286
+ msgid "Past 7 days"
287
+ msgstr ""
288
+
289
+ msgid "Permission denied"
290
+ msgstr ""
291
+
292
+ msgid "Platform"
293
+ msgstr ""
294
+
295
+ msgid "PolyAdmin"
296
+ msgstr ""
297
+
298
+ msgid "Previous month"
299
+ msgstr ""
300
+
301
+ msgid "Previous page"
302
+ msgstr ""
303
+
304
+ msgid "Remove"
305
+ msgstr ""
306
+
307
+ #, python-format
308
+ msgid "Remove %(label)s"
309
+ msgstr ""
310
+
311
+ #, python-format
312
+ msgid "Remove this %(label)s?"
313
+ msgstr ""
314
+
315
+ msgid "Rows per page"
316
+ msgstr ""
317
+
318
+ msgid "Save"
319
+ msgstr ""
320
+
321
+ msgid "Save and add another"
322
+ msgstr ""
323
+
324
+ msgid "Save and continue editing"
325
+ msgstr ""
326
+
327
+ msgid "Save as new"
328
+ msgstr ""
329
+
330
+ #, python-format
331
+ msgid "Save to add %(label)s."
332
+ msgstr ""
333
+
334
+ msgid "Search…"
335
+ msgstr ""
336
+
337
+ msgid "Security check failed"
338
+ msgstr ""
339
+
340
+ msgid "Select all"
341
+ msgstr ""
342
+
343
+ msgid "Select row"
344
+ msgstr ""
345
+
346
+ #, python-format
347
+ msgid "Select the %(num)d matching"
348
+ msgid_plural "Select all %(num)d matching"
349
+ msgstr[0] ""
350
+ msgstr[1] ""
351
+
352
+ msgid "Selected records"
353
+ msgstr ""
354
+
355
+ msgid "Select…"
356
+ msgstr ""
357
+
358
+ msgid "Sign in"
359
+ msgstr ""
360
+
361
+ #, python-format
362
+ msgid "Sign in to %(site)s"
363
+ msgstr ""
364
+
365
+ msgid "Sign out"
366
+ msgstr ""
367
+
368
+ msgid "Sign-in could not be completed. Please try again."
369
+ msgstr ""
370
+
371
+ msgid "Sign-in required"
372
+ msgstr ""
373
+
374
+ msgid "Signed in"
375
+ msgstr ""
376
+
377
+ msgid "Superuser"
378
+ msgstr ""
379
+
380
+ msgid "That email and password don't match an account."
381
+ msgstr ""
382
+
383
+ msgid "That record doesn't exist, or it was deleted."
384
+ msgstr ""
385
+
386
+ #, python-format
387
+ msgid "The %(num)d matching this filter is selected."
388
+ msgid_plural "All %(num)d matching this filter are selected."
389
+ msgstr[0] ""
390
+ msgstr[1] ""
391
+
392
+ #, python-format
393
+ msgid "The %(num)d on this page is selected."
394
+ msgid_plural "All %(num)d on this page are selected."
395
+ msgstr[0] ""
396
+ msgstr[1] ""
397
+
398
+ msgid "The selection changed since you reviewed it."
399
+ msgstr ""
400
+
401
+ msgid "These records must be removed first:"
402
+ msgstr ""
403
+
404
+ msgid "This action cannot be undone."
405
+ msgstr ""
406
+
407
+ msgid "This can't be deleted"
408
+ msgstr ""
409
+
410
+ msgid "This month"
411
+ msgstr ""
412
+
413
+ msgid "This page expired before the form was submitted. Reload and try again."
414
+ msgstr ""
415
+
416
+ msgid "This will also delete"
417
+ msgstr ""
418
+
419
+ msgid "This year"
420
+ msgstr ""
421
+
422
+ msgid "To"
423
+ msgstr ""
424
+
425
+ msgid "Today"
426
+ msgstr ""
427
+
428
+ msgid "Toggle dark mode"
429
+ msgstr ""
430
+
431
+ msgid "Toggle sidebar"
432
+ msgstr ""
433
+
434
+ msgid "Total"
435
+ msgstr ""
436
+
437
+ msgid "View"
438
+ msgstr ""
439
+
440
+ msgid "Welcome back"
441
+ msgstr ""
442
+
443
+ msgid "XLSX"
444
+ msgstr ""
445
+
446
+ msgid "Yes"
447
+ msgstr ""
448
+
449
+ msgid "You have been signed out."
450
+ msgstr ""
451
+
452
+ msgid "You need to be signed in to view this page."
453
+ msgstr ""
454
+
455
+ #, python-format
456
+ msgid "Your account doesn't have permission to delete: %(types)s"
457
+ msgstr ""
458
+
459
+ msgid "Your account doesn't have permission to do that."
460
+ msgstr ""
461
+
462
+ msgid "create"
463
+ msgstr ""
464
+
465
+ msgid "delete"
466
+ msgstr ""
467
+
468
+ msgid "m@example.com"
469
+ msgstr ""
470
+
471
+ msgid "no change"
472
+ msgstr ""
473
+
474
+ msgid "system"
475
+ msgstr ""
476
+
477
+ msgid "update"
478
+ msgstr ""
479
+
480
+ #, python-format
481
+ msgid "…and %(num)d more"
482
+ msgid_plural "…and %(num)d more"
483
+ msgstr[0] ""
484
+ msgstr[1] ""
485
+