"diff-05553bd9a2fa7c869723dc9838ba506cf0828b33R203">203
+2021.07.24 09:45:40 LOG5[ui]: Configuration successful
204
+2021.07.24 09:46:18 LOG3[ui]: Received SIGINT; terminating
205
+2021.07.24 09:46:35 LOG5[ui]: stunnel 5.50 on aarch64-unknown-linux-gnu platform
206
+2021.07.24 09:46:35 LOG5[ui]: Compiled with OpenSSL 1.1.1b  26 Feb 2019
207
+2021.07.24 09:46:35 LOG5[ui]: Running  with OpenSSL 1.1.1d  10 Sep 2019
208
+2021.07.24 09:46:35 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6,SYSTEMD TLS:ENGINE,FIPS,OCSP,PSK,SNI Auth:LIBWRAP
209
+2021.07.24 09:46:35 LOG5[ui]: Reading configuration from file /code/stunnel/dev_https
210
+2021.07.24 09:46:35 LOG5[ui]: UTF-8 byte order mark not detected
211
+2021.07.24 09:46:35 LOG5[ui]: FIPS mode disabled
212
+2021.07.24 09:46:35 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
213
+2021.07.24 09:46:35 LOG5[ui]: Configuration successful
214
+2021.07.24 09:47:13 LOG3[ui]: Received SIGINT; terminating
215
+2021.07.24 09:47:18 LOG5[ui]: stunnel 5.50 on aarch64-unknown-linux-gnu platform
216
+2021.07.24 09:47:18 LOG5[ui]: Compiled with OpenSSL 1.1.1b  26 Feb 2019
217
+2021.07.24 09:47:18 LOG5[ui]: Running  with OpenSSL 1.1.1d  10 Sep 2019
218
+2021.07.24 09:47:18 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6,SYSTEMD TLS:ENGINE,FIPS,OCSP,PSK,SNI Auth:LIBWRAP
219
+2021.07.24 09:47:18 LOG5[ui]: Reading configuration from file /code/stunnel/dev_https
220
+2021.07.24 09:47:18 LOG5[ui]: UTF-8 byte order mark not detected
221
+2021.07.24 09:47:18 LOG5[ui]: FIPS mode disabled
222
+2021.07.24 09:47:18 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
223
+2021.07.24 09:47:18 LOG5[ui]: Configuration successful
224
+2021.07.24 09:48:29 LOG5[ui]: Terminated
225
+2021.07.24 16:51:14 LOG5[ui]: stunnel 5.59 on x86_64-apple-darwin20.3.0 platform
226
+2021.07.24 16:51:14 LOG5[ui]: Compiled/running with OpenSSL 1.1.1k  25 Mar 2021
227
+2021.07.24 16:51:14 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6 TLS:ENGINE,OCSP,PSK,SNI
228
+2021.07.24 16:51:14 LOG5[ui]: Reading configuration from file /Users/simplicoltd./projects/shaqFindBed/app/stunnel/dev_https
229
+2021.07.24 16:51:14 LOG5[ui]: UTF-8 byte order mark not detected
230
+2021.07.24 16:51:14 LOG5[ui]: FIPS mode disabled
231
+2021.07.24 16:51:14 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
232
+2021.07.24 16:51:14 LOG5[ui]: Configuration successful
233
+2021.07.24 16:51:14 LOG5[ui]: Binding service [https] to 0.0.0.0:8443: Address already in use (48)
234
+2021.07.24 16:51:21 LOG3[ui]: Received SIGINT; terminating
235
+2021.07.24 16:51:21 LOG5[ui]: Terminating 1 service thread(s)
236
+2021.07.24 16:51:21 LOG5[ui]: Service threads terminated
237
+2021.07.24 16:51:27 LOG5[ui]: stunnel 5.59 on x86_64-apple-darwin20.3.0 platform
238
+2021.07.24 16:51:27 LOG5[ui]: Compiled/running with OpenSSL 1.1.1k  25 Mar 2021
239
+2021.07.24 16:51:27 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6 TLS:ENGINE,OCSP,PSK,SNI
240
+2021.07.24 16:51:27 LOG5[ui]: Reading configuration from file /Users/simplicoltd./projects/shaqFindBed/app/stunnel/dev_https
241
+2021.07.24 16:51:27 LOG5[ui]: UTF-8 byte order mark not detected
242
+2021.07.24 16:51:27 LOG5[ui]: FIPS mode disabled
243
+2021.07.24 16:51:27 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
244
+2021.07.24 16:51:27 LOG5[ui]: Configuration successful
245
+2021.07.24 16:51:27 LOG5[ui]: Binding service [https] to 0.0.0.0:8443: Address already in use (48)
246
+2021.07.24 16:51:30 LOG3[ui]: Received SIGINT; terminating
247
+2021.07.24 16:51:30 LOG5[ui]: Terminating 1 service thread(s)
248
+2021.07.24 16:51:30 LOG5[ui]: Service threads terminated
249
+2021.07.24 16:52:32 LOG5[ui]: stunnel 5.59 on x86_64-apple-darwin20.3.0 platform
250
+2021.07.24 16:52:32 LOG5[ui]: Compiled/running with OpenSSL 1.1.1k  25 Mar 2021
251
+2021.07.24 16:52:32 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6 TLS:ENGINE,OCSP,PSK,SNI
252
+2021.07.24 16:52:32 LOG5[ui]: Reading configuration from file /Users/simplicoltd./projects/shaqFindBed/app/stunnel/dev_https
253
+2021.07.24 16:52:32 LOG5[ui]: UTF-8 byte order mark not detected
254
+2021.07.24 16:52:32 LOG5[ui]: FIPS mode disabled
255
+2021.07.24 16:52:32 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
256
+2021.07.24 16:52:32 LOG5[ui]: Configuration successful
257
+2021.07.24 16:52:32 LOG5[ui]: Binding service [https] to 0.0.0.0:8443: Address already in use (48)
258
+2021.07.24 16:52:43 LOG5[0]: Service [https] accepted connection from ::1:55636
259
+2021.07.24 16:52:43 LOG5[1]: Service [https] accepted connection from ::1:55637
260
+2021.07.24 16:52:43 LOG3[0]: SSL_accept: ssl/record/ssl3_record.c:322: error:1408F09C:SSL routines:ssl3_get_record:http request
261
+2021.07.24 16:52:43 LOG5[0]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
262
+2021.07.24 16:52:44 LOG5[2]: Service [https] accepted connection from ::1:55646
263
+2021.07.24 16:52:44 LOG3[1]: SSL_accept: ssl/record/ssl3_record.c:322: error:1408F09C:SSL routines:ssl3_get_record:http request
264
+2021.07.24 16:52:44 LOG5[1]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
265
+2021.07.24 16:52:44 LOG3[2]: SSL_accept: ssl/record/ssl3_record.c:322: error:1408F09C:SSL routines:ssl3_get_record:http request
266
+2021.07.24 16:52:44 LOG5[2]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
267
+2021.07.24 16:52:44 LOG5[3]: Service [https] accepted connection from ::1:55647
268
+2021.07.24 16:52:44 LOG3[3]: SSL_accept: ssl/record/ssl3_record.c:322: error:1408F09C:SSL routines:ssl3_get_record:http request
269
+2021.07.24 16:52:44 LOG5[3]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
270
+2021.07.24 16:52:46 LOG5[4]: Service [https] accepted connection from ::1:55652
271
+2021.07.24 16:52:46 LOG5[5]: Service [https] accepted connection from ::1:55653
272
+2021.07.24 16:52:46 LOG3[4]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
273
+2021.07.24 16:52:46 LOG5[4]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
274
+2021.07.24 16:52:46 LOG3[5]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
275
+2021.07.24 16:52:46 LOG5[5]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
276
+2021.07.24 16:52:47 LOG5[7]: Service [https] accepted connection from ::1:55655
277
+2021.07.24 16:52:47 LOG5[6]: Service [https] accepted connection from ::1:55654
278
+2021.07.24 16:52:47 LOG3[6]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
279
+2021.07.24 16:52:47 LOG5[6]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
280
+2021.07.24 16:52:47 LOG3[7]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
281
+2021.07.24 16:52:47 LOG5[7]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
282
+2021.07.24 16:53:00 LOG3[ui]: Received SIGINT; terminating
283
+2021.07.24 16:53:00 LOG5[ui]: Terminating 1 service thread(s)
284
+2021.07.24 16:53:00 LOG5[ui]: Service threads terminated
285
+2021.07.24 16:54:06 LOG5[ui]: stunnel 5.59 on x86_64-apple-darwin20.3.0 platform
286
+2021.07.24 16:54:06 LOG5[ui]: Compiled/running with OpenSSL 1.1.1k  25 Mar 2021
287
+2021.07.24 16:54:06 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6 TLS:ENGINE,OCSP,PSK,SNI
288
+2021.07.24 16:54:06 LOG5[ui]: Reading configuration from file /Users/simplicoltd./projects/shaqFindBed/app/stunnel/dev_https
289
+2021.07.24 16:54:06 LOG5[ui]: UTF-8 byte order mark not detected
290
+2021.07.24 16:54:06 LOG5[ui]: FIPS mode disabled
291
+2021.07.24 16:54:06 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
292
+2021.07.24 16:54:06 LOG5[ui]: Configuration successful
293
+2021.07.24 16:54:06 LOG5[ui]: Binding service [https] to 0.0.0.0:8443: Address already in use (48)
294
+2021.07.24 16:54:15 LOG5[0]: Service [https] accepted connection from ::1:55712
295
+2021.07.24 16:54:15 LOG5[1]: Service [https] accepted connection from ::1:55713
296
+2021.07.24 16:54:15 LOG3[0]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
297
+2021.07.24 16:54:15 LOG3[1]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
298
+2021.07.24 16:54:15 LOG5[0]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
299
+2021.07.24 16:54:15 LOG5[1]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
300
+2021.07.24 16:54:26 LOG3[ui]: Received SIGINT; terminating
301
+2021.07.24 16:54:26 LOG5[ui]: Terminating 1 service thread(s)
302
+2021.07.24 16:54:26 LOG5[ui]: Service threads terminated
303
+2021.07.24 16:55:46 LOG5[ui]: stunnel 5.59 on x86_64-apple-darwin20.3.0 platform
304
+2021.07.24 16:55:46 LOG5[ui]: Compiled/running with OpenSSL 1.1.1k  25 Mar 2021
305
+2021.07.24 16:55:46 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6 TLS:ENGINE,OCSP,PSK,SNI
306
+2021.07.24 16:55:46 LOG5[ui]: Reading configuration from file /Users/simplicoltd./projects/shaqFindBed/app/stunnel/dev_https
307
+2021.07.24 16:55:46 LOG5[ui]: UTF-8 byte order mark not detected
308
+2021.07.24 16:55:46 LOG5[ui]: FIPS mode disabled
309
+2021.07.24 16:55:46 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
310
+2021.07.24 16:55:46 LOG5[ui]: Configuration successful
311
+2021.07.24 16:55:46 LOG5[ui]: Binding service [https] to 0.0.0.0:8443: Address already in use (48)
312
+2021.07.24 16:55:57 LOG5[0]: Service [https] accepted connection from ::1:55754
313
+2021.07.24 16:55:57 LOG5[1]: Service [https] accepted connection from ::1:55755
314
+2021.07.24 16:55:57 LOG3[1]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
315
+2021.07.24 16:55:57 LOG3[0]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
316
+2021.07.24 16:55:57 LOG5[1]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
317
+2021.07.24 16:55:57 LOG5[0]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
318
+2021.07.24 16:56:28 LOG3[ui]: Received SIGINT; terminating
319
+2021.07.24 16:56:28 LOG5[ui]: Terminating 1 service thread(s)
320
+2021.07.24 16:56:28 LOG5[ui]: Service threads terminated
321
+2021.07.24 16:57:27 LOG5[ui]: stunnel 5.59 on x86_64-apple-darwin20.3.0 platform
322
+2021.07.24 16:57:27 LOG5[ui]: Compiled/running with OpenSSL 1.1.1k  25 Mar 2021
323
+2021.07.24 16:57:27 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6 TLS:ENGINE,OCSP,PSK,SNI
324
+2021.07.24 16:57:27 LOG5[ui]: Reading configuration from file /Users/simplicoltd./projects/shaqFindBed/app/stunnel/dev_https
325
+2021.07.24 16:57:27 LOG5[ui]: UTF-8 byte order mark not detected
326
+2021.07.24 16:57:27 LOG5[ui]: FIPS mode disabled
327
+2021.07.24 16:57:27 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
328
+2021.07.24 16:57:27 LOG5[ui]: Configuration successful
329
+2021.07.24 16:57:27 LOG5[ui]: Binding service [https] to 0.0.0.0:8443: Address already in use (48)
330
+2021.07.24 16:57:31 LOG5[1]: Service [https] accepted connection from ::1:55812
331
+2021.07.24 16:57:31 LOG5[0]: Service [https] accepted connection from ::1:55811
332
+2021.07.24 16:57:31 LOG3[1]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
333
+2021.07.24 16:57:31 LOG3[0]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
334
+2021.07.24 16:57:31 LOG5[1]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
335
+2021.07.24 16:57:31 LOG5[2]: Service [https] accepted connection from ::1:55814
336
+2021.07.24 16:57:31 LOG3[2]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
337
+2021.07.24 16:57:31 LOG5[2]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
338
+2021.07.24 16:57:31 LOG5[3]: Service [https] accepted connection from ::1:55815
339
+2021.07.24 16:57:31 LOG3[3]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
340
+2021.07.24 16:57:31 LOG5[3]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
341
+2021.07.24 16:57:31 LOG5[0]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
342
+2021.07.24 16:57:32 LOG5[4]: Service [https] accepted connection from ::1:55816
343
+2021.07.24 16:57:32 LOG5[5]: Service [https] accepted connection from ::1:55817
344
+2021.07.24 16:57:32 LOG3[4]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
345
+2021.07.24 16:57:32 LOG3[5]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
346
+2021.07.24 16:57:32 LOG5[4]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
347
+2021.07.24 16:57:32 LOG5[5]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
348
+2021.07.24 16:57:32 LOG5[6]: Service [https] accepted connection from ::1:55818
349
+2021.07.24 16:57:32 LOG5[7]: Service [https] accepted connection from ::1:55819
350
+2021.07.24 16:57:32 LOG3[7]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
351
+2021.07.24 16:57:32 LOG3[6]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
352
+2021.07.24 16:57:32 LOG5[7]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
353
+2021.07.24 16:57:32 LOG5[6]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
354
+2021.07.24 16:58:05 LOG5[9]: Service [https] accepted connection from ::1:55829
355
+2021.07.24 16:58:05 LOG5[8]: Service [https] accepted connection from ::1:55828
356
+2021.07.24 16:58:05 LOG3[9]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
357
+2021.07.24 16:58:05 LOG5[9]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
358
+2021.07.24 16:58:05 LOG3[8]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
359
+2021.07.24 16:58:05 LOG5[8]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
360
+2021.07.24 16:58:05 LOG5[10]: Service [https] accepted connection from ::1:55831
361
+2021.07.24 16:58:05 LOG3[10]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
362
+2021.07.24 16:58:05 LOG5[10]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
363
+2021.07.24 16:58:05 LOG5[11]: Service [https] accepted connection from ::1:55832
364
+2021.07.24 16:58:05 LOG3[11]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
365
+2021.07.24 16:58:05 LOG5[11]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
366
+2021.07.24 16:58:14 LOG5[12]: Service [https] accepted connection from ::1:55833
367
+2021.07.24 16:58:14 LOG5[13]: Service [https] accepted connection from ::1:55834
368
+2021.07.24 16:58:14 LOG3[12]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
369
+2021.07.24 16:58:14 LOG3[13]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
370
+2021.07.24 16:58:14 LOG5[12]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
371
+2021.07.24 16:58:14 LOG5[13]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
372
+2021.07.24 16:58:14 LOG5[14]: Service [https] accepted connection from ::1:55835
373
+2021.07.24 16:58:14 LOG3[14]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
374
+2021.07.24 16:58:14 LOG5[14]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
375
+2021.07.24 16:58:14 LOG5[15]: Service [https] accepted connection from ::1:55836
376
+2021.07.24 16:58:14 LOG3[15]: SSL_accept: ssl/statem/statem_lib.c:110: error:141FC044:SSL routines:tls_setup_handshake:internal error
377
+2021.07.24 16:58:14 LOG5[15]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
378
+2021.07.24 16:58:44 LOG3[ui]: Received SIGINT; terminating
379
+2021.07.24 16:58:44 LOG5[ui]: Terminating 1 service thread(s)
380
+2021.07.24 16:58:44 LOG5[ui]: Service threads terminated
381
+2021.07.24 16:58:55 LOG5[ui]: stunnel 5.59 on x86_64-apple-darwin20.3.0 platform
382
+2021.07.24 16:58:55 LOG5[ui]: Compiled/running with OpenSSL 1.1.1k  25 Mar 2021
383
+2021.07.24 16:58:55 LOG5[ui]: Threading:PTHREAD Sockets:POLL,IPv6 TLS:ENGINE,OCSP,PSK,SNI
384
+2021.07.24 16:58:55 LOG5[ui]: Reading configuration from file /Users/simplicoltd./projects/shaqFindBed/app/stunnel/dev_https
385
+2021.07.24 16:58:55 LOG5[ui]: UTF-8 byte order mark not detected
386
+2021.07.24 16:58:55 LOG5[ui]: FIPS mode disabled
387
+2021.07.24 16:58:55 LOG4[ui]: Insecure file permissions on stunnel/stunnel.pem
388
+2021.07.24 16:58:55 LOG5[ui]: Configuration successful
389
+2021.07.24 16:58:55 LOG5[ui]: Binding service [https] to 0.0.0.0:8443: Address already in use (48)
390
+2021.07.24 16:58:58 LOG5[1]: Service [https] accepted connection from ::1:55856
391
+2021.07.24 16:58:58 LOG5[0]: Service [https] accepted connection from ::1:55855
392
+2021.07.24 16:58:59 LOG3[1]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
393
+2021.07.24 16:58:59 LOG3[0]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
394
+2021.07.24 16:58:59 LOG5[1]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
395
+2021.07.24 16:58:59 LOG5[0]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
396
+2021.07.24 16:59:10 LOG5[3]: Service [https] accepted connection from ::1:55859
397
+2021.07.24 16:59:10 LOG5[2]: Service [https] accepted connection from ::1:55858
398
+2021.07.24 16:59:10 LOG3[2]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
399
+2021.07.24 16:59:10 LOG5[2]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
400
+2021.07.24 16:59:10 LOG3[3]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
401
+2021.07.24 16:59:10 LOG5[3]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
402
+2021.07.24 16:59:19 LOG5[4]: Service [https] accepted connection from ::1:55862
403
+2021.07.24 16:59:19 LOG5[5]: Service [https] accepted connection from ::1:55863
404
+2021.07.24 16:59:19 LOG3[5]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
405
+2021.07.24 16:59:19 LOG5[5]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
406
+2021.07.24 16:59:19 LOG3[4]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
407
+2021.07.24 16:59:19 LOG5[4]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
408
+2021.07.24 16:59:20 LOG5[6]: Service [https] accepted connection from ::1:55864
409
+2021.07.24 16:59:20 LOG5[7]: Service [https] accepted connection from ::1:55865
410
+2021.07.24 16:59:20 LOG3[6]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
411
+2021.07.24 16:59:20 LOG5[6]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
412
+2021.07.24 16:59:20 LOG3[7]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
413
+2021.07.24 16:59:20 LOG5[7]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
414
+2021.07.24 16:59:24 LOG5[9]: Service [https] accepted connection from ::1:55867
415
+2021.07.24 16:59:24 LOG5[8]: Service [https] accepted connection from ::1:55866
416
+2021.07.24 16:59:24 LOG3[9]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
417
+2021.07.24 16:59:24 LOG3[8]: SSL_accept: ssl/record/rec_layer_s3.c:1544: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
418
+2021.07.24 16:59:24 LOG5[9]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
419
+2021.07.24 16:59:24 LOG5[8]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
420
+2021.07.24 17:02:53 LOG3[ui]: Received SIGINT; terminating
421
+2021.07.24 17:02:53 LOG5[ui]: Terminating 1 service thread(s)
422
+2021.07.24 17:02:53 LOG5[ui]: Service threads terminated

+ 12 - 0
app/stunnel/dev_https

@@ -0,0 +1,12 @@
1
+pid=
2
+
3
+cert = stunnel/stunnel.pem
4
+sslVersion = all
5
+options = NO_SSLv2
6
+foreground = yes
7
+output = stunnel.log
8
+
9
+[https]
10
+accept=8443
11
+connect=8000
12
+TIMEOUTclose=1

+ 16 - 0
app/stunnel/stunnel.cert

@@ -0,0 +1,16 @@
1
+-----BEGIN CERTIFICATE-----
2
+MIICljCCAX4CCQDaOf5rCaLNiTANBgkqhkiG9w0BAQUFADANMQswCQYDVQQGEwJU
3
+SDAeFw0yMTA3MjQwOTUzMzhaFw0yMjA3MjQwOTUzMzhaMA0xCzAJBgNVBAYTAlRI
4
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtRzaYRi1lPyQNJAH28Lm
5
+CuhM0d+2Mpdnox2GWYsIw5UgmgdXjev1po/SOaTR4R1sFdDDcGkM+yBM/Ei1fnG4
6
+rH84EQ8Q2Gqzna4mCyBov3uVn2Xw4m4gvkSVxjpSgeVPRl0LcJU1z0ksVjxDcddd
7
+sLc74MjP6dfX4P66ZBUyhf4E/nQG2EpoXUr3kHGHhyWLMjOQqA8CZfmLnxnqeDcC
8
+j5sCKDMcyEQM/5kT6Sg5cXfZTKWmBBMGc0/SUc+pUhS8GTUjY8Oub/6Ps6pwXiOc
9
+XVptNpEmnyXJzs082M8QGjHdA1DbpQoVF3qFbhjMmAKPzgl5U4qo65nTOWiWuav5
10
+vwIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAuqUF+sV7/rrAtPAGvjlGwzNmK0ZWX
11
+cSP6poqxMOQesuq2DFr84EBEn5X19/8MNlYkDUCZJwaToXpJuobTlDiUaqccxa6a
12
+z+jweD3zr088Sfy5gyimZd9w2ZLmY2r5vNG/ccX2iAbCbMEbvX4/GApzbQEZZ0Xl
13
+SrCF1SIrmuJbDY80oP3bgS+Xi3y1ZVwAfuynHFXdefTvE0XD+XY5QsfapZ5l/+Wp
14
+iv/N2VZkb2KDFwsnlfIKGK7TcIYLCeMRT0RnHoS2SuI6dbj7TSnmv2oHl4bf03uQ
15
+RxH8PFexbaS7WgIteLGUFs3rCM7hFoO53oioiYjQYnCTqUsp/nN0h61Y
16
+-----END CERTIFICATE-----

+ 27 - 0
app/stunnel/stunnel.key

@@ -0,0 +1,27 @@
1
+-----BEGIN RSA PRIVATE KEY-----
2
+MIIEogIBAAKCAQEAtRzaYRi1lPyQNJAH28LmCuhM0d+2Mpdnox2GWYsIw5UgmgdX
3
+jev1po/SOaTR4R1sFdDDcGkM+yBM/Ei1fnG4rH84EQ8Q2Gqzna4mCyBov3uVn2Xw
4
+4m4gvkSVxjpSgeVPRl0LcJU1z0ksVjxDcdddsLc74MjP6dfX4P66ZBUyhf4E/nQG
5
+2EpoXUr3kHGHhyWLMjOQqA8CZfmLnxnqeDcCj5sCKDMcyEQM/5kT6Sg5cXfZTKWm
6
+BBMGc0/SUc+pUhS8GTUjY8Oub/6Ps6pwXiOcXVptNpEmnyXJzs082M8QGjHdA1Db
7
+pQoVF3qFbhjMmAKPzgl5U4qo65nTOWiWuav5vwIDAQABAoIBACSej90gBN757iJi
8
+mOQrVR4ReC7bP9ic2lyVxKtoPD5nca8TGvXcJtAltkjndXRB4a/LhSi+ZNyF3GsK
9
+PIAzeDaQhoKUfEB12plgM9r+E4/b6hXPo9P0lnRCI9JvymzvM4czmvOJh9bAodFR
10
+4AUtmYj4k4fQspFCjii0+HTyAEQtEBYHtUgOjfA8aZ39aXHtKmDuX3bRQ5LEhEYg
11
+NAmpgiqikjvamaQlceuXWk0ZTE15/dd4WaYa0dlNW/kEs0+hM5BVP2ndvbix/W2+
12
+mWrZedPk0OFAJHY0i+0sWUzwDU8jdegHGmKcbUfNyDbr4WsiUVjxuHQZrltm4xWl
13
+WOlCTAkCgYEA5E8GkyL1USjvWUOxEc8D4vT0RbT8ppc63NAfnpMRt8eF/xCXZClA
14
+SAppWTlGMtjvbGRTo7n6ZRXDR7dlRCil7N1S8PS8k1diZ6oElaDqUIymiAy2Cv15
15
+rr1QDlA+kshnRIj3WhvBtUOgygI8Usuit+pzCoQkcG4dDdeAFhQO4X0CgYEAyxRk
16
+6CZ4J77ynu34hBsI03RjqdKowHXkx5ohVm09VCEcR1bODsVSvtBDEeeqW+77KBVP
17
+sDZXxEXl7S6orJklfTGg8PpMLiflqfcP6gz51qfoQTzscWIXomfIcMsJCYQVfuPG
18
+XL0P4wU6u+QGggwiFuw9ycnGWDrtfV5/6pn/rOsCgYBdDHAri3Xb7AkQomwKTArT
19
+du4PcuH9q2kMEa6xXFM+SY0tFT/+TGmscsHY4WTg2FVMId+MvQF2LVZ3ZiFZlA97
20
+6AAjwDsS+exbP4m6yeh1h71feX7AH+p18yYrjzzRaefcoM3e5a0fCT8A1cRsIh5h
21
+QqY8RPrs75PbzlafqPEfqQKBgHsxJ/VcQM97mhqnKXaaH8SGel7ul8gIvHwJF+gh
22
+5G5Al7L/CYkUUpnGJKmb61BRrLIoG2s9zAgYjt5Oy6vIS2Gi1YrZi5UERuHQKitF
23
+K9n3iYDpwFUXuFagtosV36mSIqgS7KYdWqHQ7kxEi14glh1puiHK8TNcq+y9gsOC
24
+IAN5AoGACa3JWYinvJSMyKQfgywSr1Joi/0MwGXOoj3G7wxrxp220v9MxiSdedfH
25
+na3n1VoTrYro8Z8K9NqGqGScydLds/EtZb7HyZUU+07NYMSNDNbFQfozdwErV4tU
26
+oW6Vh2b9gtI/yvsLZhZNdjwfleOS/jw/137g1RrjzcDRaswTIz0=
27
+-----END RSA PRIVATE KEY-----

+ 43 - 0
app/stunnel/stunnel.pem

@@ -0,0 +1,43 @@
1
+-----BEGIN RSA PRIVATE KEY-----
2
+MIIEogIBAAKCAQEAtRzaYRi1lPyQNJAH28LmCuhM0d+2Mpdnox2GWYsIw5UgmgdX
3
+jev1po/SOaTR4R1sFdDDcGkM+yBM/Ei1fnG4rH84EQ8Q2Gqzna4mCyBov3uVn2Xw
4
+4m4gvkSVxjpSgeVPRl0LcJU1z0ksVjxDcdddsLc74MjP6dfX4P66ZBUyhf4E/nQG
5
+2EpoXUr3kHGHhyWLMjOQqA8CZfmLnxnqeDcCj5sCKDMcyEQM/5kT6Sg5cXfZTKWm
6
+BBMGc0/SUc+pUhS8GTUjY8Oub/6Ps6pwXiOcXVptNpEmnyXJzs082M8QGjHdA1Db
7
+pQoVF3qFbhjMmAKPzgl5U4qo65nTOWiWuav5vwIDAQABAoIBACSej90gBN757iJi
8
+mOQrVR4ReC7bP9ic2lyVxKtoPD5nca8TGvXcJtAltkjndXRB4a/LhSi+ZNyF3GsK
9
+PIAzeDaQhoKUfEB12plgM9r+E4/b6hXPo9P0lnRCI9JvymzvM4czmvOJh9bAodFR
10
+4AUtmYj4k4fQspFCjii0+HTyAEQtEBYHtUgOjfA8aZ39aXHtKmDuX3bRQ5LEhEYg
11
+NAmpgiqikjvamaQlceuXWk0ZTE15/dd4WaYa0dlNW/kEs0+hM5BVP2ndvbix/W2+
12
+mWrZedPk0OFAJHY0i+0sWUzwDU8jdegHGmKcbUfNyDbr4WsiUVjxuHQZrltm4xWl
13
+WOlCTAkCgYEA5E8GkyL1USjvWUOxEc8D4vT0RbT8ppc63NAfnpMRt8eF/xCXZClA
14
+SAppWTlGMtjvbGRTo7n6ZRXDR7dlRCil7N1S8PS8k1diZ6oElaDqUIymiAy2Cv15
15
+rr1QDlA+kshnRIj3WhvBtUOgygI8Usuit+pzCoQkcG4dDdeAFhQO4X0CgYEAyxRk
16
+6CZ4J77ynu34hBsI03RjqdKowHXkx5ohVm09VCEcR1bODsVSvtBDEeeqW+77KBVP
17
+sDZXxEXl7S6orJklfTGg8PpMLiflqfcP6gz51qfoQTzscWIXomfIcMsJCYQVfuPG
18
+XL0P4wU6u+QGggwiFuw9ycnGWDrtfV5/6pn/rOsCgYBdDHAri3Xb7AkQomwKTArT
19
+du4PcuH9q2kMEa6xXFM+SY0tFT/+TGmscsHY4WTg2FVMId+MvQF2LVZ3ZiFZlA97
20
+6AAjwDsS+exbP4m6yeh1h71feX7AH+p18yYrjzzRaefcoM3e5a0fCT8A1cRsIh5h
21
+QqY8RPrs75PbzlafqPEfqQKBgHsxJ/VcQM97mhqnKXaaH8SGel7ul8gIvHwJF+gh
22
+5G5Al7L/CYkUUpnGJKmb61BRrLIoG2s9zAgYjt5Oy6vIS2Gi1YrZi5UERuHQKitF
23
+K9n3iYDpwFUXuFagtosV36mSIqgS7KYdWqHQ7kxEi14glh1puiHK8TNcq+y9gsOC
24
+IAN5AoGACa3JWYinvJSMyKQfgywSr1Joi/0MwGXOoj3G7wxrxp220v9MxiSdedfH
25
+na3n1VoTrYro8Z8K9NqGqGScydLds/EtZb7HyZUU+07NYMSNDNbFQfozdwErV4tU
26
+oW6Vh2b9gtI/yvsLZhZNdjwfleOS/jw/137g1RrjzcDRaswTIz0=
27
+-----END RSA PRIVATE KEY-----
28
+-----BEGIN CERTIFICATE-----
29
+MIICljCCAX4CCQDaOf5rCaLNiTANBgkqhkiG9w0BAQUFADANMQswCQYDVQQGEwJU
30
+SDAeFw0yMTA3MjQwOTUzMzhaFw0yMjA3MjQwOTUzMzhaMA0xCzAJBgNVBAYTAlRI
31
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtRzaYRi1lPyQNJAH28Lm
32
+CuhM0d+2Mpdnox2GWYsIw5UgmgdXjev1po/SOaTR4R1sFdDDcGkM+yBM/Ei1fnG4
33
+rH84EQ8Q2Gqzna4mCyBov3uVn2Xw4m4gvkSVxjpSgeVPRl0LcJU1z0ksVjxDcddd
34
+sLc74MjP6dfX4P66ZBUyhf4E/nQG2EpoXUr3kHGHhyWLMjOQqA8CZfmLnxnqeDcC
35
+j5sCKDMcyEQM/5kT6Sg5cXfZTKWmBBMGc0/SUc+pUhS8GTUjY8Oub/6Ps6pwXiOc
36
+XVptNpEmnyXJzs082M8QGjHdA1DbpQoVF3qFbhjMmAKPzgl5U4qo65nTOWiWuav5
37
+vwIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAuqUF+sV7/rrAtPAGvjlGwzNmK0ZWX
38
+cSP6poqxMOQesuq2DFr84EBEn5X19/8MNlYkDUCZJwaToXpJuobTlDiUaqccxa6a
39
+z+jweD3zr088Sfy5gyimZd9w2ZLmY2r5vNG/ccX2iAbCbMEbvX4/GApzbQEZZ0Xl
40
+SrCF1SIrmuJbDY80oP3bgS+Xi3y1ZVwAfuynHFXdefTvE0XD+XY5QsfapZ5l/+Wp
41
+iv/N2VZkb2KDFwsnlfIKGK7TcIYLCeMRT0RnHoS2SuI6dbj7TSnmv2oHl4bf03uQ
42
+RxH8PFexbaS7WgIteLGUFs3rCM7hFoO53oioiYjQYnCTqUsp/nN0h61Y
43
+-----END CERTIFICATE-----

+ 12 - 0
app/templates/admin/404.html

@@ -0,0 +1,12 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n %}
3
+
4
+{% block title %}{% translate 'Page not found' %}{% endblock %}
5
+
6
+{% block content %}
7
+
8
+<h2>{% translate 'Page not found' %}</h2>
9
+
10
+<p>{% translate 'We’re sorry, but the requested page could not be found.' %}</p>
11
+
12
+{% endblock %}

+ 17 - 0
app/templates/admin/500.html

@@ -0,0 +1,17 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n %}
3
+
4
+{% block breadcrumbs %}
5
+<div class="breadcrumbs">
6
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
7
+&rsaquo; {% translate 'Server error' %}
8
+</div>
9
+{% endblock %}
10
+
11
+{% block title %}{% translate 'Server error (500)' %}{% endblock %}
12
+
13
+{% block content %}
14
+<h1>{% translate 'Server Error <em>(500)</em>' %}</h1>
15
+<p>{% translate 'There’s been an error. It’s been reported to the site administrators via email and should be fixed shortly. Thanks for your patience.' %}</p>
16
+
17
+{% endblock %}

+ 23 - 0
app/templates/admin/actions.html

@@ -0,0 +1,23 @@
1
+{% load i18n %}
2
+<div class="actions">
3
+  {% block actions %}
4
+    {% block actions-form %}
5
+    {% for field in action_form %}{% if field.label %}<label>{{ field.label }} {% endif %}{{ field }}{% if field.label %}</label>{% endif %}{% endfor %}
6
+    {% endblock %}
7
+    {% block actions-submit %}
8
+    <button type="submit" class="button" title="{% translate "Run the selected action" %}" name="index" value="{{ action_index|default:0 }}">{% translate "Go" %}</button>
9
+    {% endblock %}
10
+    {% block actions-counter %}
11
+    {% if actions_selection_counter %}
12
+        <span class="action-counter" data-actions-icnt="{{ cl.result_list|length }}">{{ selection_note }}</span>
13
+        {% if cl.result_count != cl.result_list|length %}
14
+        <span class="all hidden">{{ selection_note_all }}</span>
15
+        <span class="question hidden">
16
+            <a href="#" title="{% translate "Click here to select the objects across all pages" %}">{% blocktranslate with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktranslate %}</a>
17
+        </span>
18
+        <span class="clear hidden"><a href="#">{% translate "Clear selection" %}</a></span>
19
+        {% endif %}
20
+    {% endif %}
21
+    {% endblock %}
22
+  {% endblock %}
23
+</div>

+ 18 - 0
app/templates/admin/app_index.html

@@ -0,0 +1,18 @@
1
+{% extends "admin/index.html" %}
2
+{% load i18n %}
3
+
4
+{% block bodyclass %}{{ block.super }} app-{{ app_label }}{% endblock %}
5
+
6
+{% if not is_popup %}
7
+{% block breadcrumbs %}
8
+<div class="breadcrumbs">
9
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
10
+&rsaquo;
11
+{% for app in app_list %}
12
+{{ app.name }}
13
+{% endfor %}
14
+</div>
15
+{% endblock %}
16
+{% endif %}
17
+
18
+{% block sidebar %}{% endblock %}

+ 40 - 0
app/templates/admin/app_list.html

@@ -0,0 +1,40 @@
1
+{% load i18n %}
2
+
3
+{% if app_list %}
4
+  {% for app in app_list %}
5
+    <div class="app-{{ app.app_label }} module{% if app.app_url in request.path %} current-app{% endif %}">
6
+      <table>
7
+        <caption>
8
+          <a href="{{ app.app_url }}" class="section" title="{% blocktranslate with name=app.name %}Models in the {{ name }} application{% endblocktranslate %}">{{ app.name }}</a>
9
+        </caption>
10
+        {% for model in app.models %}
11
+          <tr class="model-{{ model.object_name|lower }}{% if model.admin_url in request.path %} current-model{% endif %}">
12
+            {% if model.admin_url %}
13
+              <th scope="row"><a href="{{ model.admin_url }}"{% if model.admin_url in request.path %} aria-current="page"{% endif %}>{{ model.name }}</a></th>
14
+            {% else %}
15
+              <th scope="row">{{ model.name }}</th>
16
+            {% endif %}
17
+
18
+            {% if model.add_url %}
19
+              <td><a href="{{ model.add_url }}" class="addlink">{% translate 'Add' %}</a></td>
20
+            {% else %}
21
+              <td></td>
22
+            {% endif %}
23
+
24
+            {% if model.admin_url and show_changelinks %}
25
+              {% if model.view_only %}
26
+                <td><a href="{{ model.admin_url }}" class="viewlink">{% translate 'View' %}</a></td>
27
+              {% else %}
28
+                <td><a href="{{ model.admin_url }}" class="changelink">{% translate 'Change' %}</a></td>
29
+              {% endif %}
30
+            {% elif show_changelinks %}
31
+              <td></td>
32
+            {% endif %}
33
+          </tr>
34
+        {% endfor %}
35
+      </table>
36
+    </div>
37
+  {% endfor %}
38
+{% else %}
39
+  <p>{% translate 'You don’t have permission to view or edit anything.' %}</p>
40
+{% endif %}

+ 10 - 0
app/templates/admin/auth/user/add_form.html

@@ -0,0 +1,10 @@
1
+{% extends "admin/change_form.html" %}
2
+{% load i18n %}
3
+
4
+{% block form_top %}
5
+  {% if not is_popup %}
6
+    <p>{% translate 'First, enter a username and password. Then, you’ll be able to edit more user options.' %}</p>
7
+  {% else %}
8
+    <p>{% translate "Enter a username and password." %}</p>
9
+  {% endif %}
10
+{% endblock %}

+ 57 - 0
app/templates/admin/auth/user/change_password.html

@@ -0,0 +1,57 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n static %}
3
+{% load admin_urls %}
4
+
5
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/forms.css" %}">{% endblock %}
6
+{% block bodyclass %}{{ block.super }} {{ opts.app_label }}-{{ opts.model_name }} change-form{% endblock %}
7
+{% if not is_popup %}
8
+{% block breadcrumbs %}
9
+<div class="breadcrumbs">
10
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
11
+&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
12
+&rsaquo; <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>
13
+&rsaquo; <a href="{% url opts|admin_urlname:'change' original.pk|admin_urlquote %}">{{ original|truncatewords:"18" }}</a>
14
+&rsaquo; {% translate 'Change password' %}
15
+</div>
16
+{% endblock %}
17
+{% endif %}
18
+{% block content %}<div id="content-main">
19
+<form{% if form_url %} action="{{ form_url }}"{% endif %} method="post" id="{{ opts.model_name }}_form">{% csrf_token %}{% block form_top %}{% endblock %}
20
+<input type="text" name="username" value="{{ original.get_username }}" class="hidden">
21
+<div>
22
+{% if is_popup %}<input type="hidden" name="_popup" value="1">{% endif %}
23
+{% if form.errors %}
24
+    <p class="errornote">
25
+    {% if form.errors.items|length == 1 %}{% translate "Please correct the error below." %}{% else %}{% translate "Please correct the errors below." %}{% endif %}
26
+    </p>
27
+{% endif %}
28
+
29
+<p>{% blocktranslate with username=original %}Enter a new password for the user <strong>{{ username }}</strong>.{% endblocktranslate %}</p>
30
+
31
+<fieldset class="module aligned">
32
+
33
+<div class="form-row">
34
+  {{ form.password1.errors }}
35
+  {{ form.password1.label_tag }} {{ form.password1 }}
36
+  {% if form.password1.help_text %}
37
+  <div class="help">{{ form.password1.help_text|safe }}</div>
38
+  {% endif %}
39
+</div>
40
+
41
+<div class="form-row">
42
+  {{ form.password2.errors }}
43
+  {{ form.password2.label_tag }} {{ form.password2 }}
44
+  {% if form.password2.help_text %}
45
+  <div class="help">{{ form.password2.help_text|safe }}</div>
46
+  {% endif %}
47
+</div>
48
+
49
+</fieldset>
50
+
51
+<div class="submit-row">
52
+<input type="submit" value="{% translate 'Change password' %}" class="default">
53
+</div>
54
+
55
+</div>
56
+</form></div>
57
+{% endblock %}

+ 104 - 0
app/templates/admin/base.html

@@ -0,0 +1,104 @@
1
+{% load i18n static %}<!DOCTYPE html>
2
+{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
3
+<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" dir="{{ LANGUAGE_BIDI|yesno:'rtl,ltr,auto' }}">
4
+<head>
5
+<title>{% block title %}{% endblock %}</title>
6
+<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}">
7
+{% if not is_popup and is_nav_sidebar_enabled %}
8
+  <link rel="stylesheet" type="text/css" href="{% static "admin/css/nav_sidebar.css" %}">
9
+  <script src="{% static 'admin/js/nav_sidebar.js' %}" defer></script>
10
+{% endif %}
11
+{% block extrastyle %}{% endblock %}
12
+{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}">{% endif %}
13
+{% block extrahead %}{% endblock %}
14
+{% block responsive %}
15
+    <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
16
+    <link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive.css" %}">
17
+    {% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive_rtl.css" %}">{% endif %}
18
+{% endblock %}
19
+{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE">{% endblock %}
20
+</head>
21
+{% load i18n %}
22
+
23
+<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}"
24
+  data-admin-utc-offset="{% now "Z" %}">
25
+
26
+<!-- Container -->
27
+<div id="container">
28
+
29
+    {% if not is_popup %}
30
+    <!-- Header -->
31
+    <div id="header">
32
+        <div id="branding">
33
+        {% block branding %}{% endblock %}
34
+        </div>
35
+        {% block usertools %}
36
+        {% if has_permission %}
37
+        <div id="user-tools">
38
+            {% block welcome-msg %}
39
+                {% translate 'Welcome,' %}
40
+                <strong>{% firstof user.get_short_name user.get_username %}</strong>.
41
+            {% endblock %}
42
+            {% block userlinks %}
43
+                {% if site_url %}
44
+                    <a href="{{ site_url }}">{% translate 'View site' %}</a> /
45
+                {% endif %}
46
+                {% if user.is_active and user.is_staff %}
47
+                    {% url 'django-admindocs-docroot' as docsroot %}
48
+                    {% if docsroot %}
49
+                        <a href="{{ docsroot }}">{% translate 'Documentation' %}</a> /
50
+                    {% endif %}
51
+                {% endif %}
52
+                {% if user.has_usable_password %}
53
+                <a href="{% url 'admin:password_change' %}">{% translate 'Change password' %}</a> /
54
+                {% endif %}
55
+                <a href="{% url 'admin:logout' %}">{% translate 'Log out' %}</a>
56
+            {% endblock %}
57
+        </div>
58
+        {% endif %}
59
+        {% endblock %}
60
+        {% block nav-global %}{% endblock %}
61
+    </div>
62
+    <!-- END Header -->
63
+    {% block breadcrumbs %}
64
+    <div class="breadcrumbs">
65
+    <a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
66
+    {% if title %} &rsaquo; {{ title }}{% endif %}
67
+    </div>
68
+    {% endblock %}
69
+    {% endif %}
70
+
71
+    <div class="main shifted" id="main">
72
+      {% if not is_popup and is_nav_sidebar_enabled %}
73
+        {% block nav-sidebar %}
74
+          {% include "admin/nav_sidebar.html" %}
75
+        {% endblock %}
76
+      {% endif %}
77
+      <div class="content">
78
+        {% block messages %}
79
+          {% if messages %}
80
+            <ul class="messagelist">{% for message in messages %}
81
+              <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message|capfirst }}</li>
82
+            {% endfor %}</ul>
83
+          {% endif %}
84
+        {% endblock messages %}
85
+        <!-- Content -->
86
+        <div id="content" class="{% block coltype %}colM{% endblock %}">
87
+          {% block pretitle %}{% endblock %}
88
+          {% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
89
+          {% block content_subtitle %}{% if subtitle %}<h2>{{ subtitle }}</h2>{% endif %}{% endblock %}
90
+          {% block content %}
91
+            {% block object-tools %}{% endblock %}
92
+            {{ content }}
93
+          {% endblock %}
94
+          {% block sidebar %}{% endblock %}
95
+          <br class="clear">
96
+        </div>
97
+        <!-- END Content -->
98
+        {% block footer %}<div id="footer"></div>{% endblock %}
99
+      </div>
100
+    </div>
101
+</div>
102
+<!-- END Container -->
103
+</body>
104
+</html>

+ 9 - 0
app/templates/admin/base_site.html

@@ -0,0 +1,9 @@
1
+{% extends "admin/base.html" %}
2
+
3
+{% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
4
+
5
+{% block branding %}
6
+<h1 id="site-name"><a href="{% url 'admin:index' %}">ShaqFindBeds <!-- {{ site_header|default:_('ShaqFindBed administration') }} --></a></h1>
7
+{% endblock %}
8
+
9
+{% block nav-global %}{% endblock %}

+ 81 - 0
app/templates/admin/change_form.html

@@ -0,0 +1,81 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n admin_urls static admin_modify %}
3
+
4
+{% block extrahead %}{{ block.super }}
5
+<script src="{% url 'admin:jsi18n' %}"></script>
6
+{{ media }}
7
+{% endblock %}
8
+
9
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/forms.css" %}">{% endblock %}
10
+
11
+{% block coltype %}colM{% endblock %}
12
+
13
+{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-form{% endblock %}
14
+
15
+{% if not is_popup %}
16
+{% block breadcrumbs %}
17
+<div class="breadcrumbs">
18
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
19
+&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
20
+&rsaquo; {% if has_view_permission %}<a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>{% else %}{{ opts.verbose_name_plural|capfirst }}{% endif %}
21
+&rsaquo; {% if add %}{% blocktranslate with name=opts.verbose_name %}Add {{ name }}{% endblocktranslate %}{% else %}{{ original|truncatewords:"18" }}{% endif %}
22
+</div>
23
+{% endblock %}
24
+{% endif %}
25
+
26
+{% block content %}<div id="content-main">
27
+{% block object-tools %}
28
+{% if change %}{% if not is_popup %}
29
+  <ul class="object-tools">
30
+    {% block object-tools-items %}
31
+      {% change_form_object_tools %}
32
+    {% endblock %}
33
+  </ul>
34
+{% endif %}{% endif %}
35
+{% endblock %}
36
+<form {% if has_file_field %}enctype="multipart/form-data" {% endif %}{% if form_url %}action="{{ form_url }}" {% endif %}method="post" id="{{ opts.model_name }}_form" novalidate>{% csrf_token %}{% block form_top %}{% endblock %}
37
+<div>
38
+{% if is_popup %}<input type="hidden" name="{{ is_popup_var }}" value="1">{% endif %}
39
+{% if to_field %}<input type="hidden" name="{{ to_field_var }}" value="{{ to_field }}">{% endif %}
40
+{% if save_on_top %}{% block submit_buttons_top %}{% submit_row %}{% endblock %}{% endif %}
41
+{% if errors %}
42
+    <p class="errornote">
43
+    {% if errors|length == 1 %}{% translate "Please correct the error below." %}{% else %}{% translate "Please correct the errors below." %}{% endif %}
44
+    </p>
45
+    {{ adminform.form.non_field_errors }}
46
+{% endif %}
47
+
48
+{% block field_sets %}
49
+{% for fieldset in adminform %}
50
+  {% include "admin/includes/fieldset.html" %}
51
+{% endfor %}
52
+{% endblock %}
53
+
54
+{% block after_field_sets %}{% endblock %}
55
+
56
+{% block inline_field_sets %}
57
+{% for inline_admin_formset in inline_admin_formsets %}
58
+    {% include inline_admin_formset.opts.template %}
59
+{% endfor %}
60
+{% endblock %}
61
+
62
+{% block after_related_objects %}{% endblock %}
63
+
64
+{% block submit_buttons_bottom %}{% submit_row %}{% endblock %}
65
+
66
+{% block admin_change_form_document_ready %}
67
+    <script id="django-admin-form-add-constants"
68
+            src="{% static 'admin/js/change_form.js' %}"
69
+            {% if adminform and add %}
70
+                data-model-name="{{ opts.model_name }}"
71
+            {% endif %}
72
+            async>
73
+    </script>
74
+{% endblock %}
75
+
76
+{# JavaScript for prepopulated fields #}
77
+{% prepopulated_fields_js %}
78
+
79
+</div>
80
+</form></div>
81
+{% endblock %}

+ 8 - 0
app/templates/admin/change_form_object_tools.html

@@ -0,0 +1,8 @@
1
+{% load i18n admin_urls %}
2
+{% block object-tools-items %}
3
+<li>
4
+    {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
5
+    <a href="{% add_preserved_filters history_url %}" class="historylink">{% translate "History" %}</a>
6
+</li>
7
+{% if has_absolute_url %}<li><a href="{{ absolute_url }}" class="viewsitelink">{% translate "View on site" %}</a></li>{% endif %}
8
+{% endblock %}

+ 86 - 0
app/templates/admin/change_list.html

@@ -0,0 +1,86 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n admin_urls static admin_list %}
3
+
4
+{% block extrastyle %}
5
+  {{ block.super }}
6
+  <link rel="stylesheet" type="text/css" href="{% static "admin/css/changelists.css" %}">
7
+  {% if cl.formset %}
8
+    <link rel="stylesheet" type="text/css" href="{% static "admin/css/forms.css" %}">
9
+  {% endif %}
10
+  {% if cl.formset or action_form %}
11
+    <script src="{% url 'admin:jsi18n' %}"></script>
12
+  {% endif %}
13
+  {{ media.css }}
14
+  {% if not actions_on_top and not actions_on_bottom %}
15
+    <style>
16
+      #changelist table thead th:first-child {width: inherit}
17
+    </style>
18
+  {% endif %}
19
+{% endblock %}
20
+
21
+{% block extrahead %}
22
+{{ block.super }}
23
+{{ media.js }}
24
+{% endblock %}
25
+
26
+{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-list{% endblock %}
27
+
28
+{% if not is_popup %}
29
+{% block breadcrumbs %}
30
+<div class="breadcrumbs">
31
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
32
+&rsaquo; <a href="{% url 'admin:app_list' app_label=cl.opts.app_label %}">{{ cl.opts.app_config.verbose_name }}</a>
33
+&rsaquo; {{ cl.opts.verbose_name_plural|capfirst }}
34
+</div>
35
+{% endblock %}
36
+{% endif %}
37
+
38
+{% block coltype %}{% endblock %}
39
+
40
+{% block content %}
41
+  <div id="content-main">
42
+    {% block object-tools %}
43
+        <ul class="object-tools">
44
+          {% block object-tools-items %}
45
+            {% change_list_object_tools %}
46
+          {% endblock %}
47
+        </ul>
48
+    {% endblock %}
49
+    {% if cl.formset and cl.formset.errors %}
50
+        <p class="errornote">
51
+        {% if cl.formset.total_error_count == 1 %}{% translate "Please correct the error below." %}{% else %}{% translate "Please correct the errors below." %}{% endif %}
52
+        </p>
53
+        {{ cl.formset.non_form_errors }}
54
+    {% endif %}
55
+    <div class="module{% if cl.has_filters %} filtered{% endif %}" id="changelist">
56
+      <div class="changelist-form-container">
57
+        {% block search %}{% search_form cl %}{% endblock %}
58
+        {% block date_hierarchy %}{% if cl.date_hierarchy %}{% date_hierarchy cl %}{% endif %}{% endblock %}
59
+
60
+        <form id="changelist-form" method="post"{% if cl.formset and cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %} novalidate>{% csrf_token %}
61
+        {% if cl.formset %}
62
+          <div>{{ cl.formset.management_form }}</div>
63
+        {% endif %}
64
+
65
+        {% block result_list %}
66
+          {% if action_form and actions_on_top and cl.show_admin_actions %}{% admin_actions %}{% endif %}
67
+          {% result_list cl %}
68
+          {% if action_form and actions_on_bottom and cl.show_admin_actions %}{% admin_actions %}{% endif %}
69
+        {% endblock %}
70
+        {% block pagination %}{% pagination cl %}{% endblock %}
71
+        </form>
72
+      </div>
73
+      {% block filters %}
74
+        {% if cl.has_filters %}
75
+          <div id="changelist-filter">
76
+            <h2>{% translate 'Filter' %}</h2>
77
+            {% if cl.has_active_filters %}<h3 id="changelist-filter-clear">
78
+              <a href="{{ cl.clear_all_filters_qs }}">&#10006; {% translate "Clear all filters" %}</a>
79
+            </h3>{% endif %}
80
+            {% for spec in cl.filter_specs %}{% admin_list_filter cl spec %}{% endfor %}
81
+          </div>
82
+        {% endif %}
83
+      {% endblock %}
84
+    </div>
85
+  </div>
86
+{% endblock %}

+ 12 - 0
app/templates/admin/change_list_object_tools.html

@@ -0,0 +1,12 @@
1
+{% load i18n admin_urls %}
2
+
3
+{% block object-tools-items %}
4
+  {% if has_add_permission %}
5
+  <li>
6
+    {% url cl.opts|admin_urlname:'add' as add_url %}
7
+    <a href="{% add_preserved_filters add_url is_popup to_field %}" class="addlink">
8
+      {% blocktranslate with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktranslate %}
9
+    </a>
10
+  </li>
11
+  {% endif %}
12
+{% endblock %}

+ 38 - 0
app/templates/admin/change_list_results.html

@@ -0,0 +1,38 @@
1
+{% load i18n static %}
2
+{% if result_hidden_fields %}
3
+<div class="hiddenfields">{# DIV for HTML validation #}
4
+{% for item in result_hidden_fields %}{{ item }}{% endfor %}
5
+</div>
6
+{% endif %}
7
+{% if results %}
8
+<div class="results">
9
+<table id="result_list">
10
+<thead>
11
+<tr>
12
+{% for header in result_headers %}
13
+<th scope="col"{{ header.class_attrib }}>
14
+   {% if header.sortable %}
15
+     {% if header.sort_priority > 0 %}
16
+       <div class="sortoptions">
17
+         <a class="sortremove" href="{{ header.url_remove }}" title="{% translate "Remove from sorting" %}"></a>
18
+         {% if num_sorted_fields > 1 %}<span class="sortpriority" title="{% blocktranslate with priority_number=header.sort_priority %}Sorting priority: {{ priority_number }}{% endblocktranslate %}">{{ header.sort_priority }}</span>{% endif %}
19
+         <a href="{{ header.url_toggle }}" class="toggle {% if header.ascending %}ascending{% else %}descending{% endif %}" title="{% translate "Toggle sorting" %}"></a>
20
+       </div>
21
+     {% endif %}
22
+   {% endif %}
23
+   <div class="text">{% if header.sortable %}<a href="{{ header.url_primary }}">{{ header.text|capfirst }}</a>{% else %}<span>{{ header.text|capfirst }}</span>{% endif %}</div>
24
+   <div class="clear"></div>
25
+</th>{% endfor %}
26
+</tr>
27
+</thead>
28
+<tbody>
29
+{% for result in results %}
30
+{% if result.form and result.form.non_field_errors %}
31
+    <tr><td colspan="{{ result|length }}">{{ result.form.non_field_errors }}</td></tr>
32
+{% endif %}
33
+<tr>{% for item in result %}{{ item }}{% endfor %}</tr>
34
+{% endfor %}
35
+</tbody>
36
+</table>
37
+</div>
38
+{% endif %}

+ 16 - 0
app/templates/admin/date_hierarchy.html

@@ -0,0 +1,16 @@
1
+{% if show %}
2
+<div class="xfull">
3
+<ul class="toplinks">
4
+{% block date-hierarchy-toplinks %}
5
+{% block date-hierarchy-back %}
6
+{% if back %}<li class="date-back"><a href="{{ back.link }}">&lsaquo; {{ back.title }}</a></li>{% endif %}
7
+{% endblock %}
8
+{% block date-hierarchy-choices %}
9
+{% for choice in choices %}
10
+<li> {% if choice.link %}<a href="{{ choice.link }}">{% endif %}{{ choice.title }}{% if choice.link %}</a>{% endif %}</li>
11
+{% endfor %}
12
+{% endblock %}
13
+{% endblock %}
14
+</ul><br class="clear">
15
+</div>
16
+{% endif %}

+ 52 - 0
app/templates/admin/delete_confirmation.html

@@ -0,0 +1,52 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n admin_urls static %}
3
+
4
+{% block extrahead %}
5
+    {{ block.super }}
6
+    {{ media }}
7
+    <script src="{% static 'admin/js/cancel.js' %}" async></script>
8
+{% endblock %}
9
+
10
+{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation{% endblock %}
11
+
12
+{% block breadcrumbs %}
13
+<div class="breadcrumbs">
14
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
15
+&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
16
+&rsaquo; <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>
17
+&rsaquo; <a href="{% url opts|admin_urlname:'change' object.pk|admin_urlquote %}">{{ object|truncatewords:"18" }}</a>
18
+&rsaquo; {% translate 'Delete' %}
19
+</div>
20
+{% endblock %}
21
+
22
+{% block content %}
23
+{% if perms_lacking %}
24
+    <p>{% blocktranslate with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}</p>
25
+    <ul>
26
+    {% for obj in perms_lacking %}
27
+        <li>{{ obj }}</li>
28
+    {% endfor %}
29
+    </ul>
30
+{% elif protected %}
31
+    <p>{% blocktranslate with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would require deleting the following protected related objects:{% endblocktranslate %}</p>
32
+    <ul>
33
+    {% for obj in protected %}
34
+        <li>{{ obj }}</li>
35
+    {% endfor %}
36
+    </ul>
37
+{% else %}
38
+    <p>{% blocktranslate with escaped_object=object %}Are you sure you want to delete the {{ object_name }} "{{ escaped_object }}"? All of the following related items will be deleted:{% endblocktranslate %}</p>
39
+    {% include "admin/includes/object_delete_summary.html" %}
40
+    <h2>{% translate "Objects" %}</h2>
41
+    <ul>{{ deleted_objects|unordered_list }}</ul>
42
+    <form method="post">{% csrf_token %}
43
+    <div>
44
+    <input type="hidden" name="post" value="yes">
45
+    {% if is_popup %}<input type="hidden" name="{{ is_popup_var }}" value="1">{% endif %}
46
+    {% if to_field %}<input type="hidden" name="{{ to_field_var }}" value="{{ to_field }}">{% endif %}
47
+    <input type="submit" value="{% translate 'Yes, I’m sure' %}">
48
+    <a href="#" class="button cancel-link">{% translate "No, take me back" %}</a>
49
+    </div>
50
+    </form>
51
+{% endif %}
52
+{% endblock %}

+ 55 - 0
app/templates/admin/delete_selected_confirmation.html

@@ -0,0 +1,55 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n l10n admin_urls static %}
3
+
4
+{% block extrahead %}
5
+    {{ block.super }}
6
+    {{ media }}
7
+    <script src="{% static 'admin/js/cancel.js' %}" async></script>
8
+{% endblock %}
9
+
10
+{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation delete-selected-confirmation{% endblock %}
11
+
12
+{% block breadcrumbs %}
13
+<div class="breadcrumbs">
14
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
15
+&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
16
+&rsaquo; <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>
17
+&rsaquo; {% translate 'Delete multiple objects' %}
18
+</div>
19
+{% endblock %}
20
+
21
+{% block content %}
22
+{% if perms_lacking %}
23
+    <p>{% blocktranslate %}Deleting the selected {{ objects_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}</p>
24
+    <ul>
25
+    {% for obj in perms_lacking %}
26
+        <li>{{ obj }}</li>
27
+    {% endfor %}
28
+    </ul>
29
+{% elif protected %}
30
+    <p>{% blocktranslate %}Deleting the selected {{ objects_name }} would require deleting the following protected related objects:{% endblocktranslate %}</p>
31
+    <ul>
32
+    {% for obj in protected %}
33
+        <li>{{ obj }}</li>
34
+    {% endfor %}
35
+    </ul>
36
+{% else %}
37
+    <p>{% blocktranslate %}Are you sure you want to delete the selected {{ objects_name }}? All of the following objects and their related items will be deleted:{% endblocktranslate %}</p>
38
+    {% include "admin/includes/object_delete_summary.html" %}
39
+    <h2>{% translate "Objects" %}</h2>
40
+    {% for deletable_object in deletable_objects %}
41
+        <ul>{{ deletable_object|unordered_list }}</ul>
42
+    {% endfor %}
43
+    <form method="post">{% csrf_token %}
44
+    <div>
45
+    {% for obj in queryset %}
46
+    <input type="hidden" name="{{ action_checkbox_name }}" value="{{ obj.pk|unlocalize }}">
47
+    {% endfor %}
48
+    <input type="hidden" name="action" value="delete_selected">
49
+    <input type="hidden" name="post" value="yes">
50
+    <input type="submit" value="{% translate 'Yes, I’m sure' %}">
51
+    <a href="#" class="button cancel-link">{% translate "No, take me back" %}</a>
52
+    </div>
53
+    </form>
54
+{% endif %}
55
+{% endblock %}

Datei-Diff unterdrückt, da er zu groß ist
+ 29 - 0
app/templates/admin/edit_inline/stacked.html


+ 79 - 0
app/templates/admin/edit_inline/tabular.html

@@ -0,0 +1,79 @@
1
+{% load i18n admin_urls static admin_modify %}
2
+<div class="js-inline-admin-formset inline-group" id="{{ inline_admin_formset.formset.prefix }}-group"
3
+     data-inline-type="tabular"
4
+     data-inline-formset="{{ inline_admin_formset.inline_formset_data }}">
5
+  <div class="tabular inline-related {% if forloop.last %}last-related{% endif %}">
6
+{{ inline_admin_formset.formset.management_form }}
7
+<fieldset class="module {{ inline_admin_formset.classes }}">
8
+   {% if inline_admin_formset.formset.max_num == 1 %}
9
+     <h2>{{ inline_admin_formset.opts.verbose_name|capfirst }}</h2>
10
+   {% else %}
11
+     <h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}</h2>
12
+   {% endif %}
13
+   {{ inline_admin_formset.formset.non_form_errors }}
14
+   <table>
15
+     <thead><tr>
16
+       <th class="original"></th>
17
+     {% for field in inline_admin_formset.fields %}
18
+       {% if not field.widget.is_hidden %}
19
+         <th class="column-{{ field.name }}{% if field.required %} required{% endif %}">{{ field.label|capfirst }}
20
+         {% if field.help_text %}<img src="{% static "admin/img/icon-unknown.svg" %}" class="help help-tooltip" width="10" height="10" alt="({{ field.help_text|striptags }})" title="{{ field.help_text|striptags }}">{% endif %}
21
+         </th>
22
+       {% endif %}
23
+     {% endfor %}
24
+     {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %}<th>{% translate "Delete?" %}</th>{% endif %}
25
+     </tr></thead>
26
+
27
+     <tbody>
28
+     {% for inline_admin_form in inline_admin_formset %}
29
+        {% if inline_admin_form.form.non_field_errors %}
30
+        <tr class="row-form-errors"><td colspan="{{ inline_admin_form|cell_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr>
31
+        {% endif %}
32
+        <tr class="form-row {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}{% if forloop.last and inline_admin_formset.has_add_permission %} empty-form{% endif %}"
33
+             id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}">
34
+        <td class="original">
35
+          {% if inline_admin_form.original or inline_admin_form.show_url %}<p>
36
+          {% if inline_admin_form.original %}
37
+          {{ inline_admin_form.original }}
38
+          {% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}<a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="{% if inline_admin_formset.has_change_permission %}inlinechangelink{% else %}inlineviewlink{% endif %}">{% if inline_admin_formset.has_change_permission %}{% translate "Change" %}{% else %}{% translate "View" %}{% endif %}</a>{% endif %}
39
+          {% endif %}
40
+          {% if inline_admin_form.show_url %}<a href="{{ inline_admin_form.absolute_url }}">{% translate "View on site" %}</a>{% endif %}
41
+            </p>{% endif %}
42
+          {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %}
43
+          {% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %}
44
+          {% spaceless %}
45
+          {% for fieldset in inline_admin_form %}
46
+            {% for line in fieldset %}
47
+              {% for field in line %}
48
+                {% if not field.is_readonly and field.field.is_hidden %}{{ field.field }}{% endif %}
49
+              {% endfor %}
50
+            {% endfor %}
51
+          {% endfor %}
52
+          {% endspaceless %}
53
+        </td>
54
+        {% for fieldset in inline_admin_form %}
55
+          {% for line in fieldset %}
56
+            {% for field in line %}
57
+              {% if field.is_readonly or not field.field.is_hidden %}
58
+              <td{% if field.field.name %} class="field-{{ field.field.name }}"{% endif %}>
59
+              {% if field.is_readonly %}
60
+                  <p>{{ field.contents }}</p>
61
+              {% else %}
62
+                  {{ field.field.errors.as_ul }}
63
+                  {{ field.field }}
64
+              {% endif %}
65
+              </td>
66
+              {% endif %}
67
+            {% endfor %}
68
+          {% endfor %}
69
+        {% endfor %}
70
+        {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %}
71
+          <td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td>
72
+        {% endif %}
73
+        </tr>
74
+     {% endfor %}
75
+     </tbody>
76
+   </table>
77
+</fieldset>
78
+  </div>
79
+</div>

+ 8 - 0
app/templates/admin/filter.html

@@ -0,0 +1,8 @@
1
+{% load i18n %}
2
+<h3>{% blocktranslate with filter_title=title %} By {{ filter_title }} {% endblocktranslate %}</h3>
3
+<ul>
4
+{% for choice in choices %}
5
+    <li{% if choice.selected %} class="selected"{% endif %}>
6
+    <a href="{{ choice.query_string|iriencode }}" title="{{ choice.display }}">{{ choice.display }}</a></li>
7
+{% endfor %}
8
+</ul>

+ 29 - 0
app/templates/admin/includes/fieldset.html

@@ -0,0 +1,29 @@
1
+<fieldset class="module aligned {{ fieldset.classes }}">
2
+    {% if fieldset.name %}<h2>{{ fieldset.name }}</h2>{% endif %}
3
+    {% if fieldset.description %}
4
+        <div class="description">{{ fieldset.description|safe }}</div>
5
+    {% endif %}
6
+    {% for line in fieldset %}
7
+        <div class="form-row{% if line.fields|length_is:'1' and line.errors %} errors{% endif %}{% if not line.has_visible_field %} hidden{% endif %}{% for field in line %}{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% endfor %}">
8
+            {% if line.fields|length_is:'1' %}{{ line.errors }}{% endif %}
9
+            {% for field in line %}
10
+                <div{% if not line.fields|length_is:'1' %} class="fieldBox{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}{% if field.field.is_hidden %} hidden{% endif %}"{% elif field.is_checkbox %} class="checkbox-row"{% endif %}>
11
+                    {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
12
+                    {% if field.is_checkbox %}
13
+                        {{ field.field }}{{ field.label_tag }}
14
+                    {% else %}
15
+                        {{ field.label_tag }}
16
+                        {% if field.is_readonly %}
17
+                            <div class="readonly">{{ field.contents }}</div>
18
+                        {% else %}
19
+                            {{ field.field }}
20
+                        {% endif %}
21
+                    {% endif %}
22
+                    {% if field.field.help_text %}
23
+                        <div class="help">{{ field.field.help_text|safe }}</div>
24
+                    {% endif %}
25
+                </div>
26
+            {% endfor %}
27
+        </div>
28
+    {% endfor %}
29
+</fieldset>

+ 7 - 0
app/templates/admin/includes/object_delete_summary.html

@@ -0,0 +1,7 @@
1
+{% load i18n %}
2
+<h2>{% translate "Summary" %}</h2>
3
+<ul>
4
+    {% for model_name, object_count in model_count %}
5
+    <li>{{ model_name|capfirst }}: {{ object_count }}</li>
6
+    {% endfor %}
7
+</ul>

+ 50 - 0
app/templates/admin/index.html

@@ -0,0 +1,50 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n static %}
3
+
4
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/dashboard.css" %}">{% endblock %}
5
+
6
+{% block coltype %}colMS{% endblock %}
7
+
8
+{% block bodyclass %}{{ block.super }} dashboard{% endblock %}
9
+
10
+{% block breadcrumbs %}{% endblock %}
11
+
12
+{% block nav-sidebar %}{% endblock %}
13
+
14
+{% block content %}
15
+<div id="content-main">
16
+  {% include "admin/app_list.html" with app_list=app_list show_changelinks=True %}
17
+</div>
18
+{% endblock %}
19
+
20
+{% block sidebar %}
21
+<div id="content-related">
22
+    <div class="module" id="recent-actions-module">
23
+        <h2>{% translate 'Recent actions' %}</h2>
24
+        <h3>{% translate 'My actions' %}</h3>
25
+            {% load log %}
26
+            {% get_admin_log 10 as admin_log for_user user %}
27
+            {% if not admin_log %}
28
+            <p>{% translate 'None available' %}</p>
29
+            {% else %}
30
+            <ul class="actionlist">
31
+            {% for entry in admin_log %}
32
+            <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
33
+                {% if entry.is_deletion or not entry.get_admin_url %}
34
+                    {{ entry.object_repr }}
35
+                {% else %}
36
+                    <a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
37
+                {% endif %}
38
+                <br>
39
+                {% if entry.content_type %}
40
+                    <span class="mini quiet">{% filter capfirst %}{{ entry.content_type.name }}{% endfilter %}</span>
41
+                {% else %}
42
+                    <span class="mini quiet">{% translate 'Unknown content' %}</span>
43
+                {% endif %}
44
+            </li>
45
+            {% endfor %}
46
+            </ul>
47
+            {% endif %}
48
+    </div>
49
+</div>
50
+{% endblock %}

+ 13 - 0
app/templates/admin/invalid_setup.html

@@ -0,0 +1,13 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n %}
3
+
4
+{% block breadcrumbs %}
5
+<div class="breadcrumbs">
6
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
7
+&rsaquo; {{ title }}
8
+</div>
9
+{% endblock %}
10
+
11
+{% block content %}
12
+<p>{% translate 'Something’s wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user.' %}</p>
13
+{% endblock %}

+ 68 - 0
app/templates/admin/login.html

@@ -0,0 +1,68 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n static %}
3
+
4
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/login.css" %}">
5
+{{ form.media }}
6
+{% endblock %}
7
+
8
+{% block bodyclass %}{{ block.super }} login{% endblock %}
9
+
10
+{% block usertools %}{% endblock %}
11
+
12
+{% block nav-global %}{% endblock %}
13
+
14
+{% block nav-sidebar %}{% endblock %}
15
+
16
+{% block content_title %}{% endblock %}
17
+
18
+{% block breadcrumbs %}{% endblock %}
19
+
20
+{% block content %}
21
+{% if form.errors and not form.non_field_errors %}
22
+<p class="errornote">
23
+{% if form.errors.items|length == 1 %}{% translate "Please correct the error below." %}{% else %}{% translate "Please correct the errors below." %}{% endif %}
24
+</p>
25
+{% endif %}
26
+
27
+{% if form.non_field_errors %}
28
+{% for error in form.non_field_errors %}
29
+<p class="errornote">
30
+    {{ error }}
31
+</p>
32
+{% endfor %}
33
+{% endif %}
34
+
35
+<div id="content-main">
36
+
37
+{% if user.is_authenticated %}
38
+<p class="errornote">
39
+{% blocktranslate trimmed %}
40
+    You are authenticated as {{ username }}, but are not authorized to
41
+    access this page. Would you like to login to a different account?
42
+{% endblocktranslate %}
43
+</p>
44
+{% endif %}
45
+
46
+<form action="{{ app_path }}" method="post" id="login-form">{% csrf_token %}
47
+  <div class="form-row">
48
+    {{ form.username.errors }}
49
+    {{ form.username.label_tag }} {{ form.username }}
50
+  </div>
51
+  <div class="form-row">
52
+    {{ form.password.errors }}
53
+    {{ form.password.label_tag }} {{ form.password }}
54
+    <input type="hidden" name="next" value="{{ next }}">
55
+  </div>
56
+  {% url 'admin_password_reset' as password_reset_url %}
57
+  {% if password_reset_url %}
58
+  <div class="password-reset-link">
59
+    <a href="{{ password_reset_url }}">{% translate 'Forgotten your password or username?' %}</a>
60
+  </div>
61
+  {% endif %}
62
+  <div class="submit-row">
63
+    <input type="submit" value="{% translate 'Log in' %}">
64
+  </div>
65
+</form>
66
+
67
+</div>
68
+{% endblock %}

+ 5 - 0
app/templates/admin/nav_sidebar.html

@@ -0,0 +1,5 @@
1
+{% load i18n %}
2
+<button class="sticky toggle-nav-sidebar" id="toggle-nav-sidebar" aria-label="{% translate 'Toggle navigation' %}"></button>
3
+<nav class="sticky" id="nav-sidebar">
4
+  {% include 'admin/app_list.html' with app_list=available_apps show_changelinks=False %}
5
+</nav>

+ 42 - 0
app/templates/admin/object_history.html

@@ -0,0 +1,42 @@
1
+{% extends "admin/base_site.html" %}
2
+{% load i18n admin_urls %}
3
+
4
+{% block breadcrumbs %}
5
+<div class="breadcrumbs">
6
+<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
7
+&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
8
+&rsaquo; <a href="{% url opts|admin_urlname:'changelist' %}">{{ module_name }}</a>
9
+&rsaquo; <a href="{% url opts|admin_urlname:'change' object.pk|admin_urlquote %}">{{ object|truncatewords:"18" }}</a>
10
+&rsaquo; {% translate 'History' %}
11
+</div>
12
+{% endblock %}
13
+
14
+{% block content %}
15
+<div id="content-main">
16
+<div class="module">
17
+
18
+{% if action_list %}
19
+    <table id="change-history">
20
+        <thead>
21
+        <tr>
22
+            <th scope="col">{% translate 'Date/time' %}</th>
23
+            <th scope="col">{% translate 'User' %}</th>
24
+            <th scope="col">{% translate 'Action' %}</th>
25
+        </tr>
26
+        </thead>
27
+        <tbody>
28
+        {% for action in action_list %}
29
+        <tr>
30
+            <th scope="row">{{ action.action_time|date:"DATETIME_FORMAT" }}</th>
31
+            <td>{{ action.user.get_username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %}</td>
32
+            <td>{{ action.get_change_message }}</td>
33
+        </tr>
34
+        {% endfor %}
35
+        </tbody>
36
+    </table>
37
+{% else %}
38
+    <p>{% translate 'This object doesn’t have a change history. It probably wasn’t added via this admin site.' %}</p>
39
+{% endif %}
40
+</div>
41
+</div>
42
+{% endblock %}

+ 12 - 0
app/templates/admin/pagination.html

@@ -0,0 +1,12 @@
1
+{% load admin_list %}
2
+{% load i18n %}
3
+<p class="paginator">
4
+{% if pagination_required %}
5
+{% for i in page_range %}
6
+    {% paginator_number cl i %}
7
+{% endfor %}
8
+{% endif %}
9
+{{ cl.result_count }} {% if cl.result_count == 1 %}{{ cl.opts.verbose_name }}{% else %}{{ cl.opts.verbose_name_plural }}{% endif %}
10
+{% if show_all_url %}<a href="{{ show_all_url }}" class="showall">{% translate 'Show all' %}</a>{% endif %}
11
+{% if cl.formset and cl.result_count %}<input type="submit" name="_save" class="default" value="{% translate 'Save' %}">{% endif %}
12
+</p>

+ 10 - 0
app/templates/admin/popup_response.html

@@ -0,0 +1,10 @@
1
+{% load i18n static %}<!DOCTYPE html>
2
+<html>
3
+  <head><title>{% translate 'Popup closing…' %}</title></head>
4
+  <body>
5
+    <script id="django-admin-popup-response-constants"
6
+            src="{% static "admin/js/popup_response.js" %}"
7
+            data-popup-response="{{ popup_response_data }}">
8
+    </script>
9
+  </body>
10
+</html>

+ 0 - 0
app/templates/admin/prepopulated_fields_js.html


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.

tum/tmt_learning - Gogs: Simplico Git Service

説明なし

Prach Pongpanich 6f337d0a21 install tailwind alpine daisyui 3 年 前
..
dist 6f337d0a21 install tailwind alpine daisyui 3 年 前
LICENSE 6f337d0a21 install tailwind alpine daisyui 3 年 前
package.json 6f337d0a21 install tailwind alpine daisyui 3 年 前
readme.md 6f337d0a21 install tailwind alpine daisyui 3 年 前

readme.md

Lilconfig ⚙️

npm version install size Coverage Status

A zero-dependency alternative to cosmiconfig with the same API.

Installation

npm install lilconfig

Usage

import {lilconfig, lilconfigSync} from 'lilconfig';

// all keys are optional
const options = {
    stopDir: '/Users/you/some/dir',
    searchPlaces: ['package.json', 'myapp.conf.js'],
    ignoreEmptySearchPlaces: false
}

lilconfig(
    'myapp',
    options // optional
).search() // Promise<LilconfigResult>

lilconfigSync(
    'myapp',
    options // optional
).load(pathToConfig) // LilconfigResult

/**
 * LilconfigResult
 * {
 *   config: any; // your config
 *   filepath: string;
 * }
 */

Difference to cosmiconfig

Lilconfig does not intend to be 100% compatible with cosmiconfig but tries to mimic it where possible. The key differences are:

  • no support for yaml files out of the box(lilconfig attempts to parse files with no extension as JSON instead of YAML). You can still add the support for YAML files by providing a loader, see an example below.
  • no cache

Options difference between the two.

cosmiconfig option lilconfig
cache
loaders
ignoreEmptySearchPlaces
packageProp
searchPlaces
stopDir
transform

Loaders examples

Yaml loader

If you need the YAML support you can provide your own loader

import {lilconfig} from 'lilconfig';
import yaml from 'yaml';

function loadYaml(filepath, content) {
    return yaml.parse(content);
}

const options = {
    loaders: {
        '.yaml': loadYaml,
        '.yml': loadYaml,
        // loader for files with no extension
        noExt: loadYaml
    }
};

lilconfig('myapp', options)
    .search()
    .then(result => {
        result // {config, filepath}
    });

ESM loader

Lilconfig v2 does not support ESM modules out of the box. However, you can support it with a custom a loader. Note that this will only work with the async lilconfig function and won't work with the sync lilconfigSync.

import {lilconfig} from 'lilconfig';

const loadEsm = filepath => import(filepath);

lilconfig('myapp', {
    loaders: {
        '.js': loadEsm,
        '.mjs': loadEsm,
    }
})
    .search()
    .then(result => {
        result // {config, filepath}

        result.config.default // if config uses `export default`
    });

Version correlation

  • lilconig v1 → cosmiconfig v6
  • lilconig v2 → cosmiconfig v7