added filter and some design things
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
\chapter{Zusammenfassung und Ausblick}
|
||||
\label{ch:zusammenfassung}
|
||||
Zusammenfassung...
|
||||
|
||||
Was war bei mir nicht enthalten, warum ist die berechnung nur teilweise valide, eigenen ergebnisse nicht schlecht machen
|
||||
|
||||
@@ -154,26 +154,43 @@ Betätigt der Benutzer den Speichern-Button im Front-end wird die bedingte Abfra
|
||||
|
||||
Das Abonnieren bestimmter Themengebiete ist eines der wichtigsten Funktionen im Prototyp.
|
||||
|
||||
Nach längerer Recherche im Netz wird unter Berücksichtigung aller Vor- und Nachteile ein Tag-Modell zur Umsetzung hierfür gewählt. Wie bereits in der Datenmodellierung angedeutet, besitzt jeder Artikel beschreibende Tags. Hierbei handelt es sich um kurze stichwortartige Beschreibungen, die den Artikel so gut wie möglich charakterisieren. Abhängig vom Umfang des Blogsystems sollte die Anzahl der Tags immer in einem gewissen Rahmen vorhanden sein. Das bedeutet zum Einen, dass Ersteller von Artikeln immer die gleich Menge der Schlagwörter verwenden, wobei geringe Abweichungen möglich sind (vgl. [Gmb18]). Hat das System bereits einen grö"seren Umfang angenommen, sollten zum Anderen keine neuen Tags erstellt werden um die Übersicht für Autoren und Leser zu bewahren.
|
||||
Nach längerer Recherche im Netz wird unter Berücksichtigung aller Vor- und Nachteile ein Tag-Modell zur Umsetzung hierfür gewählt. Wie bereits in der Datenmodellierung angedeutet, besitzt jeder Artikel beschreibende Tags. Hierbei handelt es sich um kurze stichwortartige Beschreibungen, die den diesen so gut wie möglich charakterisieren. Abhängig vom Umfang des Blogsystems sollte die Anzahl der Tags immer in einem gewissen Rahmen vorhanden sein. Das bedeutet zum Einen, dass Ersteller von Artikeln immer die gleich Menge der Schlagwörter verwenden, wobei geringe Abweichungen möglich sind (vgl. [Gmb18]). Hat das System bereits einen grö"seren Umfang angenommen, sollten zum Anderen keine neuen Tags erstellt werden um die Übersicht für Autoren und Leser zu bewahren.
|
||||
|
||||
Im Prototyp findet man die Abonnier-Funktion in der Menüleiste unter Suche. Hier erscheint ein zwei-geteiltes Layout, welches auf der rechten Seite alle bereits abonnierten Tags auflistet und darunter die Eingabe eines neuen Tags ermöglicht. Um den Benutzer alle bereits existierenden Tags offen zu legen, befindet sich auf der linken Seite des Layouts eine \texttt{Tag-Cloud}, die diese darstellt.
|
||||
Im Prototyp findet man die Abonnier-Funktion in der Menüleiste unter Suche. Hier erscheint ein zwei-geteiltes Layout, welches auf der rechten Seite alle bereits abonnierten Tags auflistet und darunter die Eingabe eines neuen Tags ermöglicht. Um den Benutzer alle bereits existierenden Tags offen zu legen, befindet sich auf der linken Seite des Layouts eine \texttt{Tag-Cloud}, die diese darstellt (vgl. Abbildung 3.8.).
|
||||
|
||||
Die Eingabe des zu abonnierenden Tags wird durch ein Formular realisiert. Dieses ist in der \texttt{forms.py} Datei konfiguriert und enthält nur ein Eingabefeld. Gibt der Benutzer einen Tag ein und sendet durch betätigen des Sichern-Buttons den \texttt{Request} wird dieser in der \texttt{views.py}, wie üblich, verarbeitet.
|
||||
Die Eingabe des zu abonnierenden Tags wird durch ein Formular realisiert. Dieses ist in der \texttt{forms.py} Datei konfiguriert und enthält nur ein Eingabefeld. Der Ablauf verläuft gleichartig zum oben dargestellten Erstellen eines Artikels, wird aber hier nochmals beschrieben um die Struktur des \texttt{Taggable Managers} zu verdeutlichen.
|
||||
|
||||
\begin{figure}[!h]
|
||||
\centering
|
||||
\includegraphics[width=1.1\textwidth]{figures/view-search-add}
|
||||
\caption{Funktion search\_add, Auszug aus views.py.}
|
||||
\hfill
|
||||
\end{figure}
|
||||
|
||||
Gibt der Benutzer einen Tag ein und sendet durch betätigen des Sichern-Buttons den \texttt{Request}, wird dieser in der \texttt{views.py}, verarbeitet. In Zeile 159 der Abbildung 3.6. wird der eingeloggte Benutzer der Variable \texttt{user\_instance} übergeben. Beim Erstellen der \texttt{Model-Instanz} (vgl. Abbildung 3.6., Zeile 161) wird \texttt{user\_instance} der Unbekannten \texttt{form} zugeteilt um die Tag-Eingabe im richtigen User-Objekt integrieren zu können. Nach der Abfrage der Formvalidität, wird ein neues Objekt angelegt (vgl. Abbildung 3.6., Zeile 163) und ebenfalls dem aktuellen Benutzer zugeordnet. Die Eingabe der \texttt{form} wird in ein \texttt{Array} zwischengespeichert und mit dem Attribut \texttt{cleaned\_data} in ein für Python kompatiblen Datentyp gecastet. Um prüfen zu können, ob die Eingaben der Form tatsächlich im \texttt{Tag-Model} enthalten sind, wird diese nochmals in einen String umgewandelt und mit den bereits existierenden Tags abgeglichen (vgl. Abbildung 3.6., Zeile 168). Wird Bedingung erfüllt, speichert die Funktion die Tags. In beiden möglichen Fällen, wird der Benutzer benachrichtigt ob der Vorgang erfolgreich oder die Eingabe nicht valide ist.
|
||||
|
||||
Nun werden auf dem Dashboard Artikel der neu hinzugefügten Tags angezeigt (vgl Abbildung 3.7.).
|
||||
|
||||
\begin{figure}[!h]
|
||||
\centering
|
||||
\includegraphics[width=1\textwidth]{figures/newsfeed}
|
||||
\caption{Prototyp Newsfeed Seite}
|
||||
\hfill
|
||||
\end{figure}
|
||||
|
||||
|
||||
\subsection{Filtern}
|
||||
Tag-cloud? Filtern nach abonnierten Posts, alle Posts und Posts mit bestimmten Tags
|
||||
|
||||
\subsection{Benachrichtigung}
|
||||
Mail-Benachrichtigung wöchentlich
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Für eine effiziente Nutzbarkeit des Prototypen ist es wichtig, dass Benutzer intuitiv nach Tags suchen und diese selektieren können. Hierfür werden verschiedene Möglichkeiten zur Verfügung gestellt, die die Usability der Website verbessern.
|
||||
|
||||
Im persönlichen Newsfeed des Dashboards sind, die zu den Artikeln zugewiesenen Schlagwörter jeweils mit Verlinkungen versehen. Möchte ein Benutzer weitere Artikel zu einem bestimmten Thema lesen, so muss er lediglich auf den entsprechenden Tag klicken und erhält somit eine Liste aller Posts, die diesen enthalten. Hierfür wird keine eigene \texttt{View} benötigt denn das Erstellen von Listen mit unterschiedlichem Inhalt kann ebenso über sich unterscheidende Urls realisiert werden. Im Template \texttt{post\_list} wird beim klicken auf einen Tag der \textit{Slug} dessen mitgegeben. Au"serdem wird nun die Url \texttt{post\_list\_by\_tag} aufgerufen, die auf eine neue Seite verweist
|
||||
|
||||
\begin{figure}[!h]
|
||||
\centering
|
||||
\includegraphics[width=1\textwidth]{figures/filtern}
|
||||
\caption{Prototyp Suche- und Abonnier-Seite}
|
||||
\hfill
|
||||
\end{figure}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user