Giter Site home page Giter Site logo

hitobito_cevi'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_cevi's People

Contributors

amaierhofer avatar bihorco36 avatar carlobeltrame avatar codez avatar daniel-illi avatar hupf avatar kronn avatar mtnstar avatar nchiapol avatar njaeggi avatar patrickuhlmann avatar rolandstuder avatar severinraez avatar thewalkingleek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hitobito_cevi's Issues

Umstellung der Berechtigung von mehreren Rollen von :layer_and_below_full auf :layer_full (2h)

Umstellung von einigen Berechtigungen

Betrifft konkret folgende Anpassungen:

Auf Layer Dacherband (nicht auf Mitgliederorganisationen)

  • Vorstand [layer_and_below_read -> layer_read]
    • Präsidium
    • Finanzverantwortliche/-r
    • Mitglied
  • Geschäftsstelle [layer_and_below_full -> layer_full]
    • Geschäftsleiter/-in
    • Angestellte/-r
    • Finanzverantwortliche/-r
  • Gremium [layer_and_below_read -> layer_read]
    • Leitung
    • Mitglied
    • Aktive/-r Kursleiter/-in

Log zeigt nicht mehr an, wer eine Änderung gemacht hat

Seit dem letzten Update ist im Log nicht mehr ersichtlich, wer etwas geändert hat (auch für mich als Admin). Das reduziert den Nutzen des Logs beträchtlich. Dazu steht auch nichts im Changelog und die Änderung ist bei uns definitiv unerwünscht. Entsprechend betrachten wir das als Bug. Könnt ihr das anschauen und korrigieren?

TN Liste soll Geburtsdatum enthalten 4h

  • Neue Spalte für Geburtsdatum
  • Sortierbar nach Geburtsdatum (jüngste/alteste)
  • Nur für Teilnehmerlisten notwendig.

Use case ist Ich will zu junge / zu alte Teilnehmer finden. Daher würde auch Jahrgang genügen, falls man das somit in den Core nehmen könnte.

Falls alle die Show_participation Zugriff haben, eh schon das Geburtsdatum sehen, dann bitte im Core umsetzen.

Todo

  • Abklären, ob Geburtstsdatum irgendewie spezielle geschützt ist.
  • Falls ja, dann mit Jubla / PBS und so klären

Spender-Schutz kann via Filter zum Teil umgangen werden

Wenn ich auf eine Spender Gruppe einen Filter nach der Rolle Spender anwende, ist die Resultat Menge nicht leer (es sind nur wenige Personen sichtbar, aber eigentlich sollten keine Personen sichtbar werden).

Auch ein Filter auf einer übergeordneten Ebene macht einzlene Personen mit Spender-Rollen sichtbar. Zudem wird die Spender-Rolle bei den Rollen in der Resultat-Liste des Filters angezeigt, selbst wenn ich nach einer anderen Rolle gesucht habe. (eine noch schwächere Version von cevi#12)

Beides scheinen kleinere Bugs.

Provisorische Anmeldung

Wir haben das Problem gefunden:

Die Person ist nur provisorisch bei dem Kurs angemeldet. Die Rolle wurde bei jedem Versuch korrekt vergeben: https://db.cevi.ch/groups/3/events/279/participations/12393

Da die Anmeldung nur provisorisch ist, taucht sie in der Liste der definitiven Teilnehmer nicht auf. Und dies eben auch, wenn sie weitere Rollen hat.

Da die Anmeldung ja darauf zielt, Teilnehmer zu sein, ist es vermutlich nicht sinnvoll, bei einer unterstützenden Rolle diese Anmeldung zu bestätigen. Allenfalls könnte es noch sinnvoll sein, die Anmeldung abzulehnen, da die Person durch die unterstützende Tätigkeit eben nicht mehr Teilnehmer ist. Oder eben nur die Person anzuzeigen und so zumindest mehrfache Rollenvergabe zu verhindern. In diesem Fall sollten aber die provisorischen Rollen nicht in der Liste auftreten.

Grundsätzlich sehe ich einen Konflikt zwischen den Rollen Teilnehmer und Küche (in diesem Fall), es betrifft aber vermutlich noch anderen Rollenpaare (wie Leitung und Teilnehmer).

Was ist hier inhaltlich die richtige Änderung?

Eine Warnung, dass die Person bereits provisorisch angemeldet ist?
Eine automatische Bestätigen der provisorischen Anmeldung?
Eine automatisches Löschen der provisorischen Anmeldung?
Die Person trotzdem in der Teilnehmerliste anzeigen, unabhängig von anderen Anmeldungen?
Ist jetzt vielleicht ein bisschen technisch aber wir müssen da eine der obenstehenden inhaltliche Anpassung vornehmen. Was würdet ihr erwarten, wenn ihr eine Person die provisorisch angemeldet ist als Helfer aufnehmt, was sollte dann passieren? Die provisorische Anmeldung löschen?

see cevi#41

Fehlerhaftes Handling der Kontakt-Adresse bei Kursbestätigung

Wir haben zwei Probleme bei der Kontaktadresse festgestellt:

  • Wenn die Kontaktperson bei Kursen eine Firma (bei uns den RV) eingetragen hat, so sollte die Adresse in der Bestätigung auch den Firmennamen enthalten. (Als z.B. Cevi Regionalverband ZH-SH-GL, Hans Mustermann v/o Musti, ....) Ohne Firmennamen ist ein Brief nicht zustellbar. Wichtig, es geht um den Fall, wo eine Firma eingetragen ist aber die Checkbox "Firma" NICHT gesetzt ist.
  • Wenn das Adressfeld mehrere Zeilen enthält, sollten die New-Line durch Komma ersetzt werden. (Postfach, Strasse), siehe auch auf untenstehendem Screenshot "Anmeldung an"

(Wir sehen dies als Bugs)

image

EINSTELLUNGEN: Mailto-Links nicht möglich

Aktuelles Verhalten

Unter Einstellungen > Texte können keine Mailto-Links mehr eingetragen werden.

Gewünschtes Verhalten

Mailto-Links sollen wieder eingetragen werden können.

Techspec

Neue Rolle "Sektionsadmin" (2h)

Die Ebene "Sektion" braucht eine Rolle "Administrator/-in" mit ":layer_and_below_full" (sonst können auf dieser Ebene keine Anlässe oder Abos angelegt und Filter gespeichert werden.)

Weitere Berechtigungsanpassungen in #2 #6

Feld-Umbenennung ("Beruf-Klasse")

Momentan besteht ja nur ein Feld "Beruf". Da eigentlich alle Cevi-TN aber noch in der Schule sind, macht diese Bezeichnung keinen Sinn.
Vorschlag:
Statt "Beruf" neu "Beruf/Klasse"

see cevi#33

TN Liste sortierbar nach Ortsgruppe 4h

Daher passt folgendes Issue nicht: Beachte: hitobito/hitobito_pbs#50 (ohne explizite Erwähnung von Sortierung)

Kurse bleiben auf Profil-Seite von Abgemeldeten TN aufgeführt

Zwei unserer Mitglieder haben sich letztes Jahr für einen Kurs an- und danach wieder abgemeldet. Der Kurs ist längst vorbei, wird aber auf ihrer Profil-Seite immer noch unter Anmeldung aufgeführt.

Betroffene Person z.B.: "Frisbii" aus STA.

(Wir sehen das als Bug)

Canceled Participations sollten nicht auf der person show view erscheinen.

Indikation von "zu jung" / "zu alt" bei TN Listen (12h)

Von der Cevi:

Die TN Listen sollten eine Markierung für zu Jung/zu Alt enthalten. Die zu jung Markierung bei
den Anmeldungen ist im Moment nicht für alle relevanten Personen
sichtbar. (Zu alt ist neue, da müssten wir die Definition noch klären.)

Anforderungen noch sehr unklar. Wir möchten aber ein Schätzung wie komplex das im Vergleich zu den anderen Issues ist.

JSON API für Person History / Alte Events Rollen (4h + 4h)

den Verlauf einer Person (groups/X/people/Y/history; oder via Query-String auf groups/X/people/Y auch alte Events und Rollen aktivieren lassen.)

Gemäss #14

@nchiapol Um was geht es euch? Geht es darum, grundsätzlich auch Ehemalige Rollen auffinden zu können. Wir hatten ähnliche Anliegen auch schon von der Jubla / Pfadi siehe: hitobito/hitobito#122

Varianten schätzen:

  • Person mit Rollenhistory gemäss Verlauf als JSON ausgeben.
  • Filter auf JSON API für
    • Rolle aktiv in Zeitraum X bis Y
    • Rolle neu im Zeitraum X bis Y
    • Rolle beendet im Zeitraum X bis Y
  • Zusätzlich GUI im Rollenfilter zu obenstehenden Möglichkeiten.

Coach Zugriffserweiterungen 2h

Die Rolle J+S Coach der Abteilungen braucht Zugriff auf die Anlässe (am
einfachsten wohl via :layer_and_below_full) sowie das Tab "Ausbildung"

neue API Endpunkte

Wir möchten via API auch JSON-Antworten für die

  • TN-Liste der Kurse: (groups/X/events/Y/participations)
  • den Verlauf einer Person (groups/X/people/Y/history; oder via Query-String auf groups/X/people/Y auch alte Events und Rollen aktivieren lassen.)

Produktionsrelease CEVI

Bitte beim Produktiven Release das Feature "Kursmarktplatz / Auswahl der Ausweichkurse" nicht aktivieren, das Feature ist grundsätzlich interessant wir brauchen allerdings für eine solche Erweiterung etwas Vorlaufzeit.

Ev. noch im Zusammenhang: #41

Testsystem Hintergrundfarbe ändern

Ist es möglich auf dem Testsystem der Cevi die Hintergrundfarbe zu ändern, damit wir Test und Produktiv System besser auseinander halten können?

Ceviblau: #0026ff oder ähnliches

see cevi#52

Eltern-Login

Von Seiten der Sektion Zürich kam der Wunsch nach einer Möglichkeit für Eltern um ihre Kindern zu verwalten, ohne für jedes Kind eine separate Mail-Adresse erstellen zu müssen. Das wir immer relevanter da immer mehr Ortsgruppen auch ihre Lageranmeldungen über die DB abwickeln.

Es existiert bereits ein entsprechendes Issue, das wohl mal gemeinsam angepackt werden könnte:
hitobito/hitobito#603

Neue Rolle in RV Gremium mit Lesezugriff auf TN Liste aller Kurse (4h)

Wir brauchen in den RV Gremien eine neue Rolle, die Lese-Zugang auf die TN-Liste alle Kurse hat.

Neue Rolle auf

  • Mitgliederorganisation::Gremium::Ausbildungmitglied

Berechtigung

  • layer__and_below_read
  • ability particpations_show, Anmeldungen_show (optional, wenn deutlicher Mehraufwand)

CEVI Migrations Probleme

Mit dem aktuellen Produktionsdump hatte ich folgendes Migrations Problem

== 20190423122721 CreateDoorkeeperTables: migrating ===========================
-- create_table(:oauth_applications)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'oauth_applications' already exists: CREATE TABLE `oauth_applications` (`id` int(11) auto_increment PRIMARY KEY, `name` varchar(255) NOT NULL, `uid` varchar(255) NOT NULL, `secret` varchar(255) NOT NULL, `redirect_uri` text NOT NULL, `scopes` varchar(255) DEFAULT '' NOT NULL, `confidential` tinyint(1) DEFAULT 1 NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL) ENGINE=InnoDB
/home/ama/dev/pzl/hitobito/hitobito/db/migrate/20190423122721_create_doorkeeper_tables.rb:3:in `change'

Laut db:migrate:status ist die Migration noch nicht gelaufen, die Tabelle existiert aber bereits

  down    20190423122721  Create doorkeeper tables

Diese Problem muss vor dem nächsten Produktions Release behoben werden, damit der Release sauber durchlaufen kann.

Geändert und Log stimmen nicht überein

Wir haben schon 2 Fälle wo die Log-Einträge nicht mit geändert auf der Ansicht Info einer Person übereinstimmen

Bei mindestens einem Kontakt (Rajona, HOM) steht aktuell

Erstellt
24.09.2014 15:14 [...] Cleo (Geschäftsstelle)
Geändert
23.03.2018 08:13 Nicolas [...]
der letzte Log Eintrag ist:

Dienstag, 13. März 2018, 15:22 Uhr
von [...] / Sima

Gleiches geht auch andersum (das heisst, Log ist älter):
Ich habe mir soeben eine neue Rolle in JS Bäretswil gegeben.
Geändert 04.06.2018 13:50 Matthias Busenhart / Scirocco
und im Log:
Dienstag, 19. Juni 2018, 18:44 Uhr von Matthias Busenhart / Scirocco Rolle Materialverantwortliche/-r (Vermietung) in JS Bäretswil wurde hinzugefügt.

see cevi#43

Rechtschreibefehler

Meldung eines Benutzers:
Ich bin zufällig über einen kleinen Tippfehler in der Cevi-DB gestossen. Im Dropdownfeld "Konfession" bei den Personendaten müsste die entsprechende Auswahl "Konfessionslos" statt "Konfessionlos" lauten (i.e. müsste ein 's' mehr haben).

see cevi#37

Zugriffsschutz auf Spender funktioniert nicht mehr

Wohl schon seit einiger Zeit funktioniert der Zugriffsschutz auf Spender nicht mehr. Gemäss ursprünglicher Anforderung, darf nur die Rolle "Spenderverwalter" die Mitglieder einer Spendergruppe sehen.
Aktuell sehe ich aber einen Teil der Spendergruppe auch ohne diese Rolle. Ich gehe davon aus, das liegt daran, dass ich diese Personen auch sonst sehen würde. Das ist aber nicht was wir wollten oder urprünglich implementiert hatten. Entsprechend ist das ein Bug und sollte möglichst bald korrigiert werden.

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.