Zum Inhalt springen

Metalab OS/Calendaring: Unterschied zwischen den Versionen

Frank (Diskussion | Beiträge)
update & 1st public version
Frank (Diskussion | Beiträge)
endlich ein update! (& re-org)
 
(8 dazwischenliegende Versionen von 2 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 ==


Zeile 16: Zeile 53:
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
Zeile 35: Zeile 72:
=== Modify Entry ===
=== Modify Entry ===


Ein Benutzer verändert die Daten einer Veranstaltung. Für ACs erfolgt
Ein Benutzer verändert die Daten einer Veranstaltung. <strike>Für ACs erfolgt
wiederum ein Verifizierungsschritt. Ist der Benutzer nicht der ursprüngliche
wiederum ein Verifizierungsschritt.</strike>
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
Ersteller einer Veranstaltung, wird diesem eine Benachrichtigung über die
Veränderung per Email geschickt.
Veränderung per Email geschickt.
Zeile 47: Zeile 87:
== Recurrence ==
== Recurrence ==


1 2 3
Der Kalender benutzt ein Subset der [http://www.ietf.org/rfc/rfc2445.txt iCalendar RRULEs].
D - n  every nth day
Wie daraus Datum und Uhrzeit einzelner Wiederholungen bestimmt werden, erledigt dankbareweise das Modul [http://labix.org/python-dateutil dateutil].
W - n  weekday(date) of the week every n weeks
M - n  monthday(date) of the month every n months
M m n  every mth weekday(date) every nth month


1. interval (day, week, month)
Veränderung einzelner Termine einer sich wiederholenden Veranstaltung wird es wahrscheinlich in der ersten Version noch nicht geben:
2. week of the month (1st, 2nd, 3rd, 4th, last)
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...)
3. stride (every nth interval)
 
Daraus Belegung im Kalender berechnen.
 
Veränderung einzelner Termine einer sich wiederholenden Veranstaltung:
werden extra eingetragen und referenzieren die ursprüngliche
Veranstaltung.
 
== Status der Implementierung ==
 
Es gibt inzwischen eine sehr rudimentäre Version: [[Bild:Metacal-0.0.1.tar.gz]]
 
=== TODOs ===
 
* Editieren von Events: derzeit broken, denn die Validators für's Modell verlangen Werte, die zwar für jedes Event definiert, aber nicht änderbar sein müssen.
* Benutzbarkeit: Navigationselemente etc. (derzeit heißt es URLs tippen!)
* Templates überarbeiten: da ist sehr viel Redundanz drin
* Token per Email für Aktionen von ACs
* Daten angemeldeter Benutzer nutzen
* Übersetzungen: Sprachakuderwelsch entwirren, deutsche & englische Texte erstellen
* Modell weiter verfeinern