Metalab OS/Calendaring: Unterschied zwischen den Versionen

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen
(-1. versuch)
 
(endlich ein update! (& re-org))
 
(11 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
== Status der Implementierung ==
 +
 +
Erste '''öffentliche beta-Version''' (Danke [[Benutzer:Metaz|Stefan]]!): http://mos.metalab.at/calendar/
 +
<br />
 +
 +
Neuerungen / Features
 +
* Handhabung von ACs nun vollständig implementiert.
 +
* Umstieg auf die [http://www.djangoproject.com/documentation/newforms/ newforms] library.
 +
* Implementierte Usecases:
 +
** Browsen nach Jahr/Monat/Woche/Tag/upcoming
 +
** neuen Termin eintragen
 +
** Termin bearbeiten
 +
* Export als icalendar [http://www.ietf.org/rfc/rfc2445.txt].
 +
* RSS und Atom Feeds
 +
 +
Aktuelle Version der Sources ist im Subversion: https://ma.metalab.at/svn/cmos/trunk/metacal/
 +
 +
Voraussetzungen zum Mitcoden:
 +
* Eine [http://www.djangoproject.com/ Django]-Installation der Entwicklungsversion (kein Release!)
 +
* Die aktuelle Version der [[MOS#Entwicklungsumgebung|MOS Entwicklungsumgebung]]
 +
* Extra-Module
 +
** http://codespeak.net/icalendar/ (iCalendar-Export)
 +
** http://labix.org/python-dateutil (recurrence rules)
 +
 +
=== TODOs ===
 +
 +
* Userinterface
 +
** Übersetzungen: Sprachakuderwelsch entwirren, deutsche & englische Texte erstellen
 +
** refactor templates
 +
* Veranstaltungen absagen fehlt noch
 +
* Modell weiter verfeinern
 +
** Zielgruppe / öffentlich oder privat
 +
** benötigte Ressourcen (z.B. Beamer)
 +
* andere Prozesse automatisiert anstoßen
 +
** Auto-Announces auf Mailinglisten
 +
** Update anderer Kalender und verwandter Dienste (upcoming.org etc.)
 +
 
== Use Cases ==
 
== Use Cases ==
  
 
Rollen:
 
Rollen:
 
* AC: ein beliebiger unauthentifizierter Benutzer
 
* AC: ein beliebiger unauthentifizierter Benutzer
* registeres User: ein authentifizierter Benutzer
+
* registered User: ein authentifizierter Benutzer
 
* Calendar Admin: ein authentifizierter Benutzer mit administrativen Privilegien
 
* Calendar Admin: ein authentifizierter Benutzer mit administrativen Privilegien
  
Zeile 12: Zeile 49:
 
Monat, nächste n Tage und Liste der nächsten n Veranstaltungen
 
Monat, nächste n Tage und Liste der nächsten n Veranstaltungen
 
wechseln.
 
wechseln.
Zudem kann die ansicht auf bestimmte Räume eingeschränkt werden.
+
Zudem kann die Ansicht auf bestimmte Räume eingeschränkt werden.
 
Der AC kann einzelne Veranstaltungen anwählen, um die dazugehörigen
 
Der AC kann einzelne Veranstaltungen anwählen, um die dazugehörigen
Details (was, wann, wo, beschreibung, url, ...) einzusehen.
+
Details (was, wann, wo, Beschreibung, url, ...) einzusehen.
  
=== Retreive Feed ===
+
=== Retrieve Feed ===
  
 
Ein AC ruft über http einen RSS (oder Atom?) Feed der nächsten n
 
Ein AC ruft über http einen RSS (oder Atom?) Feed der nächsten n
 
Veranstaltungen ab.
 
Veranstaltungen ab.
  
=== Register ===
+
=== Add Entry ===
  
Ein AC beantragt die Registrirung als Benutzer des metalab-Kalenders.
+
Ein Benutzer erstellt  eine neue Veranstaltung mit allen
Dafür füllt er ein Formular mit Kontaktdaten etc. aus. Der Antrag wird
+
dazugehörigen Daten (was, wann, wo, Beschreibung, url, ...).
zur Freischaltung des (dann registrierten) Benutzers an die Calendar
 
Admins per Email verschickt. Die Freischaltung erfolgt wiederum über
 
ein Formular.
 
  
=== Add Entry ===
+
ACs müssen eine Email-Adresse angeben, über die eine Verifizierung des
 +
Termins erfolgt (a la mailman): Durch Eingabe eines per Mail
 +
übermittelten Tokens wird der Termin bestätigt und sichergestellt, daß
 +
die Email-Adresse auch erreichbar ist.
  
Ein registered User erstellt  eine neue Veranstaltung mit allen
+
Für registered User fällt der Verifizierungsschritt.
dazugehörigen Daten (was, wann, wo, beschriebung, url, ...)
 
  
 
=== Modify Entry ===
 
=== Modify Entry ===
  
Ein registered User verändert die Daten einer von ihm
+
Ein Benutzer verändert die Daten einer Veranstaltung. <strike>Für ACs erfolgt
erstellten Veranstaltung oder ein Calendar Admin die Daten einer
+
wiederum ein Verifizierungsschritt.</strike>
beliebigen Verantaltung.
+
ACs können nur ihre eigenen Veranstaltungen editieren, denn als AC muß das
 +
für die Bestätigung verwendete Token abermals eingegeben werden.
 +
Ist der Benutzer nicht der ursprüngliche
 +
Ersteller einer Veranstaltung, wird diesem eine Benachrichtigung über die
 +
Veränderung per Email geschickt.
  
== Recurrence ==
+
=== Administer Entry ===
  
1 2 3 4
+
Ein Calender Admin modifiziert eine Veranstaltung direkt über das
- - d m  every mth day
+
Admin-Interface von Django.
n - w m  nday of the week every m weeks
 
- n m m  nth day of the month every m months
 
m n m o  every nth mday every oth month
 
  
1. weekday
+
== Recurrence ==
2. monthday
 
3. interval (day, week, month)
 
4. stride (every nth interval)
 
  
Daraus Belegung im Kalender berechnen.
+
Der Kalender benutzt ein Subset der [http://www.ietf.org/rfc/rfc2445.txt iCalendar RRULEs].
 +
Wie daraus Datum und Uhrzeit einzelner Wiederholungen bestimmt werden, erledigt dankbareweise das Modul [http://labix.org/python-dateutil dateutil].
  
Veränderung einzelner Termine einer sich wiederholenden Veranstaltung:
+
Veränderung einzelner Termine einer sich wiederholenden Veranstaltung wird es wahrscheinlich in der ersten Version noch nicht geben:
werden extra eingetragen und referenzieren die ursprüngliche
+
Der generelle Plan ist, für die veränderten Termine einen extra Eintrag zu machen und die ursprüngliche Veranstaltung auszusetzen. (Letzteres ist bisher im Datenmodell noch gar nicht vorgesehen...)
Veranstaltung.
 

Aktuelle Version vom 30. März 2007, 19:04 Uhr

Status der Implementierung

Erste öffentliche beta-Version (Danke Stefan!): http://mos.metalab.at/calendar/

Neuerungen / Features

  • Handhabung von ACs nun vollständig implementiert.
  • Umstieg auf die newforms library.
  • Implementierte Usecases:
    • Browsen nach Jahr/Monat/Woche/Tag/upcoming
    • neuen Termin eintragen
    • Termin bearbeiten
  • Export als icalendar [1].
  • RSS und Atom Feeds

Aktuelle Version der Sources ist im Subversion: https://ma.metalab.at/svn/cmos/trunk/metacal/

Voraussetzungen zum Mitcoden:

TODOs

  • Userinterface
    • Übersetzungen: Sprachakuderwelsch entwirren, deutsche & englische Texte erstellen
    • refactor templates
  • Veranstaltungen absagen fehlt noch
  • Modell weiter verfeinern
    • Zielgruppe / öffentlich oder privat
    • benötigte Ressourcen (z.B. Beamer)
  • andere Prozesse automatisiert anstoßen
    • Auto-Announces auf Mailinglisten
    • Update anderer Kalender und verwandter Dienste (upcoming.org etc.)

Use Cases

Rollen:

  • AC: ein beliebiger unauthentifizierter Benutzer
  • registered User: ein authentifizierter Benutzer
  • Calendar Admin: ein authentifizierter Benutzer mit administrativen Privilegien

View Calendar

Ein AC sieht sich mittels eines Browsers eine HTML-Repräsentation des metalab-Kalenders an. Der AC kann zwischen den Ansichten Tag, Woche, Monat, nächste n Tage und Liste der nächsten n Veranstaltungen wechseln. Zudem kann die Ansicht auf bestimmte Räume eingeschränkt werden. Der AC kann einzelne Veranstaltungen anwählen, um die dazugehörigen Details (was, wann, wo, Beschreibung, url, ...) einzusehen.

Retrieve Feed

Ein AC ruft über http einen RSS (oder Atom?) Feed der nächsten n Veranstaltungen ab.

Add Entry

Ein Benutzer erstellt eine neue Veranstaltung mit allen dazugehörigen Daten (was, wann, wo, Beschreibung, url, ...).

ACs müssen eine Email-Adresse angeben, über die eine Verifizierung des Termins erfolgt (a la mailman): Durch Eingabe eines per Mail übermittelten Tokens wird der Termin bestätigt und sichergestellt, daß die Email-Adresse auch erreichbar ist.

Für registered User fällt der Verifizierungsschritt.

Modify Entry

Ein Benutzer verändert die Daten einer Veranstaltung. Für ACs erfolgt wiederum ein Verifizierungsschritt. ACs können nur ihre eigenen Veranstaltungen editieren, denn als AC muß das für die Bestätigung verwendete Token abermals eingegeben werden. Ist der Benutzer nicht der ursprüngliche Ersteller einer Veranstaltung, wird diesem eine Benachrichtigung über die Veränderung per Email geschickt.

Administer Entry

Ein Calender Admin modifiziert eine Veranstaltung direkt über das Admin-Interface von Django.

Recurrence

Der Kalender benutzt ein Subset der iCalendar RRULEs. Wie daraus Datum und Uhrzeit einzelner Wiederholungen bestimmt werden, erledigt dankbareweise das Modul dateutil.

Veränderung einzelner Termine einer sich wiederholenden Veranstaltung wird es wahrscheinlich in der ersten Version noch nicht geben: Der generelle Plan ist, für die veränderten Termine einen extra Eintrag zu machen und die ursprüngliche Veranstaltung auszusetzen. (Letzteres ist bisher im Datenmodell noch gar nicht vorgesehen...)