Ansicht erstellen: Unterschied zwischen den Versionen

Aus Forschungsdaten.org
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(15 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Tutorial zum Erstellen einer Ansicht (View) =
=Tutorial zum Erstellen einer Ansicht (View)=
[[RDMO]]#RDMOTutorials


Nachdem Sie einen Fragenkatalog selbst erstellt haben oder einen geeigneten, bereits vorhanden ausgesucht haben, bietet es sich an eine (oder mehrere) entsprechende Ansicht(en) zu erstellen. Eine Ansicht erlaubt es den ausgefüllten Fragenkatalog in gewünschter Form darzustellen und in verschiedene Formate (z.B. PDF, HTML) zu exportieren. Solch eine Ansicht bietet sich beispielsweise an, wenn von dem Förder ein Datenmanagementplan in Textform verlangt wird. Die Ansicht kann die Fragen des Katalogs neu anordnen und somit der Reihenfolge des Fragenkataloges eines Förders angeglichen werden.  
Nachdem Sie einen Fragenkatalog selbst erstellt haben oder einen geeigneten, bereits vorhanden ausgesucht haben, bietet es sich an eine (oder mehrere) entsprechende Ansicht(en) zu erstellen. Eine Ansicht erlaubt es den ausgefüllten Fragenkatalog in gewünschter Form darzustellen und in verschiedene Formate (z.B. PDF, HTML) zu exportieren. Solch eine Ansicht bietet sich beispielsweise an, wenn von dem Förderer ein Datenmanagementplan in Textform verlangt wird. Die Ansicht kann die Fragen des Katalogs neu anordnen und somit der Reihenfolge des Fragenkataloges eines Förderers angeglichen werden.  


== Eine neue Ansicht anlegen ==
==Eine neue Ansicht anlegen==


Unter dem Managementmenü ind er oberen Navigationsleiste finden Sie die ''Ansichten''. Wenn sie auf ''Ansichten'' klicken, erscheinen alle bisher verfügbaren Ansichten. Klicken Sie in der rechten Navigationsleiste finden Sie unter ''Optionen'' auf ''Neue Ansicht erstellen''.
Unter dem Managementmenü in der oberen Navigationsleiste finden Sie die ''Ansichten''. Wenn sie auf ''Ansichten'' klicken, erscheinen alle bisher verfügbaren Ansichten. Klicken Sie in der rechten Navigationsleiste unter ''Optionen'' auf ''Neue Ansicht erstellen''.


Es öffnet sich nun ein Fenster, in dem Sie die Eigenschaften der neuen Ansicht festlegen müssen:
Es öffnet sich nun ein Fenster, in dem Sie die Eigenschaften der neuen Ansicht festlegen müssen:
* ''URI Prefix'': bitte wählen Sie das Wort ihrer RDMO-Instanz, welches sie durchgängig verwenden müssen (Das Entwicklerteam verwendet für seine Demo-Instanz: https://rdmorganiser.github.io/terms)
* ''Schlüssel'': wählen Sie einen beliebigen Namen, den sich ausschließlich für diese Ansicht zur Identifizierung verwenden (z.B. „Förderer x“)
* ''Kommentar'': geben Sie optional einen beschreibenden Text ein, wofür die Ansicht gedacht ist
* ''Titel (en)'': geben Sie einen englischen Titel für die Ansicht ein. Der Titel wird in der Projektübersicht angezeigt.
* ''Titel (de)'': geben Sie einen deutschen Titel für die Ansicht ein. Der Titel wird in der Projektübersicht angezeigt.
* ''Hilfe (en)'': geben Sie optional einen englische Hilfetext der Ansicht. Der Hilfetext wird in der Projektübersicht angezeigt.
* ''Hilfe (de)'':geben Sie optional einen deutsche Hilfetext der Ansicht. Der Hilfetext wird in der Projektübersicht angezeigt.


=== Ansicht bearbeiten ===
*''URI Prefix'': bitte wählen Sie das Präfix ihrer RDMO-Instanz, welches sie durchgängig verwenden müssen oder das Standard-Präfix
*''Schlüssel'': wählen Sie einen beliebigen Namen, den Sie ausschließlich für diese Ansicht zur Identifizierung verwenden (z.B. „Förderer x“)
*''Kommentar'': geben Sie optional einen beschreibenden Text ein, wofür die Ansicht gedacht ist
*''Titel (en)'': geben Sie einen englischen Titel für die Ansicht ein. Der Titel wird in der Projektübersicht angezeigt.
*''Titel (de)'': geben Sie einen deutschen Titel für die Ansicht ein. Der Titel wird in der Projektübersicht angezeigt.
*''Hilfe (en)'': geben Sie optional einen englische Hilfetext der Ansicht. Der Hilfetext wird in der Projektübersicht angezeigt.
*''Hilfe (de)'': geben Sie optional einen deutsche Hilfetext der Ansicht. Der Hilfetext wird in der Projektübersicht angezeigt.


Nachdem sie eine neue Ansicht angelegt haben, erscheint es in der Liste der Ansichten alphabetisch einsortiert. Klicken Sie auf das zweite Symbol "Template bearbeiten" in dem Vorlagen-Panel. Es erscheint dann das Vorlagen-Fenster, welches zunächst leer ist. Dort tippen Sie die gewünschten Fragen, dessen Antworten auf ein Textdokument gemappt werden sollen, für die Ansicht ein. Dafür verwenden Sie '''Django Template Syntax'''. Grundlegende Funktionen werden im Folgenden erklären. Für eine genaue Anleitung lesen Sie bitte [http://docs.djangoproject.com/en/1.11/ref/templates/language] .
===Ansicht bearbeiten===
 
Nachdem sie eine neue Ansicht angelegt haben, erscheint es in der Liste der Ansichten alphabetisch einsortiert. Klicken Sie auf das zweite Symbol "Template bearbeiten" in dem Vorlagen-Panel. Es erscheint dann das Vorlagen-Fenster, welches zunächst leer ist. Dort tippen Sie die gewünschten Fragen, dessen Antworten auf ein Textdokument gemappt werden sollen, für die Ansicht ein. Dafür verwenden Sie '''Django Template Syntax'''. Grundlegende Funktionen werden im Folgenden erklärt. Für eine genaue Anleitung lesen Sie bitte [https://docs.djangoproject.com/en/2.2/topics/templates/] .


Für das Layout verwenden Sie reguläres '''HTML''' und dank der Django Template Syntax können Variablen ersetzt werden.
Für das Layout verwenden Sie reguläres '''HTML''' und dank der Django Template Syntax können Variablen ersetzt werden.
Es gibt zwei Arten von Variablen:
Es gibt zwei Arten von Variablen:


* ''values'', welche die Antworten des Benutzers auf deren Attribute mappt.
*''values'', welche die Antworten des Benutzers auf deren Attribute mappt.
* ''conditions'', welche auf die Schlüssel von den Bedingungen mappt, um die Bedingungen anhand des aktuellen Projekts auszuwerten (z.B. wahr oder falsch).
*''conditions'', welche auf die Schlüssel von den Bedingungen mappt, um die Bedingungen anhand des aktuellen Projekts auszuwerten (z.B. wahr oder falsch).


Beim Beantworten des Fragenkatalogs durch den Benutzer werden die Attribute wie z.B. <code>project/research_question/title</code> mit dessen Antworten gefüllt. Diese Antworten können dann mit Hilfe von Variabeln in der Ansicht abgerufen werden. Dabei werden die Schrägstriche <code>/</code> durch Punkte <code>.</code> ersetzt. In der Vorlage schreiben Sie:
Beim Beantworten des Fragenkatalogs durch den Benutzer werden die Attribute wie z.B. <code>project/research_question/title</code> mit dessen Antworten gefüllt. Diese Antworten können dann mit Hilfe von Variabeln in der Ansicht abgerufen werden. In der Vorlage schreiben Sie:
<code>
<code>
Die Fragestellung des Projekts ist: <nowiki>{{ values.project.research_question.title }}</nowiki>
Die Fragestellung des Projekts ist: <nowiki>{% render_value 'project/research_question/title' %}</nowiki>
</code>
</code>


Nehmen wir an, dass der Benutzer auf die Frage mit "Wie erstelle ich eine Ansicht?" geantwortet hat. Dann wird die Variable <code>values.project.research_question.title</code> durch diese Antwort ersetzt und die Ausgabe ist:
Nehmen wir an, dass der Benutzer auf die Frage mit "Wie erstelle ich eine Ansicht?" geantwortet hat. Dann wird die Variable <code>project/research_question/title</code> durch diese Antwort ersetzt und die Ausgabe ist:


<code>
<code>
Zeile 37: Zeile 39:
</code>
</code>


=== Tags ===
===Tags===
 
Zu Beginn eines View-Templates werden die nötigen View-Tags geladen. Die folgenden Zeilen bilden den Standard, der nötig ist, um auf die weiter unten genannten Funktionen zuzugreifen zu können. Natürlich können diese verändert und ergänzt werden. "Partners" und "datasets" sind Variablen die in der ganzen View zur Verfügung stehen werden. Zur letzteren findet sich weiter unten auch ein Verwendungsbeispiel.
 
<pre>
{% load view_tags %}
{% get_set 'project/partner' as partners %}
{% get_set 'project/dataset' as datasets %}
</pre>
 
Ein neuer Tag steht seit Mai 2020 zur Verfügung und nennt sich "mathfilters".
 
<pre>
<% load mathfilters %}
</pre>
 
===Verwendung===


Für Entitäts- oder Attributssammlungen bietet es sich ein den <code>for</code>-Tag zu verwenden, der eine Schleife über alle Antworteingaben einer Frage legt:
Für Attributsammlungen bietet es sich an den <code>for</code>-Tag zu verwenden, der eine Schleife über alle Antworteingaben einer Frage legt:


<pre>
<pre>
<ul>
<ul>
{% for keyword in project.research_question.keywords %}
{% get_values 'project/research_question/keywords' set_index=0 as keyword %}
     <li>{{ keyword }}</li>
     {% for value in text %}
{% endfor %}
        <li>{{ value.value }}</li>
    {% endfor %}
</ul>
</ul>
</pre>
</pre>


Hierbei dient <nowiki><ul>...</ul></nowiki> dazu eine Aufzählungsliste mit Stichwörtern (<nowiki><li>...</li></nowiki>) zu erstellen. Die Schleifen-Variable ''keyword'' steht repräsentativ für die einzelnen Werte in <code>project.research_question.keywords</code>.
Hierbei dient <nowiki><ul>...</ul></nowiki> dazu eine Aufzählungsliste mit Stichwörtern (<nowiki><li>...</li></nowiki>) zu erstellen. Die Schleifen-Variable ''keyword'' steht repräsentativ für die einzelnen Werte in <code>project/research_question/keywords</code>.


Ein anderes Beispiel für die Sammlungsentität ''dataset'':
Ein anderes Beispiel für die Sammlung ''dataset'':


<pre>
<pre>
{% for dataset in values.project.dataset %}
{% for dataset in datasets %}
<p>
    <p>
    <i>Dataset {{ dataset.id }}:</i> {{ dataset.usage_description }}
        {% render_set_value dataset 'project/dataset/id' %}
</p>
    </p>
{% endfor %}
{% endfor %}
</pre>
</pre>
Zeile 63: Zeile 82:
Hierbei sorgt das <nowiki><p>...</p></nowiki> dafür, dass die Ausgabe in einem Absatz formatiert wird.
Hierbei sorgt das <nowiki><p>...</p></nowiki> dafür, dass die Ausgabe in einem Absatz formatiert wird.


Es ist auch möglich, dass eine Antwort nur angezeigt wird, wenn diese auch tatsächlich vorher bgegeben wurde, d.h. wenn das Attribut nicht leer ist. Dafür wird der <code>if</code>-Tag verwendet:
Es ist auch möglich, dass eine Antwort nur angezeigt wird, wenn diese auch tatsächlich vorher angegeben wurde, d.h. wenn das Attribut nicht leer ist. Dafür wird der <code>if</code>-Tag verwendet:


{% if conditions.personal_data %}
<pre>
{% get_value 'project/dataset/sharing/yesno' as val %}
{% if val.is_true %}
Dies wird nur ausgeführt, wenn personal_data als wahr ausgewertet wird.
Dies wird nur ausgeführt, wenn personal_data als wahr ausgewertet wird.
{% endif %}
{% endif %}
=== Filter ===
Es können Filter eingesetzt werden, um die Ausgabe zu formatieren. Es können beispielsweise die Inhalte einer Sammlung durch Kommata getrennt werden:
<pre>
<p>
    {{ values.project.research_question.keywords | join:', ' }}
</p>
</pre>
</pre>


== Fehler ==
Mit Hilfe des mathfilters kann der Filter "addition" verwendet werden und einzelne Variabeln aufaddiert werden. Hierbei sollte die Variabel immer als Zahl ("as_number") ausgegeben werden:
 
1.)
Bitte beachten Sie, dass sie stehts "values"+den Pfad des Attributes oder der Entität angeben müssen, wobei die Schrägstriche durch Punkte ersetzt werden. LEdeglich wenn durch eine <code>for</code>-Schleife dieser Pfad (teilweise) ersetzt wird, reicht die verkürzende, neue Variable aus:


<pre>
<pre>
{% for dataset in values.project.dataset %}
{{ costs.as_number |addition: additional_costs.as_number}}
<p><em>Datensatz {{ dataset.id }}:</em>
Volumen: {{dataset.size.volume}}</p>
{% endfor %}
</pre>
</pre>


In diesem Fall ersetzt "dataset" nach dem <code>for</code> das "values.project.dataset", so dass innerhalb der Schleife nur "dataset.size.volume" geschrieben werden muss anstatt "values.project.dataset.size.volume".
==Fehler==


2.) Fehlermeldung:
1.) Wenn sie ihre Eintragungen (zwischen-)speichern und dabei eine Fehlermeldung wie folgt erhalten:
Wenn sie ihre Eintragungen (zwischen)speichern und dabei eine Fehlermeldung wie folgt erhalten:


[[Datei:FehlermeldungAnsicht.PNG|800px|none]]
[[Datei:FehlermeldungAnsicht.PNG|800px|none]]


Dann bedeutet dies, dass sie <nowiki>{% endfor %}</nowiki> vergessen haben, welches eine for-Schleife schließt. solche syntaktischen Fehler werden Ihnen angezeigt.
Dann bedeutet dies, dass Sie <nowiki>{% endfor %}</nowiki> vergessen haben, welches eine for-Schleife schließt. Solche syntaktischen Fehler werden Ihnen auf diese Art angezeigt. Ob die benutzten Variabeln richtig aufgeschlüsselt werden, sehen sie in dem Code-Eingabefenster jedoch nicht. Erst wenn sie die Ansicht innerhalb ihres Projekts aufrufen, werden sie Fehler feststellen können. Es werden dann Einträge fehlen oder falsch dargestellt sein. Überprüfen Sie in solch einem Fall die richtige Angabe ihrer Variabeln.
Ob die benutzten Variabeln richtig aufgeschlüsselt werden, sehen sie in dem Code-Eingabefenster jedoch nicht. Erst wenn sie die Ansicht innerhalb ihres Projekts aufrufen, werden sie Fehler feststellen können. Es werden dann Einträge fehlen doer falsch dargestellt sein. Überprüfen Sie in solch einem Fall die richtige Angabe ihrer Variabeln.

Aktuelle Version vom 5. Mai 2020, 16:52 Uhr

Tutorial zum Erstellen einer Ansicht (View)

RDMO#RDMOTutorials

Nachdem Sie einen Fragenkatalog selbst erstellt haben oder einen geeigneten, bereits vorhanden ausgesucht haben, bietet es sich an eine (oder mehrere) entsprechende Ansicht(en) zu erstellen. Eine Ansicht erlaubt es den ausgefüllten Fragenkatalog in gewünschter Form darzustellen und in verschiedene Formate (z.B. PDF, HTML) zu exportieren. Solch eine Ansicht bietet sich beispielsweise an, wenn von dem Förderer ein Datenmanagementplan in Textform verlangt wird. Die Ansicht kann die Fragen des Katalogs neu anordnen und somit der Reihenfolge des Fragenkataloges eines Förderers angeglichen werden.

Eine neue Ansicht anlegen

Unter dem Managementmenü in der oberen Navigationsleiste finden Sie die Ansichten. Wenn sie auf Ansichten klicken, erscheinen alle bisher verfügbaren Ansichten. Klicken Sie in der rechten Navigationsleiste unter Optionen auf Neue Ansicht erstellen.

Es öffnet sich nun ein Fenster, in dem Sie die Eigenschaften der neuen Ansicht festlegen müssen:

  • URI Prefix: bitte wählen Sie das Präfix ihrer RDMO-Instanz, welches sie durchgängig verwenden müssen oder das Standard-Präfix
  • Schlüssel: wählen Sie einen beliebigen Namen, den Sie ausschließlich für diese Ansicht zur Identifizierung verwenden (z.B. „Förderer x“)
  • Kommentar: geben Sie optional einen beschreibenden Text ein, wofür die Ansicht gedacht ist
  • Titel (en): geben Sie einen englischen Titel für die Ansicht ein. Der Titel wird in der Projektübersicht angezeigt.
  • Titel (de): geben Sie einen deutschen Titel für die Ansicht ein. Der Titel wird in der Projektübersicht angezeigt.
  • Hilfe (en): geben Sie optional einen englische Hilfetext der Ansicht. Der Hilfetext wird in der Projektübersicht angezeigt.
  • Hilfe (de): geben Sie optional einen deutsche Hilfetext der Ansicht. Der Hilfetext wird in der Projektübersicht angezeigt.

Ansicht bearbeiten

Nachdem sie eine neue Ansicht angelegt haben, erscheint es in der Liste der Ansichten alphabetisch einsortiert. Klicken Sie auf das zweite Symbol "Template bearbeiten" in dem Vorlagen-Panel. Es erscheint dann das Vorlagen-Fenster, welches zunächst leer ist. Dort tippen Sie die gewünschten Fragen, dessen Antworten auf ein Textdokument gemappt werden sollen, für die Ansicht ein. Dafür verwenden Sie Django Template Syntax. Grundlegende Funktionen werden im Folgenden erklärt. Für eine genaue Anleitung lesen Sie bitte [1] .

Für das Layout verwenden Sie reguläres HTML und dank der Django Template Syntax können Variablen ersetzt werden. Es gibt zwei Arten von Variablen:

  • values, welche die Antworten des Benutzers auf deren Attribute mappt.
  • conditions, welche auf die Schlüssel von den Bedingungen mappt, um die Bedingungen anhand des aktuellen Projekts auszuwerten (z.B. wahr oder falsch).

Beim Beantworten des Fragenkatalogs durch den Benutzer werden die Attribute wie z.B. project/research_question/title mit dessen Antworten gefüllt. Diese Antworten können dann mit Hilfe von Variabeln in der Ansicht abgerufen werden. In der Vorlage schreiben Sie: Die Fragestellung des Projekts ist: {% render_value 'project/research_question/title' %}

Nehmen wir an, dass der Benutzer auf die Frage mit "Wie erstelle ich eine Ansicht?" geantwortet hat. Dann wird die Variable project/research_question/title durch diese Antwort ersetzt und die Ausgabe ist:

Die Fragestellung des Projekts ist: "Wie erstelle ich eine Ansicht?"

Tags

Zu Beginn eines View-Templates werden die nötigen View-Tags geladen. Die folgenden Zeilen bilden den Standard, der nötig ist, um auf die weiter unten genannten Funktionen zuzugreifen zu können. Natürlich können diese verändert und ergänzt werden. "Partners" und "datasets" sind Variablen die in der ganzen View zur Verfügung stehen werden. Zur letzteren findet sich weiter unten auch ein Verwendungsbeispiel.

{% load view_tags %}
{% get_set 'project/partner' as partners %}
{% get_set 'project/dataset' as datasets %}

Ein neuer Tag steht seit Mai 2020 zur Verfügung und nennt sich "mathfilters".

<% load mathfilters %}

Verwendung

Für Attributsammlungen bietet es sich an den for-Tag zu verwenden, der eine Schleife über alle Antworteingaben einer Frage legt:

<ul>
{% get_values 'project/research_question/keywords' set_index=0 as keyword %}
    {% for value in text %}
        <li>{{ value.value }}</li>
    {% endfor %}
</ul>

Hierbei dient <ul>...</ul> dazu eine Aufzählungsliste mit Stichwörtern (<li>...</li>) zu erstellen. Die Schleifen-Variable keyword steht repräsentativ für die einzelnen Werte in project/research_question/keywords.

Ein anderes Beispiel für die Sammlung dataset:

{% for dataset in datasets %}
    <p>
        {% render_set_value dataset 'project/dataset/id' %}
    </p>
{% endfor %}

Hierbei sorgt das <p>...</p> dafür, dass die Ausgabe in einem Absatz formatiert wird.

Es ist auch möglich, dass eine Antwort nur angezeigt wird, wenn diese auch tatsächlich vorher angegeben wurde, d.h. wenn das Attribut nicht leer ist. Dafür wird der if-Tag verwendet:

{% get_value 'project/dataset/sharing/yesno' as val %}
{% if val.is_true %}
Dies wird nur ausgeführt, wenn personal_data als wahr ausgewertet wird.
{% endif %}

Mit Hilfe des mathfilters kann der Filter "addition" verwendet werden und einzelne Variabeln aufaddiert werden. Hierbei sollte die Variabel immer als Zahl ("as_number") ausgegeben werden:

{{ costs.as_number |addition: additional_costs.as_number}}

Fehler

1.) Wenn sie ihre Eintragungen (zwischen-)speichern und dabei eine Fehlermeldung wie folgt erhalten:

FehlermeldungAnsicht.PNG

Dann bedeutet dies, dass Sie {% endfor %} vergessen haben, welches eine for-Schleife schließt. Solche syntaktischen Fehler werden Ihnen auf diese Art angezeigt. Ob die benutzten Variabeln richtig aufgeschlüsselt werden, sehen sie in dem Code-Eingabefenster jedoch nicht. Erst wenn sie die Ansicht innerhalb ihres Projekts aufrufen, werden sie Fehler feststellen können. Es werden dann Einträge fehlen oder falsch dargestellt sein. Überprüfen Sie in solch einem Fall die richtige Angabe ihrer Variabeln.