Giter Site home page Giter Site logo

hitobito / hitobito_die_mitte Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 429 KB

A hitobito wagon defining the organization hierarchy and additional features for Die Mitte Schweiz.

License: Other

Ruby 95.60% SCSS 2.51% Haml 1.69% Shell 0.20%
hitobito-wagon

hitobito_die_mitte's Introduction

hitobito logo

Welcome to Hitobito 人人

Hitobito is an open source web application to manage organisation and communities with complex group hierarchies with members, events, courses, mailings, communication and a lot more.

Maintenance Documentation Status GitHub Open Source Helpers Rails Lint and Test

User Guide

A generic user guide in German is available.

Development

Check out our development kit

More detailed development documentation can be found in doc/development.

This is where you also find some Deployment Instructions.

More information about interfaces, api, oauth and oidc is also avaible.

Architecture

The architecture documentation in German can be found in doc/architecture.

Two topics shall be mentioned here explicitly:

Group Hierarchy

Hitobito provides a powerful meta-model to describe group structures. Groups are always of a specific type and are arranged in a tree. Each group type may have several different role types.

This core part of Hitobito does not provide any specific group or role types. They have to be defined in a separate plugin, specific to your organization structure.

An example group type definition might look like this:

class Group::Layer < Group
  self.layer = true

  children Group::Layer, Group::Board, Group::Basic

  class Role < Leader
    self.permissions = [:layer_full, :contact_data]
  end


  class Member < Role
    self.permissions = [:group_read]
  end

  roles Leader, Member
end

A group type always inherits from the class Group. It may be a layer, which defines a set of groups that are in a common permission range. All subgroups of a layer group belong to this range unless a subgroup is a layer itself.

Then all possible child types of the group are listed. When creating subgroups, only these types will be allowed. As shown, types may be organized recursively.

For the ease of maintainability, role types may be defined directly in the group type. Each role type has a set of permissions. They are general indications of what and where. All specific abilities of a user are derived from the role permissions she has in her different groups.

See Gruppen- und Rollentypen for more details and hitobito_generic for a complete example group structure.

Plugin architecture

Hitobito is built on the plugin framework Wagons. With Wagons, arbitrary features and extensions may be created for Hitobito. As mentioned above, as there are no group types coming from Hitobito itself, at least one wagon is required to define group types in order to use Hitobito.

See Wagon Guidelines or Wagons for more information on wagons and its available rake tasks.

Contributing

You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can. Before opening any pull request or issue, please search for existing issues (open and closed) and read the contributing guidelines. If you are part of an organisation that uses Hitobito, please discuss your intent with the responsible person of your organisation.

Community

Hitobito made with 💙 and the incredible community:

  • Jungwacht Blauring Schweiz
  • Puzzle ITC GmbH
  • Pfadibewegung Schweiz
  • Hitobito AG
  • CEVI Regionalverband ZH-SH-GL / CEVI Schweiz
  • Pro Natura Jugend
  • Dachverband Schweizer Jugendparlamente DSJ
  • Insieme Schweiz
  • Forschungstelle Digitale Nachhaltigkeit
  • CH Open
  • Digital Impact Network
  • Schweizer Blasmusikverband
  • Grünliberale Partei Schweiz
  • Die Mitte
  • Stiftung für junge Auslandschweizer
  • Swiss Canoe
  • Schweizerischer Sportverband öffentlicher Verkehr (SVSE)
  • Schweizer Wanderwege

Please contact Hitobito if you want to be part of our community.

License

Hitobito is released under the GNU Affero General Public License.

The Hitobito logo is a registered trademark of Hitobito LTD, Switzerland.


btw: Hitobito 人人 means "everyone"

hitobito_die_mitte's People

Contributors

amaierhofer avatar carlobeltrame avatar daniel-illi avatar kronn avatar mtnstar avatar njaeggi avatar olibrian avatar severinraez avatar thewalkingleek avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

hitobito-bbt

hitobito_die_mitte's Issues

Datenerfassung

  • Attribute auf der Person definieren #43
  • Attribute auf der Organisation definieren #44
  • Post Verzeichnis importieren #17
  • F02-15 Beim erfassen Adressenvervollständigung vornehmen (Ajax) #18
  • F02-16 Nächtliche Address Prüfung via Job #19
  • F02-29 Globales Tag (Stichwort) Management #21
  • Familienadressen #53

Kampagnen

Neues Modul Kampagen

  • Attribute festlegen, Kampangnen Rückläufe, neue Attribute zur Laufzeit?
  • Sonst ähnlich Event (Vorschläge machen Selektionsliste, Einladungen, Reminder, Vorlagen)

Aus dem Workshop vom 10.09.2020
Funktionalitäten, welche bislang mit Kampagnen gelöst wurden, werden auf die Module Rechnungen und Filter verteilt.

  • Selektionen
  • Rechnungen
    • Mitgliederbeiträge
    • Rechnungen an gewisse Personenkreise
    • Wie viel ist noch offen, wie viel ist bereits bezahlt, anzahl Kontakte
    • Gruppen von Rechnungen
    • Exkluden von Personen mit gewissen Tags

F08-01 Abacus

Definiertes XML Export für Abacus

Informationen zu erzeugten Rechnungen/Mahnungen werden über eine geeignete Schnittstelle an das Buchhaltungssystem Abacus übertragen.

Weitere Infos zu Abacus hitobito/hitobito#598

F03-01 Regelmässige Doublettenprüfung von Personen(via job)

  • Anhand welcher Kriterien identifizieren wir Doubletten? -> Analog beim CSV Import.
  • Nightly Job der Dubletten identifiziert
    - Tags vergibt auf beiden identifizierten Personen (Dublette)
  • Identifizierte Personen werden für die Doubletten Liste markiert. Vgl. #23

Kandidaten Attribute

  • Firstname, Lastname, Company-Name, Zip, Birthday

Bestehende Klasse persondoublettfinder verwenden

F04-18 Korrespondenz auf Personen und Firmen sichtbar, Kommunikationshistorie

Ziel:
Ein Benutzer schickt ein Mail an ein Abo. Diese Mails werden persistiert. Auf einem Benutzer werden die Mails wo er als Mailempfänger vorkommt, aufgeführt. Falls ein Abo ohne Empfänger vorhanden ist, werden diese Mails auch angenommen und abgelegt. Dabei ist Absender, Betreff, Empfänger, Inhalt und Datum sichtbar. Falls ein Benutzer aus dem Abo entfernt wird, sollte das Mail trotzdem noch auf dem Benutzer angezeigt werden.

  • Mails welche an ein Abo geschickt werden, persistieren wir.
  • Auf der Person unter "history" sind die Mails einsehbar
  • Auf dem Abo unter "history" sind die Mail einsehbar

Fragen:

  • Über welches API kriegen wir die emails aus mailchimp? -> Wir speichern nur an hitobito geschickte Mails.
  • Wie gehen wir mit Anhänge um? Nein. Falls ja, zusätzlicher Speicherbedarf wohl absehbar. Daher aktuell nicht. Wir gehen davon aus, das die Mails beim Absender und Empfänger noch in der Mailbox sind.
  • Wer darf die Mails/Korrespondenz sehen? Bei Schreibrechte (full_*) Gleich wie die Berechtigung zum bearbeiten einer Person.

Datenmigration

Ziel: Übernahme der bestehenden CSV Daten aus aktuellem System. Dabei soll die Produktionsumgebung sukzessive mit Produktiv Daten gefüllt werden. Folgendes Vorgehen ist angedacht

  • Setup sodass CVS wiederholt und auf einfache Weise eingespielt werden kann
  • Grobsichtung der CSV Daten, Identifizikation der relevanten Datein für Gruppen / Personen / Rollen #4
  • Import der Gruppen inklusive Mapping auf Struktur so wie sie in hitobito definiert wurde, siehe #48
  • Import der Mitgliedschaften, sodass entsprechende Rollen für Personen erstellt werden können #52
  • Vorgehen für Strukturkonflikt Quelle(Ordner, Merkmal), Ziel (GroupType, RoleType) #67
  • Import der Personen bezogenen Stammdaten, siehe #49
  • Import der Merkmale, sodass weitere Rollen für Personen erstellt werden können #66
  • Import der Kampagnen / Rechnungen #68
  • Import der SpendenHistorie #69
  • Sekretäre gemäss Liste von Stefan hinzufügen
  • Weiter Merkmale gemäss CSV Mappen
  • Gesamten Baum importieren
  • Inaktive Merkmale #72
  • Diskussion / Bereinigungen der Strukturanpassungen von #48
  • Symp nach kant Statut löschen #77
  • Personen fälschlicherweise als Firma erkannt #73
  • Nur Personen mit gleichem Nachnamen als Familie abbilden #79
  • Korregierte Group Mappings #78
  • Doubletten automatisch bereinigen #75
  • Weiter Anpassung an Gruppen Struktur #80
  • Empfänger als Abo #76
  • Merkmale die nicht auf den Gruppentyp passen #74
  • Weiter Anpassung an den Rollen #89
  • Personen mit Merkmal Juristen werden in einer Arbeitsgruppe "Juristen" als Mitglieder importiert
  • Personen mit Merkmal Empfänger sollen nicht in der fallback Arbeitsgruppe landen, sondern Gruppe soll bestehenden bleiben Personen werden dort als Mitglieder geführt.
  • Am Enden sollen keine Merkmal Rollen mehr vorkommen
  • Gruppe Gewählte in der Region und der Vereinigung gibt es nicht, in Arbeitsgruppe umwandeln
  • Korrespondenzsprache überprüfen / richtig setzen
  • Rollen in der README aktualisieren
  • Sekretäre CSV Liste importieren
  • Attribut Korrespondenzsprache übernehmen
  • Attribut Titel übernehmen, haben wir hier Daten vom OM?
  • Rollen CSV Liste importieren
  • Root user seeden
  • Anrede statisch auf Titel Nachname setzen
  • Inaktive Rollen: Teilweise übernommen (siehe Mail von Stefan, 15.03.21)
  • Familienlogik OM vs. Hitobito: Teilweise übernommen (siehe Mail von Stefan, 15.03.21) (-> Mitgliedschaft für andere Haushaltsmitglieder duplizieren?)
  • Neue Seed Daten einlesen

Weiters Vorgehen

  • Korrigieren der falschen Seed daten
  • PW reset Link verschicken am geseedete Rollen
  • Kanton Luzern gibt es die Arbeitsgruppe «Vereinigungen/Kommission» dort drin sind Movimento, CDK und LWK. (siehe Mail von Stefan, 15.03.21) -> unklar -> ist bei Stefan, er schaut mit dem Kanton Luzern und kommt bei Bedarf wieder auf uns zu.

Korrespondenz SMS

  • F04-19 / F08-07 SMS an einzelne oder mehrere Personen verschicken #34
  • F04-20 Absender per Parteieinheit #35
  • F04-21 Korrespondenz auf Personen und Firmen sichtbar, Kommunikationshistorie #37
  • F04-22, F04-23, F04-24 Massenversand #38
  • Affiliate Link: #116
  • SMS delivery notifications in eigenen Job #110

Korrespondenz E-Mail

  • F04-08 Das System nutzt eine entsprechende Vorlage für Rechnungen/Mahnungen automatisch. #30
  • F04-16 Mailchimp bounces integrieren, Personen markieren #31
  • F04-17 Personen Filter via tags, Emails anpassen #32
  • F04-18 Korrespondenz auf Personen und Firmen sichtbar, Kommunikationshistorie #33

F04-20 Absender per Parteieinheit

Der Versand erfolgt mit einer je Parteieinheit definierbaren Absenderbezeichnung.

Fragen:

  • Wo wird diese Absenderbezeichnung festgelegt?
  • Wo werden die entsprechenden API und Usercredentials abgelegt?
  • Definieren auf Gruppe od. Ebene?

F04-16 Mailchimp bounces integrieren, Personen markieren (tag email:invalid)

Ziel

  • Personen, welche eine unzustellbare Mail haben erhalten das tag email:invalid
  • Fehlerhafte Mailadresse wird im GUI gekennzeichnet. Es kann auf einer Person mehrere Mailadressen haben
  • Fehlerhafte Mails werden in Abos nicht berücksichtigt.
  • Fehlerhafte Mails werden nicht nach Mailchimp synchronisiert

Datenqualität

  • F03-01 Regelmässige Doublettenprüfung von Personen(via job) #22
  • F03-02 Zusammenführen von doppelten Personen #23

voerst kein automatischer Check beim Anlegen von einer Person

Grundpaket

Ziel: Aufbau Grundpaket/Umgebung für die CVP

Inhalt:

  • #1 - Integrationsumgebung
  • #2 - Produktionsumgebung
  • #3 - Organisationsstruktur
  • #57 - Anpassungen an Gruppenstruktur

Import Gruppen (16-Verbandsstruktur)

Gruppen und Gruppe Beziehungen können gut ausgelesen werden. Ein einfaches Mapping auf hitobito Gruppen Typen wurde implementiert und muss noch mit dem Kunden validiert werden.

Zudem weicht die aktuelle Struktur von den von uns definierten Beziehungen ab (zb. Mitglieder genested, Kantonalsektion zw Bund und Kantonen). Wir haben diese Beziehungen für den import zugelassen. Gewisse Gruppen wurden auch an neue Parents gehängt, damit das Type Matching der Gruppe besser funktioniert.

F02-29 Globales Tag (Stichwort) Management

  • Tags als Tabelle darstellen (mit Anzahl Taggings)
  • Mehrfachauswahl und Aktion (Zusammenführen -> neuer Tag Name)
  • Wer darf diese Aktion ausführen, benötigt er dafür Schreibrechte auf der Person?

Berechtigung:
Erstellen: Alle wo schreibrechte haben
Management: durch den Admin

  • Wie aufwändig wäre es das Erstellen der Tags einzuschränken, sodass das dies nur über das Tag Management möglich ist und auf der Person nur noch bestehende Tags vergeben werden können?

Korrespondenz Rechnungen

Ziel: Ergänzen von Rechnungsmodul für die Anforderungen der CVP. Es werden nur QR Rechnungen benötigt.

  • F04-08 Vorlagen für Mahnungen #29
  • Gruppieren von Rechnungen (aus Modul Kampagnen) #54
  • F02-21 Mahnstop auf Rechnung #20

F04-19 SMS an mehrere Personen

  • Inputfeld max 160 zeichen begrenzen

  • Geschickte SMS auf dem Abo anzeigen

  • Im Abo kann zusätzlich an die Empfänger ein SMS geschickt werden. #38

  • Ein SMS wird an alle Nummer mit dem Typ "mobile" geschickt.

  • Nur mit der Rolle "Sekretariat" kann ein SMS geschickt werden.

  • Wie Mails, werden SMS Kommunikation auch im "history" abgelget Wird mit #37 umgesetzt

  • SMS Provider: https://www.aspsms.com/de/documentation/

  • Einstellungen Provider auf Group Setttings

  • SMS kann nur gesendet werden falls Provider Settings vorhanden (senden button disablen)

  • Im Form Anzeigen an wie viele Empfänger das die SMS gesendet wird #101

  • Im Form Anzeigen wieviele Empfänger keine Mobil Nr hinterlegt haben #101

  • Anzahl Zeichen im Form anzeigen #102

https://aspsms.ch (ca 6-10 Rp pro SMS, keine Grundgebühr)

F02-21 Mahnstop auf Rechnung

  • Aktuell nur manuelle Mahnung, automatisieren via Job?
  • Neues Feld Mahnstop auf Rechnung / via edit und update setztbar
  • In Rechnung scopes integrieren, nur Rechnungen ohne Mahnstop mahnen

Grobsichtung der CSV Daten

  • Dump von Kunden anfordern
  • CSV Daten in postgres DB importieren
  • Einfache Models für Gruppe, Person und Rolle erstellen

Damit wir Zusammenhänge besser nachvollziehen können, importieren wir die bestehenden CSV Daten via csvkit in postgres. Somit können einfacher Zusammenhänge zwischen verschiedenen Files validiert werden.

F02-16 Nächtliche Address Prüfung via Job

Prüfen von Postadressen gegen Verzeichnis der Post. Siehe #17

  • Tags, lokalisierbar, Anzeige bei der Person (analog den Tags bei ungültigen Emails)
  • Optional: Scope auf der Person für geprüft, gültig
  • Job implementieren und nächtlich ausführen lassen
  • Adressen mit anderem Land als Schweiz nicht validieren.
  • Personen mit einem speziellen tag (invalid_address_override) nicht validieren.
  • In den Settings eine oder mehrere Email Addressen hinterlegen, die über das Ergebnis des Runs informiert werden.

F04-03 Anbindung an Druckerei (Suter & Gerteis AG)

Aktuell mit OM:
Aktuell erhält die Druckerei ein E-Mail mit einer Auftragsnummer. Auf einem FTP Server von OM steht unter dieser Auftragsnummer ein PDF mit den Briefen zur Verfügung. Die Druckerei nimmt das PDF und druckt dies auf Briefpapier, Einzahlungsvorlagen und falzt die Dokument und kann bei Bedarf auch in CVP Couverts verschicken.

Soll:
Die Druckerei ist da recht offen wie sie die Daten erhalten. Was die Druckerei benötigt:

  • PDF File (ohne Logo)
  • Auftrag
  • Empfänger E-Mail als Custom Content

Möglichkeiten:

  • PDF als Mail verschicken (wohl nicht so ideal, da recht gross)

  • PDF via hitobito als shared Link zur Verfügung stellen

    • Generieren on the fly oder als Dokument ablegen
    • Gültigkeit von Link festlegen
    • Dokument löschen wenn File abgeholt wurde
  • Index Seite auf welche die Druckerei zugreifen kann.

    • Notification als Mail an Druckerei, dass auf der Index Seite neue Druckaufträge zur Verfügung stehen.
    • Druckerei holt Dokument selbständig ab
  • Auftrag als Text Mail schicken

  • Auftrag als per Mail mit Auftrags PDF als Anhang schicken
    * Auftrag als Mail mit passendem XML als Anhang schicken

Noch zu klären

  • Wie können wir den Zugang/Link schützen? -> Basic Auth Login für Controler

  • Kann ich als Externer mit den Infos, welche bei Hitobito auf github sind, ein Druckauftrag generieren? -> Der Auftrag kann nur mit Login generiert werden. Per Mail wird nur eine Benachrichtigung, keine Links oder Daten gesendet.

  • Was ist alles auf dem Auftragsblatt vorhanden -> bei der Druckerei

  • Struktur vom XML -> bei der Druckerei

  • Welche Produkte -> CVP Stefan

Technische Umsetzung

  • Model: Assignment(person_id, title, description, state, attachment_id, attachment_type, created_at, updated_at), alle Felder must, übersetzt als Auftrag, attachment ist polymorph, i.d.R wird das eine spezifische Message sein, state ein enum -> Ungelesen, Gelesen
  • Auf Person Profil eigenes Tab mit Aufträge, Auftragsliste vorerst nur index und show. Separate new seite.
  • Auf der show Seite PDF Link zu dem Message Attachment (/messages/:id.pdf)
  • Der Assignment status wird von Neu zu Gelesen geupdated, sobald der adressierte Nutzer das assignments#show aufruft.
  • Auf der new Seite wird message_id per params übergeben, der Rest im formular gesetzt
  • Im messages#show einen "Druckauftrag stellen" Knopf anzeigen, solange der message status "Entwurf" ist. Dieser redirected zum assignments#new
  • wird ein neuer Auftrag erstellt, wird der Empfängerperson eine E-Mail gesendet
  • Das E-Mail verwendet ein Template aus CustomContent
  • Druckerei in die production seeds vom CVP Wagon aufnehmen, keine Rolle seeden
  • In den Wagon settings ein [:assignments][:enabled] Flag. Wenn false, wird der Assignment Tab und der "Druckauftrag stellen" Knopf ausgeblendet

Resultat

  • Druckerei kann alle Aufträge auf der eigenen Profilseite einsehen
  • Druckerei hat einen eigenen User Entry, Zugang mit E-Mail und Passwort

Die Idee ist das dieses Auftragsmodul später erweitert werden kann. Aufträge für andere Aufgaben wie Drucken; z.B. Reperaturauftrag

Post Verzeichnis importieren

  • Post PLZ Verzeichnis einlesen und in einfaches cvs files (Zips, Addressen, Nummern) überführen, Doku
  • Vereinfachte CVS files aggregieren und in Adressen überführen
  • Adressen in neuer Tabelle addresses (street_name, zip, numbers) ablegen
  • Sämtliche Address Felder importieren
  • Überprüfung der nicht zuordenbaren Adressen der CVP gegen das Postverzeichnis
  • Ggf. weitere Datensätze (Gebäude) aus Postfile als Adresse importieren

F02-15 Beim erfassen Adressenvervollständigung vornehmen (Ajax)

Im Ideallfall kann das mit Stimulus implementiert werden, Fortschritt Stimulus / Webpacker siehe hitobito/hitobito#996

  • Neuer Controller der Address Struktur (zip, street, number) versteht
  • onChange vom Feld (Address) entsprechende Einträge suchen und zurückliefern "Belpstrasse 36, 3005, Bern"
  • Falls Eintrag ausgewählt wird, restliche Felder abfüllen
  • Eingabe von ungültigen Addressen soll möglich sein

MESSAGES: Dynamische Elemente Logo und Absender im PDF Brief/Rechnung

Ist
Aktuell werden auf dem Brief ein hitobito Logo angezeigt und ein Standard Absender angezeigt.

Soll
Folgende Einstellungen/Informationen werden für den PDF Brief und Rechnung aus hitobito dynamisch aufgenommen:

Absender:

Kontaktangaben der jeweiligen Gruppe, wo der Brief generiert wurde.
Fallbackverhalten: Kontaktangaben vom Layer verwenden.

Falls weder auf der Gruppe noch auf dem Layer eine Kontaktangabe vorhanden ist, kann dies bei der Brieferstellung nicht ausgewählt werden (Checkbox)
Falls keine Adresse auf Gruppe und Layer vorhanden ist, wird einfach eine leere Box/Platzhalter gedruckt.

Logo:
Das Logo aus den jeweiligen Gruppeneinstellungen verwenden. Möglichkeit eigenes Logo unter Einstellungen pro Gruppe (https://cvp.puzzle.ch/groups/3/settings) hochladen. Fallbackverhalten: Logo vom Layer verwenden.
Falls auf der Gruppe kein Logo vorhaneden ist, kann dies bei der Brieferstellung nicht ausgewählt werden (Checkbox)
Falls kein Logo auf Gruppe und Layer vorhanden ist, wird einfach eine leere Box gedruckt.

Mockup

image

Techspec

  • Dateiupload für Brieflogo in den Gruppeneinstellungen, Carrier-Wave erstellen.
  • PDF-Generierung: Logo und Kontaktangabe einbinden
  • Brief erstellen / Rechnungsbrief erstellen: Logo und Kontaktangabe einbinden
  • Brieferstellen: Checkbox Briefkopf für Logo und Kontaktangaben

F03-02 Zusammenführen von doppelten Personen

Ausgangslage:
Es kommt vor, dass die Personen doppelt erfasst werden. Obwohl das Haupt E-Mail Feld einmalig ist, kann die gleiche Person mit einer Alternativen E-Mail Adresse zusätzlich erfasst werden.

Ziel:
Nach erfolgreicher Identifikation einer doppelt erfassten Person, kann diese zusammengeführt werden.

  • Eventuell finden via Filter (doublette)

Lösungsvarianten
1. Mehrfachauswahl -> Personen zusammenführen -> eventuel Modal Preview
2. Um eine Person zusammenzuführen kann auf der Person ein Merge durchgeführt werden. Als zweiter Schritt kann in der Aktion eine Person ausgesucht werden, mit welcher die Person gemerged wird. Die zweite Person wird als "winner" bezeichnet und bleibt bestehen.
3. Auf der Ansicht (PeopleView) gibt es eine neue Ansicht, welche die identifizierten Doubletten anzeigt. Direkt in dieser Ansicht können Personen zusammengeführt werden. In der Ansicht werden folgende Attribute angezeigt: Vorname, Name, Nickname, Company, Geburtsjahr, Ort

Berechtigung:

  • Nur nationaler Admin oder mit Layer_and_below_full sieht diese Merge-View
  • Voraussetzung für ein Merge ist Schreibrechte auf einer Person und Leserechte auf einer anderen Person

Merging:

  • Vor dem Zusammenführen wird ein Bestätigungsdialog angezeigt. Vorgang kann nicht rückgängig gemacht werden
  • Zusätzliche Daten werden auf der Zielperson ergänzt (Feld auf Person A ist gefüllt, Feld auf Person B ist leer)
  • Wiedersprüchliche Daten werden von der Zielperson behalten und nicht überschrieben (Feld ist sowohl bei Person A und B befüllt)
  • Leer Felder werden nicht übernommen (Feld bei Person A ist leer, bei Person B ist Feld gefüllt)
  • Rollen werden übernommen.
  • Weitere Telefonnummern und Mailadressen werden übernommen. -> je nach Aufwand
  • Zusätzlich kann ein Merge-Vorschlag auch ignoriert werden

Nicht übernommen werden zur Zeit:

  • Events (Participation)
  • Qualifikationen
  • Notizen
  • Rechnungen
  • Abo (subscriptions)
  • Verlauf (historie)
  • Beziehungen zu anderen Personen

doubletten

Korrespondenz Briefmodul

Ziel: Brief an gewisse definierte Personen schicken. Auswahl von Empfänger durch ein Abo. Beim Erstellen eines Briefs kann der Inhalt in einem WYSIWYG Editor (bold, Absatz, mit Logo) definiert werden. Der Absender ist auf dem Layer entsprechend definiert. Für die Erstellung können Platzhalter (Anrede, Name, Vorname) verwendet werden. Optional kann eine Rechnung angehängt werden. Der Brief kann als PDF generiert oder an die Druckerei übermittelt werden.

Voraussetzung:

  • Messages Model #84
  • ActionText

Brief

  • Briefe erstellen und Anzeigen #85
  • Platzhalter im Brief #85
  • Vorschau auf Brief #85
  • Brief Versand Vorbereiten #86
  • Brief als PDF generieren #88
  • F04-01 Vorlagen mit entsprechenden Gestaltungsmöglichkeiten #24
  • Bild im Editor #92
  • Platzhalter per Click einfügen #93 (Nice to have)

Integration Rechnung

  • Briefe mit Rechnungen #83 / #87
  • Erstellen der Sammelrechnung und Einzelrechnungen #90
  • Berechnung der Artikel Summe beim Formular ergänzen
  • Ev. Artikel in der PDF Rechnung anzeigen
  • Ev. Darstellung der Nachricht (show seite) anpassen

Integration CVP

  • Salutation Platzhalter hinzufügen #91

Versand

  • F04-05 Korrespondenz auf Personen und Firmen sichtbar, Kommunikationshistorie #28
  • F04-03 Anbindung an Druckerei (Suter & Gerteis AG) #26
  • F04-02 Serienbriefe erstellen und an lokalen Drucker übergeben #25
  • Optional: Briefe per EMail versenden #86
  • F04-04 Erzeugtes Schriftgut im System speichern #27

User Acceptance Test

  • Brief in Abo erstellen
  • Brief als PDF generieren
  • Brief an 20 Empfänger erstellen
  • Brief an 1'000 Empfänger erstellen
  • Brief an 100'00 Empfänger erstellen
  • Brief mit Rechnung generieren
  • Rechnung per Mail verschicken
  • Testbrief an Druckerei

F04-08 Vorlagen für Rechnungen/Mahnungen

Wir verwenden zur Zeit eine generische Vorlage, welche auf die Anforderungen angepasst werden kann. Natürlich sind Absender, Texte, etc pro Gruppe konfigurierbar.

Onlineportal (Option)

  • Kampagnen
  • Online portal (Erweiterung)
  • Kommunikationshistorie (Eintrage bei diversen )

Contactable Emails checken, `email:invalid` tag setzen

Umsetzung vorerst nur für Personen, sollte aber für Gruppen analog funktionieren

  • Neue Domain Klasse Contactable::EmailCheck
  • Primäre und Additional Emails via Truemail checken, tag email:invalid auf Contactable setzen
  • AdditionalEmail falls fehlerhaft auch Tag email:invalid versehen
  • Job Klasse die Contactable::EmailCheckJob der den Check auf einer Liste von contactables anwendet
  • Rake task people:check_emails der job für Personen Liste scheduled
  • Tags sollen auch wieder entfernt werden wenn Email gültig ist

F04-20 Absender per Parteieinheit

Der Versand erfolgt mit einer je Parteieinheit definierbaren Absenderbezeichnung.

Fragen:

  • Wo wird diese Absenderbezeichnung festgelegt?

Import Personen (1-Kontaktdaten)

  • Sämtliche nicht gelöschten Kontakte als Personen importieren.
  • Familienmitglieder mit gleicher Adresse zu einem Haushalt zusammenführen.
  • Telefonnummer importieren

Event Management (Option)

  • F05-05 Zusagen, Absagen sowie Teilnahmen erfassen (flag auf der Participation?)
  • F05-06 Beim Event anlegen Teilnehmer vorschlagen
  • F05-07 Einladungen via Email (PDF im Anhang) oder Brief verschicken
  • F05-08 Entsprechendes Template für Brief verwenden
  • F05-09 Event Reminder via Email (PDF im Anhang) oder Brief verschicken
  • F05-10 Entsprechendes Template für Event Reminder verwenden
  • Beim Event Einladungsliste vorschlagen (auf welcher Basis?, Rollen?)
  • Einladungen beim Event anzeigen (offen, zugesagt, abgesagt)
  • Zusagen und Absagen aufzeichnen und in Kommunikationshistorie verlinken
  • Frage ob sie mehrere Vorlagen für Events haben

Attribute auf der Person definieren

siehe PBS

  • title: string, nullable
  • website: string, nullable
  • correpondence_language: string, not null, default de, I18nEnum wie Gender im core
  • zivil_status: string, no null, default single, I18nEnum, so wie Gender im core

Zusammen mit Übersetzungen in den locale files

Automatische Meldungen abhängig vom Alter

Beispielsweise

  • Wenn junge person Mitglied wird -> Email an JungCVP
  • Wenn Person 60 wird -> Email an CVP 60 Plus
  • Wenn Person 35 wird -> Email an CVP (Ende Mitgliedschaft JungCVP)
  • beim anlegen von Rollen oder periodisch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.