dashboard - first draft of complete redesign

This commit is contained in:
2026-09-03 08:19:00 +02:00
parent c5c052ac87
commit 87fc43db87
11 changed files with 759 additions and 816 deletions
@@ -125,15 +125,28 @@ class WebPreviewTests(unittest.TestCase):
self.page.screenshot(path=str(Path(output) / f'web-{width}.png'), full_page=True, animations='disabled')
self.assertEqual(self.page.locator('script:not([src])').count(), 0)
def test_permissions_and_csrf_reject_mutations(self):
def test_permissions_and_csrf_reject_mutations(self):
denied = self.page.request.post(self.url + '?deny=1', form={'action': 'delete_news', 'file_base': '2030-12-31-Mehrseitig'}, max_redirects=0)
self.assertEqual(denied.status, 303)
self.assertIn('/intranet/index.php', denied.headers['location'])
self.page.request.post(self.url, form={'action': 'delete_news', 'file_base': '2030-12-31-Mehrseitig', 'csrf_token': 'wrong'}, max_redirects=0)
self.page.reload()
self.assertIn('Ungültige Anfrage', self.page.locator('.sb-alert-error').inner_text())
self.assertTrue(all((self.news / f'2030-12-31-Mehrseitig_page_{n}.png').is_file() for n in range(1, 11)))
self.assertTrue(all((self.news / f'2030-12-31-Mehrseitig_page_{n}.png').is_file() for n in range(1, 11)))
def test_page_cleans_expired_announcements_on_each_authorized_request(self):
log = self.root / 'cleanup.jsonl'
before = len(log.read_text().splitlines())
self.page.reload()
cleanup = [json.loads(line) for line in log.read_text().splitlines()]
self.assertEqual(len(cleanup), before + 1)
sql, params = cleanup[-1]
self.assertEqual(sql, 'DELETE FROM ansagen WHERE COALESCE(ansage_datum_bis, ansage_datum_von) < ?')
self.assertEqual(len(params), 1)
self.assertRegex(params[0], r'^\d{4}-\d{2}-\d{2}$')
self.page.request.get(self.url + '?deny=1', max_redirects=0)
self.assertEqual(len(log.read_text().splitlines()), len(cleanup))
def test_forms_preserve_fields_validation_and_bound_sql_parameters(self):
for tab, action, fields in (
('gottesdienst', 'create_service', {'bibeldatum': '2030-12-31', 'bibelwort': 'Joh 3,16', 'bibelvers': 'Text & "Zitat"'}),