django-transcribe 0.5.17__py3-none-any.whl → 0.7.0__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.
- {django_transcribe-0.5.17.dist-info → django_transcribe-0.7.0.dist-info}/AUTHORS +6 -2
- django_transcribe-0.7.0.dist-info/METADATA +27 -0
- {django_transcribe-0.5.17.dist-info → django_transcribe-0.7.0.dist-info}/RECORD +34 -32
- {django_transcribe-0.5.17.dist-info → django_transcribe-0.7.0.dist-info}/WHEEL +1 -1
- transcribe/__init__.py +1 -1
- transcribe/admin.py +56 -11
- transcribe/apps.py +1 -2
- transcribe/filters.py +1 -2
- transcribe/forms.py +21 -4
- transcribe/migrations/0001_initial_squashed_0021_point_fks_to_transcribe_user.py +555 -0
- transcribe/migrations/0002_initial_data.py +3 -1
- transcribe/migrations/0007_reviewer_group_addition.py +2 -2
- transcribe/migrations/0018_point_fks_to_user.py +40 -0
- transcribe/migrations/0019_create_transcribeuser.py +43 -0
- transcribe/migrations/0020_populate_transcribe_users.py +18 -0
- transcribe/migrations/0021_point_fks_to_transcribe_user.py +57 -0
- transcribe/models.py +37 -21
- transcribe/signals.py +10 -1
- transcribe/templates/admin/base_site.html +1 -10
- transcribe/templates/transcribe/reports/list.html +1 -1
- transcribe/templates/transcribe/reports/projects.html +0 -19
- transcribe/templates/transcribe/reports/users.html +8 -8
- transcribe/templates/transcribe/web/dashboard.html +0 -5
- transcribe/templates/transcribe/web/project.html +1 -3
- transcribe/templates/transcribe/web/project_edit.html +0 -3
- transcribe/templates/transcribe/web/task_edit.html +22 -21
- transcribe/templates/transcribe/web/user.html +2 -57
- transcribe/templates/transcribe/web/users_list.html +11 -37
- transcribe/urls.py +27 -33
- transcribe/views/mixins.py +1 -1
- transcribe/views/reports.py +40 -28
- transcribe/views/web.py +15 -4
- django_transcribe-0.5.17.dist-info/METADATA +0 -24
- transcribe/templates/.DS_Store +0 -0
- transcribe/templates/admin/.DS_Store +0 -0
- transcribe/templates/transcribe/.DS_Store +0 -0
- {django_transcribe-0.5.17.dist-info → django_transcribe-0.7.0.dist-info}/LICENSE +0 -0
- {django_transcribe-0.5.17.dist-info → django_transcribe-0.7.0.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Transcribe was created at the BYU Library in 2012 by Geoff Groberg with UX design help from Grant Zabriskie. In 2014 Chad Hansen helped port the project from PHP to Python. In 2019 it was open sourced
|
|
1
|
+
Transcribe was created at the BYU Library in 2012 by Geoff Groberg with UX design help from Grant Zabriskie. In 2014 Chad Hansen helped port the project from PHP to Python. In 2019 it was open sourced.
|
|
2
2
|
|
|
3
3
|
Here is an incomplete list of people who have contributed to Transcribe:
|
|
4
4
|
|
|
@@ -6,4 +6,8 @@ Here is an incomplete list of people who have contributed to Transcribe:
|
|
|
6
6
|
Chad Hansen <cgh@byu.edu>
|
|
7
7
|
Grant Zabriskie <grant_zabriskie@byu.edu>
|
|
8
8
|
Ben Crowder <ben_crowder@byu.edu>
|
|
9
|
-
Scott Eldredge <scott_eldredge@byu.edu>
|
|
9
|
+
Scott Eldredge <scott_eldredge@byu.edu>
|
|
10
|
+
Taylor Payne <taylor_payne@byu.edu>
|
|
11
|
+
Mathew Behling <mathew_behling@byu.edu>
|
|
12
|
+
Russell Memory <russell_memory@byu.edu>
|
|
13
|
+
Winn Madesn <winn_madsen@byu.edu>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: django-transcribe
|
|
3
|
+
Version: 0.7.0
|
|
4
|
+
Summary: crowd source transcription
|
|
5
|
+
Home-page: https://gitlab.com/byuhbll/lib/python/django-transcribe
|
|
6
|
+
Author: BYU Library Software Engineering
|
|
7
|
+
Author-email: support@lib.byu.edu
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Framework :: Django
|
|
12
|
+
Classifier: Framework :: Django :: 3.2
|
|
13
|
+
Classifier: Framework :: Django :: 4.1
|
|
14
|
+
Classifier: Framework :: Django :: 4.2
|
|
15
|
+
Classifier: Programming Language :: Python
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
License-File: AUTHORS
|
|
23
|
+
Requires-Dist: django-model-utils
|
|
24
|
+
Requires-Dist: lxml
|
|
25
|
+
Requires-Dist: Django <5.0.0,>=3.2.0
|
|
26
|
+
|
|
27
|
+
Crowd source the transcription of texts, audio, and video.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
transcribe/__init__.py,sha256=
|
|
2
|
-
transcribe/admin.py,sha256=
|
|
1
|
+
transcribe/__init__.py,sha256=bEBoHMQqYV-w9gc5bwGNT0UXJvGeZxeijjOPyN1p-QI,78
|
|
2
|
+
transcribe/admin.py,sha256=HwrJafMjSoIKgb_En0zNvZ3nk5rCZWtJ5n0DdGU9nfI,6512
|
|
3
3
|
transcribe/api.py,sha256=2m_y44ilQh87CWksHHqiE4A14javR8omlXEXm65lmC4,74
|
|
4
|
-
transcribe/apps.py,sha256=
|
|
4
|
+
transcribe/apps.py,sha256=XUdPQkCjpqWAKDCIaE6Mh8Q4xN5upKv95MG1u2_5pig,246
|
|
5
5
|
transcribe/diff_match_patch.py,sha256=HZC5DNab5OVwbB4Zc7G17l1OHbBlH2g9-xOtT1zkQ1A,84937
|
|
6
|
-
transcribe/filters.py,sha256=
|
|
7
|
-
transcribe/forms.py,sha256=
|
|
6
|
+
transcribe/filters.py,sha256=_ANh6XGDXgmD_wxQo5IPReQsv3_MDqThOwB06LKfbac,1264
|
|
7
|
+
transcribe/forms.py,sha256=6j-MtheDtDeBo9B_hlKhkWkWkKVJsLrJIlSsZAlB7ic,5612
|
|
8
8
|
transcribe/middleware.py,sha256=3SvvNmJMlVohD_4Liv1yT3hc_nudpvt2giAE7Wt9rx4,485
|
|
9
|
-
transcribe/models.py,sha256=
|
|
9
|
+
transcribe/models.py,sha256=g0_rtkLKbrkwxbWQbfZ3q5rnug235aEzFCI5DAUrcI4,38965
|
|
10
10
|
transcribe/settings.py,sha256=TNRFJstZF9X3l5qZSzv3xcrEuPMmOQbB-59mqADn9Dk,569
|
|
11
|
-
transcribe/signals.py,sha256=
|
|
12
|
-
transcribe/urls.py,sha256=
|
|
11
|
+
transcribe/signals.py,sha256=pvRSWobg__Jw5ZvlFBZZAw3rDk1dvVyiq8Ka2lBGeSY,1105
|
|
12
|
+
transcribe/urls.py,sha256=xgTkOdeC1cWmQAMzAp-VRwvmwyEAfEabncGgHyZiAL0,2040
|
|
13
13
|
transcribe/utils.py,sha256=k8OFWqO5vU3jUCJsLZmJiTK0Rlrb0Yf-rqqfDJc2HZw,3747
|
|
14
14
|
transcribe/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
transcribe/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -17,12 +17,13 @@ transcribe/management/commands/check_media_size.py,sha256=ZT8KT-whEA7-uLqxa3Q10H
|
|
|
17
17
|
transcribe/management/commands/fix_permissions.py,sha256=2CYzjkD8YMw6CqRCr5LIvXlNom-3NrPm69buaArOiE4,1558
|
|
18
18
|
transcribe/management/commands/functional_tests.py,sha256=flJXZUPbsjbC51KEFaz5TXQLxf4GXHbbKd4diopVMDI,1634
|
|
19
19
|
transcribe/migrations/0001_initial.py,sha256=IuhmY5SWSZ4rVSOtvoQOeQmgSLryPiK98rubp91o0j8,7132
|
|
20
|
-
transcribe/migrations/
|
|
20
|
+
transcribe/migrations/0001_initial_squashed_0021_point_fks_to_transcribe_user.py,sha256=u9xq3C4kCKE_o251AaOLXr08ataRkAceaJ7hxt_d3aw,18319
|
|
21
|
+
transcribe/migrations/0002_initial_data.py,sha256=BXK8sjEEV3ACR9u98RRMxI0T1mDIM_QILobFrGIZMGg,3383
|
|
21
22
|
transcribe/migrations/0003_transcribeuser.py,sha256=dYz_tEvCgJBM5sP631AWOK_aMg1VpYRg9xlXWJI-bSw,443
|
|
22
23
|
transcribe/migrations/0004_auto_20150716_1639.py,sha256=BgwqqK2BxbPmUaUQO5RBPIZeZnUphTADAoViFxWMGfQ,512
|
|
23
24
|
transcribe/migrations/0005_auto_20150717_0829.py,sha256=W0l8re8Zp5-Xg_N8wHeWAMaT2SAgFAdlJmWQjx4hU_4,553
|
|
24
25
|
transcribe/migrations/0006_project_archived.py,sha256=N4bfvX_wmRr9OHAoeosZbtKLGUhZchhJF6bH-tQByUY,428
|
|
25
|
-
transcribe/migrations/0007_reviewer_group_addition.py,sha256=
|
|
26
|
+
transcribe/migrations/0007_reviewer_group_addition.py,sha256=08uhIphclTOXVf5QIlykrXW_I8e4KdOW-Zcw1hC5JOE,2384
|
|
26
27
|
transcribe/migrations/0008_auto_20150925_1522.py,sha256=ujH1uAuTRNJOMw5dWRFPqT2mnkjaC5xAYljL9yJElHg,1266
|
|
27
28
|
transcribe/migrations/0009_auto_20150929_1314.py,sha256=lXElv1W2T0fTggdEnW7ssApkVgGcrD9ZA_i6Ud5vAqk,350
|
|
28
29
|
transcribe/migrations/0010_userprojectpreferences.py,sha256=GGbG-O5OflRcyirhG9uHY7H12yIn0fCwdw6nLNmtv4k,1641
|
|
@@ -33,6 +34,10 @@ transcribe/migrations/0014_auto_20160203_1544.py,sha256=jc0GDUKuj2m4T9FIX6Q-guz0
|
|
|
33
34
|
transcribe/migrations/0015_auto_20160309_1342.py,sha256=vy2_6J3ax_znwR5DjVhhsbw3GoS3sl3VEa9gA4j6Gks,596
|
|
34
35
|
transcribe/migrations/0016_auto_20160817_1343.py,sha256=wQjpwUXABGLZ1X_noITkBQ1BCaGQSxwRa-cN8wySpjg,391
|
|
35
36
|
transcribe/migrations/0017_auto_20191115_1123.py,sha256=hixGTGYWGKOQakeiL4ISq_97FFPgg9chPEykphDHDt0,866
|
|
37
|
+
transcribe/migrations/0018_point_fks_to_user.py,sha256=qqni_HVTvp1ENajKAuMf2fyps8BNERrwP28Hcmd7TOw,1214
|
|
38
|
+
transcribe/migrations/0019_create_transcribeuser.py,sha256=mLd8rOFfSkI_5t27AFhckpu-RmntN-T9k4Osm-K7skQ,1311
|
|
39
|
+
transcribe/migrations/0020_populate_transcribe_users.py,sha256=nkB5v7vCNLBibR-sENivKBmJY4Yf-VIImZqy4AQs6oA,504
|
|
40
|
+
transcribe/migrations/0021_point_fks_to_transcribe_user.py,sha256=V4LAQ7xkVGc0oAntppKV9CiQj0YBVzSOKco5I-cN_eM,1781
|
|
36
41
|
transcribe/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
42
|
transcribe/static/transcribe/favicon.ico,sha256=4towU7vPOvBDh1bq1MT-ZPI_I16Ia0mWcbgtH8rBHCk,318
|
|
38
43
|
transcribe/static/transcribe/css/icons.css,sha256=1Nd20ZYLtTCK-UvBMqQBxfWq6YmHNeW2Wn-HHcKaDQI,24346
|
|
@@ -110,40 +115,37 @@ transcribe/static/transcribe/js/lib/rangy/rangy-highlighter.js,sha256=a0giQ-8tEi
|
|
|
110
115
|
transcribe/static/transcribe/js/lib/rangy/rangy-selectionsaverestore.js,sha256=KEy_pZhmL1iO_lsmC_ow_oWfNjIfd19Ryw0kJZ974Ik,9546
|
|
111
116
|
transcribe/static/transcribe/js/lib/rangy/rangy-serializer.js,sha256=yjtEFLyoUlDtOM1RPECLtWeIypXprTPFFqaVAkxqCGs,12705
|
|
112
117
|
transcribe/static/transcribe/js/lib/rangy/rangy-textrange.js,sha256=oRuHe4BE3_QpKwVQ457PNs4PBrz7UQ2V6Mu7dva9R7s,81964
|
|
113
|
-
transcribe/templates
|
|
114
|
-
transcribe/templates/admin/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
|
115
|
-
transcribe/templates/admin/base_site.html,sha256=epIGPdKgYnSRMx49oYkcJm6WX1gIXdal4Q_advX-Nyw,589
|
|
118
|
+
transcribe/templates/admin/base_site.html,sha256=ITfmNHf0qOdJ5VJWxya5W4p4qtDsPSXPCaiUQJSp-G8,286
|
|
116
119
|
transcribe/templates/admin/show_hide_filter.html,sha256=WBKFzDAK93yigz1p7NE0Yzh_iBIUm67Rf_pkskubW1k,416
|
|
117
120
|
transcribe/templates/admin/transcribe/project/delete_confirmation.html,sha256=1b0L81DZ7LhPVRcMQmsq7PhzoPG9pQqsAD7xzSs56oM,2584
|
|
118
121
|
transcribe/templates/registration/login.html,sha256=Hh0FFE270p5eyTFbZLWB_K1KfBKyHmrdl9Ylh18cPqA,257
|
|
119
|
-
transcribe/templates/transcribe/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
|
120
122
|
transcribe/templates/transcribe/errors/404.html,sha256=sWTl4eyIg0ysMiOo6wLg9egGGDLJ9BELoOhLXEEnGrg,178
|
|
121
123
|
transcribe/templates/transcribe/errors/500.html,sha256=B0W2NZiGcQrnFgQIXPefF02ZVAwrXEAm8Ohjnnps-hQ,195
|
|
122
|
-
transcribe/templates/transcribe/reports/list.html,sha256=
|
|
123
|
-
transcribe/templates/transcribe/reports/projects.html,sha256=
|
|
124
|
-
transcribe/templates/transcribe/reports/users.html,sha256=
|
|
124
|
+
transcribe/templates/transcribe/reports/list.html,sha256=ovEtVFknwhz89wS1nQjeQ1xwk3acmmtCEgZFKw_KuqI,3848
|
|
125
|
+
transcribe/templates/transcribe/reports/projects.html,sha256=wHkcS_DdtU5xoiOHP9RAnieUwDzbttsIKlYxm_MfGo4,1639
|
|
126
|
+
transcribe/templates/transcribe/reports/users.html,sha256=51j4pSrmIM4G0caqeQFXkeIIzgeggnqOlr039jus2ac,1427
|
|
125
127
|
transcribe/templates/transcribe/web/base.html,sha256=zAP49q4DX6bqSn4dBi9IQ8RTy2AsYI8YDDTo4HfDtsg,51
|
|
126
128
|
transcribe/templates/transcribe/web/base_transcribe.html,sha256=KU3J2SRMPu4D14YgdT7Eaiv7BOI0s2e1o195SPf69vI,4048
|
|
127
|
-
transcribe/templates/transcribe/web/dashboard.html,sha256=
|
|
129
|
+
transcribe/templates/transcribe/web/dashboard.html,sha256=7CTABKnepEIlL4hygi-WBzkqbfgRiXm60XQ8ES_wAUA,4061
|
|
128
130
|
transcribe/templates/transcribe/web/faq.html,sha256=5ZqGWLsLh3Q3DBmZQXUvZtPJvkIOvUUwL5HLdPyjet8,10192
|
|
129
131
|
transcribe/templates/transcribe/web/help.html,sha256=NjbUm4ZEgu60mFsZdB1nRsmSE7ynzlQ4QgGskVT9DZ8,2482
|
|
130
132
|
transcribe/templates/transcribe/web/index.html,sha256=faHWxkKAxRZNZcVIi1nG8rLBkQqnaSfXudVNhbMMTGI,133
|
|
131
133
|
transcribe/templates/transcribe/web/landing_page.html,sha256=6jEHXMYNXhKsiHJ2NhSm_TTBVQEKUZPma9X6LwxSLPo,376
|
|
132
|
-
transcribe/templates/transcribe/web/project.html,sha256=
|
|
134
|
+
transcribe/templates/transcribe/web/project.html,sha256=UGxtvknONkiUT3iFuloKPwohnYPohokHhk1FkTE_3xg,3136
|
|
133
135
|
transcribe/templates/transcribe/web/project_confirm_delete.html,sha256=KXZm8nh6J5yErbYY0l2JfhIpQVyS9QaoXp1mGgbQtpE,426
|
|
134
|
-
transcribe/templates/transcribe/web/project_edit.html,sha256=
|
|
136
|
+
transcribe/templates/transcribe/web/project_edit.html,sha256=UJaHyRCUTf9qbHYTG1MKDzAlLYz7L7UBhJw-Ixtt0Q8,568
|
|
135
137
|
transcribe/templates/transcribe/web/projects_list.html,sha256=-Ib74x7gLND4Q18wUo-JXmmmnpo8nbP-gVJ0lObfvWg,1300
|
|
136
|
-
transcribe/templates/transcribe/web/task_edit.html,sha256=
|
|
137
|
-
transcribe/templates/transcribe/web/user.html,sha256
|
|
138
|
-
transcribe/templates/transcribe/web/users_list.html,sha256=
|
|
138
|
+
transcribe/templates/transcribe/web/task_edit.html,sha256=JWisOHN-bd2gh3t0RB8BiuS8Wc3IwRzt6cA_9DiB0Tw,9219
|
|
139
|
+
transcribe/templates/transcribe/web/user.html,sha256=-EzYdRpc383iL31lmNRv4gE-mwFO8L1KeMNGlt633rM,863
|
|
140
|
+
transcribe/templates/transcribe/web/users_list.html,sha256=uXbaDTXXXOJ9iWuw6OoKRXM6B2--qhswGOv6DvYggRU,1830
|
|
139
141
|
transcribe/templates/transcribe/xsl/tei-html.xsl,sha256=oOVnAZhDVDVzrQR5UEbNV-97ZBTfNfzKDThiUr9EGCc,2984
|
|
140
142
|
transcribe/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
|
-
transcribe/views/mixins.py,sha256=
|
|
142
|
-
transcribe/views/reports.py,sha256=
|
|
143
|
-
transcribe/views/web.py,sha256=
|
|
144
|
-
django_transcribe-0.
|
|
145
|
-
django_transcribe-0.
|
|
146
|
-
django_transcribe-0.
|
|
147
|
-
django_transcribe-0.
|
|
148
|
-
django_transcribe-0.
|
|
149
|
-
django_transcribe-0.
|
|
143
|
+
transcribe/views/mixins.py,sha256=QmFDhWb5VCEaGatLdbsTK72jiBG2OKrlncnz79FUmto,2727
|
|
144
|
+
transcribe/views/reports.py,sha256=7YD5E6CPsIfWP8hG8IFTek29cM2T29NHuowAdlTAyBs,13408
|
|
145
|
+
transcribe/views/web.py,sha256=sU5FNh0jl1yKSRZFo5CvdD5CVV9sb9vtUNdLRZuzAQg,15213
|
|
146
|
+
django_transcribe-0.7.0.dist-info/AUTHORS,sha256=rNmFConshTlNpyhcu4CKZSeQQMwuyVYXbeqXgRko-Yc,640
|
|
147
|
+
django_transcribe-0.7.0.dist-info/LICENSE,sha256=I9xp13yeayqZikrv7rQrzsDWviTwy1R0phFlKtM1meg,1472
|
|
148
|
+
django_transcribe-0.7.0.dist-info/METADATA,sha256=85LOoJ3YJ-ewMWcOcv8M3qR5cWI2pzw22kJf8EdHio0,1021
|
|
149
|
+
django_transcribe-0.7.0.dist-info/WHEEL,sha256=uCRv0ZEik_232NlR4YDw4Pv3Ajt5bKvMH13NUU7hFuI,91
|
|
150
|
+
django_transcribe-0.7.0.dist-info/top_level.txt,sha256=NljSay7zO6czcjqjVmivw6VW58aXlYHVZQvnwmpy08g,11
|
|
151
|
+
django_transcribe-0.7.0.dist-info/RECORD,,
|
transcribe/__init__.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
default_app_config = 'transcribe.apps.transcribeConfig'
|
|
2
|
-
__version__ = '0.
|
|
2
|
+
__version__ = '0.7.0'
|
transcribe/admin.py
CHANGED
|
@@ -25,9 +25,9 @@ class UserTaskAdmin(admin.ModelAdmin):
|
|
|
25
25
|
'task__file',
|
|
26
26
|
'status',
|
|
27
27
|
'task_type',
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
28
|
+
'user__user__username',
|
|
29
|
+
'user__user__first_name',
|
|
30
|
+
'user__user__last_name',
|
|
31
31
|
'task__project__title',
|
|
32
32
|
)
|
|
33
33
|
fields = (
|
|
@@ -168,17 +168,32 @@ class TagAdmin(admin.ModelAdmin):
|
|
|
168
168
|
|
|
169
169
|
@admin.register(models.TranscribeUser)
|
|
170
170
|
class TranscribeUserAdmin(admin.ModelAdmin):
|
|
171
|
-
readonly_fields =
|
|
172
|
-
fields = [
|
|
171
|
+
readonly_fields = (
|
|
173
172
|
'username',
|
|
174
173
|
'first_name',
|
|
175
174
|
'last_name',
|
|
176
175
|
'email',
|
|
177
|
-
'is_active',
|
|
178
|
-
'last_login',
|
|
179
176
|
'groups',
|
|
180
177
|
'usertasks_link',
|
|
181
|
-
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
fieldsets = (
|
|
181
|
+
(
|
|
182
|
+
None,
|
|
183
|
+
{
|
|
184
|
+
'fields': (
|
|
185
|
+
'user',
|
|
186
|
+
'username',
|
|
187
|
+
'first_name',
|
|
188
|
+
'last_name',
|
|
189
|
+
'email',
|
|
190
|
+
'groups',
|
|
191
|
+
'usertasks_link',
|
|
192
|
+
)
|
|
193
|
+
},
|
|
194
|
+
),
|
|
195
|
+
)
|
|
196
|
+
|
|
182
197
|
list_display = [
|
|
183
198
|
'username',
|
|
184
199
|
'first_name',
|
|
@@ -191,10 +206,37 @@ class TranscribeUserAdmin(admin.ModelAdmin):
|
|
|
191
206
|
'num_skipped_reviews',
|
|
192
207
|
'num_in_progress_reviews',
|
|
193
208
|
]
|
|
194
|
-
search_fields = [
|
|
209
|
+
search_fields = [
|
|
210
|
+
'user__username',
|
|
211
|
+
'user__first_name',
|
|
212
|
+
'user__last_name',
|
|
213
|
+
'user__email',
|
|
214
|
+
]
|
|
195
215
|
|
|
196
|
-
def
|
|
197
|
-
return
|
|
216
|
+
def username(self, obj):
|
|
217
|
+
return obj.user.username
|
|
218
|
+
|
|
219
|
+
username.short_description = 'Username'
|
|
220
|
+
|
|
221
|
+
def first_name(self, obj):
|
|
222
|
+
return obj.user.first_name
|
|
223
|
+
|
|
224
|
+
first_name.short_description = 'First name'
|
|
225
|
+
|
|
226
|
+
def last_name(self, obj):
|
|
227
|
+
return obj.user.last_name
|
|
228
|
+
|
|
229
|
+
last_name.short_description = 'Last name'
|
|
230
|
+
|
|
231
|
+
def email(self, obj):
|
|
232
|
+
return obj.user.email
|
|
233
|
+
|
|
234
|
+
email.short_description = 'Email'
|
|
235
|
+
|
|
236
|
+
def groups(self, obj):
|
|
237
|
+
return ', '.join([group.name for group in obj.user.groups.all()])
|
|
238
|
+
|
|
239
|
+
groups.short_description = 'Groups'
|
|
198
240
|
|
|
199
241
|
def usertasks_link(self, obj):
|
|
200
242
|
url = resolve_url('admin:transcribe_usertask_changelist')
|
|
@@ -205,3 +247,6 @@ class TranscribeUserAdmin(admin.ModelAdmin):
|
|
|
205
247
|
)
|
|
206
248
|
|
|
207
249
|
usertasks_link.short_description = 'User tasks'
|
|
250
|
+
|
|
251
|
+
def get_queryset(self, request):
|
|
252
|
+
return self.model.objects.filter(user__is_active=True)
|
transcribe/apps.py
CHANGED
transcribe/filters.py
CHANGED
|
@@ -12,14 +12,13 @@ class UserFilterForUserTask(admin.SimpleListFilter):
|
|
|
12
12
|
user_id = request.GET.get('user_id')
|
|
13
13
|
if not user_id:
|
|
14
14
|
return []
|
|
15
|
-
user = models.TranscribeUser.objects.get(
|
|
15
|
+
user = models.TranscribeUser.objects.get(user__pk=user_id)
|
|
16
16
|
return [(user_id, user.name.strip() or user)]
|
|
17
17
|
|
|
18
18
|
def queryset(self, request, queryset):
|
|
19
19
|
user_pk = request.GET.get('user_id')
|
|
20
20
|
if not user_pk:
|
|
21
21
|
return queryset
|
|
22
|
-
# user = models.TranscribeUser.objects.get(pk=user_pk)
|
|
23
22
|
return queryset.filter(user=user_pk)
|
|
24
23
|
|
|
25
24
|
|
transcribe/forms.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import html
|
|
2
2
|
import logging
|
|
3
3
|
|
|
4
4
|
from django import forms
|
|
@@ -9,6 +9,24 @@ from .models import Project, Task, task_file_name
|
|
|
9
9
|
log = logging.getLogger(__name__)
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
class MultipleFileInput(forms.ClearableFileInput):
|
|
13
|
+
allow_multiple_selected = True
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class MultipleFileField(forms.FileField):
|
|
17
|
+
def __init__(self, *args, **kwargs):
|
|
18
|
+
kwargs.setdefault('widget', MultipleFileInput())
|
|
19
|
+
super().__init__(*args, **kwargs)
|
|
20
|
+
|
|
21
|
+
def clean(self, data, initial=None):
|
|
22
|
+
single_file_clean = super().clean
|
|
23
|
+
if isinstance(data, (list, tuple)):
|
|
24
|
+
result = [single_file_clean(d, initial) for d in data]
|
|
25
|
+
else:
|
|
26
|
+
result = single_file_clean(data, initial)
|
|
27
|
+
return result
|
|
28
|
+
|
|
29
|
+
|
|
12
30
|
class NoColon(forms.ModelForm):
|
|
13
31
|
def __init__(self, *args, **kwargs):
|
|
14
32
|
kwargs.setdefault('label_suffix', '')
|
|
@@ -19,9 +37,8 @@ class NoColon(forms.ModelForm):
|
|
|
19
37
|
|
|
20
38
|
|
|
21
39
|
class ProjectForm(NoColon):
|
|
22
|
-
upload_media_files =
|
|
40
|
+
upload_media_files = MultipleFileField(
|
|
23
41
|
required=False,
|
|
24
|
-
widget=forms.FileInput(attrs={'multiple': 'multiple'}),
|
|
25
42
|
label='Upload media files',
|
|
26
43
|
)
|
|
27
44
|
|
|
@@ -96,7 +113,7 @@ class ProjectForm(NoColon):
|
|
|
96
113
|
|
|
97
114
|
def get_processed_text(self, text):
|
|
98
115
|
"""Given unprocessed text, process it and return the result."""
|
|
99
|
-
text =
|
|
116
|
+
text = html.escape(text, quote=False) # HTML encode
|
|
100
117
|
text = text.replace('ÿþ', '').replace('þÿ', '') # remove UTF-16 BOM
|
|
101
118
|
return text
|
|
102
119
|
|