Django Administrationsoberfläche
Eines der wichtigsten features von Django ist die mitgelieferte und sehr einfach anzupassende Administrationsoberfläche.
Für jede Applikation in Django kann man eine Administrationsoberfläche definieren.
Darin kann man definieren für welche Modelle der Applikation es eine Oberfläche gibt, und wie man die einzelnen Objekte verwalten kann, sprich: neue anlegen, vorhandene editieren oder löschen, etc., und diese auch nach Wunsch anpassen und erweitern
Eine weitere Möglichkeit, außerhalb der Administrationsoberfläche, Objekte sehr einfach zu verwalten, bieten die so genannten Klassen basierte Views, ins Besondere für die Formularverarbeitung mit Klassen basierten Views und die Generische Bearbeitungs-Views um Formulare zu behandeln.
Die Formulare in Django und generische Klassen basierte Views werden nächste Woche Thema sein.
Die Administrationsoberfläche spielt eine Zentrale Rolle bei der Applikation seguimiento. Dass die Daten, die gescrappt werden, in eine relationale Datenbank gespeichert werden ist einfach dem Umstand geschuldet, dass es mit den Modell in Django eine sehr einfach anzupassende Administrationsoberfläche quasi gratis gibt.
Die Administrationsoberfläche für die Applikation seguimiento
wird in einer
Datei admin.py
innerhalb dieser definiert.
Mit der Oberfläche kann man sehr schnell aus der Menge an Ausschreibungen (am die hundert jeden Tag) einen Überblick bekommen, und als erstes entscheiden, welche Ausschreibung keine weitere Überprüfung benötigen.
Wir definieren als zunächst, dass das Modell Convocatoria
über die Oberfläche
administriert wird. Dazu registrieren wir die entsprechende Klasse
ConvocatoriaAdmin
, eine Subklasse von admin.ModelAdmin
, mit Hilfe des
@admin.register
-Dekorators.
|
|
Dann definieren wir, dass es eine Aktion gibt, um zu markieren dass ausgewählte Ausschreibungen keine weitere Überprüfung benötigen. Z.B. weil es sich dabei um ganz normale Güter, Bertatungen oder Dienstleitungen geht, die nichts mit Software und Softwareentwicklung zu tun haben.
|
|
Wir werden die Felder objeto
, entidad
, añadida
und estatus
(das Objekt
der Ausschreibung, die Körperschaft, die es ausschreibt, das Datum des
Imports, und den Status der Ausschreibung) in der Liste der Ausschreibungen
anzeigen.
|
|
Wir definieren die Felder departamento
, tipo
und estatus
(das Departement,
die Art der Ausschreibung und den Status) als Filter.
|
|
Als nächstes definieren wir, wie die Seite einer Ausschreibung aussieht.
Die erste Gruppe von Feldern wird immer aufegeklappt und ohne Überschrift bzw.
Gruppenname angezeigt. Dann werden weitere Felder in aufklappbaren Gruppen
angezeigt. Die Gruppen D.B.C
(das Basisdokument der Ausschreibung, von wem
und wann es überprüft wurde), Fechas
(das Datum der Veröffentlichung und
der Präsentation der Ausschreibung) und Monto
(den Betrag der
Ausschreibung in pesos bolivianos, US-Dollar und Euros).
Hier sind nicht nur Felder einer Ausschreibung (Modell Convocatoria
) erlaubt,
sondern auch Funktionen wie enlace_infosicoes
, die wir weiter unten
definieren werden.
|
|
Als nächstes definieren wir welche Felder nur gelesen (angezeigt) werden und nicht verändert werden dürfen.
|
|
Wir legen auch fest, dass auch oben ein Knopf zu speichern vorhanden sein wird, denn die Seite kann mit allen aufegeklappten Gruppen sehr lang werden.
|
|
Wir definieren, dass mit dem Suchfeld innerhalb der Felder objeto
, entidad
und slug
(den eindeutigen Code der Ausschreibung) gesucht wird.
|
|
Schließlich definieren wir, was die Aktion no_necesitan_revisión
macht. Sie
aktualisiert das Feld estatus=2
bei allen ausgewählten Ausschreibungen. Und
wir definieren den Text, der bei der Auswahl der Aktionen angezeigt wird.
|
|
Zum Schluss definieren wir was die Funktion enlace_infosicoes
ausgibt. Sie
zeigt in der Administrationsseite den Link der Ausschreibung auf der Plattform
von INFOSICOES als Link.
|
|
Das Django-Projekt seguimiento ist auf GitHub zu finden