controllers

package
v0.0.0-...-151ce6e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2020 License: MIT Imports: 35 Imported by: 0

Documentation

Overview

Ce package expose l'objet de contrôle abstrait, responsable du lancement, du chargement de la base, et du lien entre les interfaces. Il est destiné à ettayer une application graphique.

Index

Constants

View Source
const (
	DonsCourants = "courants"
	DonsTous     = "tous"
	DonsAnnee    = "annee"
)
View Source
const (
	HistoriqueCamp rd.Field = iota
	HistoriqueAnnee
	HistoriqueRole
)
View Source
const (
	RoleEquipe  = "_E"
	RoleInscrit = "_I"
	RoleAttente = "_A"

	LienResposEtParticipants = "part_resp" // participants + respos
	LienRespos               = "resp"      // respos uniquement
)
View Source
const (
	// Relative path to local folder. May be used for temporary documents.
	LocalFolder        = "local/"
	LogginSettingsPath = LocalFolder + "init.json"
	BasePath           = LocalFolder + "DB.json"
)
View Source
const (
	ButtonActivated = EtatSideButton(2)
	ButtonPresent   = EtatSideButton(1)
)
View Source
const (
	EndpointInscription = "/inscription/"
)

Variables

View Source
var (
	HeadersPUBLIPOSTAGE = []rd.Header{
		{Label: "Num Client"},
		{Field: dm.PersonneSexe, Label: "Civilité"},
		{Field: dm.PersonneNom, Label: "nom"},
		{Field: dm.PersonnePrenom, Label: "Prénom"},
		{Label: "Société"},
		{Field: publiAdresse, Label: "Adresse 1"},
		{Field: publiAdresse + 1, Label: "Adresse 2"},
		{Field: publiAdresse + 2, Label: "Adresse 3"},
		{Field: dm.PersonneCodePostal, Label: "Code postal"},
		{Field: dm.PersonneVille, Label: "Ville"},
		{Field: publiNbExemplaires, Label: "Nombre d'exemplaires"},
		{Field: dm.PersonnePays, Label: "Pays"},
		{Label: "Message 1"},
		{Label: "Message 2"},
	}
	HeadersMAILCHIMP = rd.HeadersMails
	HeadersMAILS     = []rd.Header{
		{},
	}
	HeadersPORTABLES = []rd.Header{
		{},
	}
	HeadersCOTISATIONS = []rd.Header{
		{Field: 0, Label: "Personne"},
		{Field: 1, Label: "Membre ?"},
	}
)
View Source
var HeaderDonImported = []rd.Header{
	{Field: dm.DonDonateur, Label: "Donateur"},
	{Field: dm.DonDateReception, Label: "Effectué le"},
	{Field: dm.DonValeur, Label: "Montant"},
	{Field: dm.LastField + 1, Label: "ID HelloAsso"},
}
View Source
var (
	HeadersBilanFinancier = []rd.Header{
		{Field: bfNom, Label: "Camp"},
		{Field: bfDirecteur, Label: "Directeur"},
		{Field: bfLieu, Label: "Lieu"},
		{Field: bfDuree, Label: "Durée (jours)"},
		{Field: bfAnimation, Label: "Animateurs"},
		{Field: bfTechnique, Label: "Equipe technique"},
		{Field: bfInscrits, Label: "Inscrits"},
		{Field: bfPrixBase, Label: "Prix (sans option)"},
		{Field: bfRemisesSpeciales, Label: "Réductions spéciales"},
		{Field: bfRemisesPourcent, Label: "Réductions équipiers / enfants"},
		{Field: bfTotalAides, Label: "Aides extérieures (CAFs, CE, etc...)"},
		{Field: bfTotalDemande, Label: "Montant demandé"},
		{Field: bfTotal, Label: "Budget total"},
	}
)
View Source
var HeadersResponsables = []rd.Header{
	{Field: dm.ParticipantRespoNom, Label: "Nom"},
	{Field: dm.ParticipantRespoPrenom, Label: "Prénom"},
	{Field: dm.ParticipantRespoMail, Label: "Mail"},
	{Field: dm.ParticipantRespoTelsLines, Label: "Téléphones"},
	{Field: dm.ParticipantRespoAdresse, Label: "Adresse"},
	{Field: dm.ParticipantRespoCodePostal, Label: "Code postal"},
	{Field: dm.ParticipantRespoVille, Label: "Ville"},
}

Functions

func HasId

func HasId(l rd.Table, id rd.IId) bool

func JobCreeAide

func JobCreeAide(aide rd.Aide) (rd.Aide, error)

JobCreeAide demande au serveur l'ajout de l'aide. Peut être utilisé de manière synchrone. Sinon, préférer `CreeAide`

func LoadMiniatures

func LoadMiniatures(idDocs rd.Ids) (map[int64][]byte, error)

LoadMiniatures demande au serveur les miniatures associés aux ids fournis. Devrait être utilisée dans une goroutine.

func RemoveItem

func RemoveItem(l rd.Table, index int) rd.Table

func ToIds

func ToIds(l rd.Table) rd.Ids

Types

type Aides

type Aides struct {
	Onglet OngletAides

	Liste     rd.Table
	Header    []rd.Header
	Base      *dm.BaseLocale
	Etat      EtatAides
	EditRight bool // Droit d'édition/ajout/suppression
	// contains filtered or unexported fields
}

func NewAides

func NewAides(main *MainController, permission int) *Aides

func (*Aides) CreeAide

func (c *Aides) CreeAide(aide rd.Aide)

CreeAide crée une nouvelle aide de manière asynchrone, sur le serveur

func (*Aides) CreeStructureaide

func (c *Aides) CreeStructureaide(strucAide rd.Structureaide) (dm.AccesStructureaide, bool)

CreeStructureaide crée une nouvelle structure sur le serveur, SYNCHRONE

func (*Aides) ExportAides

func (c *Aides) ExportAides() string

func (*Aides) GetStats

func (c *Aides) GetStats() []Stat

StatsAides renvoi les statistiques courantes

func (Aides) Main

func (c Aides) Main() *MainController

Main expose le controller principal

func (*Aides) Reset

func (c *Aides) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*Aides) ResetRender

func (c *Aides) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*Aides) SelectAide

func (c *Aides) SelectAide(aide dm.AccesAide)

SelectAide sélectionne l'aide donnée, en remettant à zéro la recherche si nécessaire.

func (*Aides) SideButtons

func (c *Aides) SideButtons() ButtonsAides

func (*Aides) SupprimeAide

func (c *Aides) SupprimeAide(idAide int64)

SupprimeAide supprime l'aide de manière asynchrone, sans confirmation

func (*Aides) SupprimeAideCourante

func (c *Aides) SupprimeAideCourante()

SupprimeAideCourante supprime l'aide courante, après confirmation

func (*Aides) SupprimeStructureaide

func (c *Aides) SupprimeStructureaide(idStructure int64) bool

SupprimeStructureaide supprime la structure, après confirmation

func (*Aides) UpdateAide

func (c *Aides) UpdateAide(aide rd.Aide)

UpdateAide met à jour de manière synchrone l'aide transmise sur le serveur

func (*Aides) UpdateStructureaide

func (c *Aides) UpdateStructureaide(structAide rd.Structureaide)

UpdateStructureaide met à jour la structure transmise sur le serveur

type Background

type Background interface {
	Run(job func() (interface{}, error), onSuccess func(_out interface{}))
}

Background offre un thread d'éxécution en arrière plan. `Run` doit afficher un message d'erreur si une tâche est déjà en cours. `job` est effectué dans un thread séparé, `onSuccess` dans le thread principal. Si `job` renvoie une erreur non nil, elle est affichée. Sinon, la valeur de retour de `job` est passée en argument à `onSuccess`

type ButtonsAides

type ButtonsAides struct {
	Creer, AfficherStructures, Supprimer, Documents, Exporter EtatSideButton
}

type ButtonsCamps

type ButtonsCamps struct {
	CreerParticipant, SupprimerParticipant, ChangerParticipant, VerifieAttente, ExporterParticipants EtatSideButton
}

type ButtonsDons

type ButtonsDons struct {
	Creer, Supprimer, EditerRecus, ExporterListe, ImportHelloasso EtatSideButton
}

type ButtonsEquipiers

type ButtonsEquipiers struct {
	Creer, Supprimer, Exporter EtatSideButton
}

type ButtonsInscriptions

type ButtonsInscriptions struct {
	Supprimer, Valider, LoadLog EtatSideButton
}

type ButtonsPaiements

type ButtonsPaiements struct {
	Cree, Supprimer, ExportBordereau EtatSideButton
}

type ButtonsPersonnes

type ButtonsPersonnes struct {
	Creer, AfficherCriteres, AfficherDocuments, Supprimer EtatSideButton
}

type ButtonsSuiviCamps

type ButtonsSuiviCamps struct {
	Creer, Supprimer, AfficherJoomeo, BilanFinancier, LienSondages EtatSideButton
}

type ButtonsSuiviDossiers

type ButtonsSuiviDossiers struct {
	Creer, Supprimer, EnvoiDocuments, Alertes EtatSideButton
}

type CacheGroupes

type CacheGroupes map[int64]rd.Ids

func (CacheGroupes) PromoteMessages

func (c CacheGroupes) PromoteMessages(messages []dm.PseudoMessage) []PseudoMessage

type Camps

type Camps struct {
	Onglet OngletCamps

	ListeCamps     rd.Table
	ListeInscrits  rd.Table
	ListeAttente   rd.Table
	HeaderInscrits []rd.Header
	HeaderAttente  []rd.Header
	Base           *dm.BaseLocale
	Etat           EtatCamps

	// Droit d'édition/ajout participant,
	// Droit de modification partielle des infos du camp
	ParticipantsRight, CampsRight bool
	// contains filtered or unexported fields
}

func NewCamps

func NewCamps(main *MainController, permission int) *Camps

func (*Camps) ChangeCamp

func (c *Camps) ChangeCamp(idCamp int64)

ChangeCamp effectue les vérifications puis change le participant courant de camp, de manière SYNCHRONE.

func (*Camps) CheckListeAttentes

func (c *Camps) CheckListeAttentes() (inscrits, attentes []DiagnosticListeAttente)

CheckListeAttentes compare les listes d'attentes réelles avec celles calculées automatiquement et émet un diagnostic en camp de différence :

  • optionnel, pour les participants déjà en liste principal
  • impératif, pour les participants encore en liste d'attente

func (*Camps) CreeParticipant

func (c *Camps) CreeParticipant(participant rd.Participant)

CreeParticipant ajoute le participant donné, après vérification

func (*Camps) CreeParticipantsimple

func (c *Camps) CreeParticipantsimple(participant rd.Participantsimple)

CreeParticipantsimple ajoute un participant au camp donné.

func (*Camps) ExportParticipants

func (c *Camps) ExportParticipants(bus rd.Bus, triGroupe, showAttente bool) (filepath string)

func (*Camps) ExportSuiviFinancier

func (c *Camps) ExportSuiviFinancier(camp int64) string

func (*Camps) GetStats

func (c *Camps) GetStats() (out []Stat)

func (Camps) Main

func (c Camps) Main() *MainController

Main expose le controller principal

func (*Camps) MoveToInscrits

func (c *Camps) MoveToInscrits(id rd.IId)

MoveToInscrits effectue les vérifications, puis demande propose d'envoyer un mail de notification. La rotation `_attente` -> `_attente_reponse` -> `_campeur` est appliquée. Si `notifie` vaut `false` ou si le participant n'a pas de dossier, le rôle `_attente_reponse` est sauté. La participant peut être placé manuellement en `_attente_reponse` sans envoyer de mail en modifiant son rôle directement.

func (*Camps) Reset

func (c *Camps) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*Camps) ResetRender

func (c *Camps) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*Camps) SelectCamp

func (c *Camps) SelectCamp(camp int64)

SelectCamp sélectionne le camp donné

func (*Camps) SelectParticipant

func (c *Camps) SelectParticipant(part dm.Inscrit)

SelectParticipant sélectionne le participant donné, en changeant le camp courant si nécessaire.

func (*Camps) SideButtons

func (c *Camps) SideButtons() ButtonsCamps

func (*Camps) SupprimeParticipant

func (c *Camps) SupprimeParticipant(part dm.AccesParticipant, synchrone bool)

SupprimeParticipant demande la suppression au serveur, après avoir averti l'utilisateur. Effectue un reset général.

func (*Camps) SupprimeParticipantCourant

func (c *Camps) SupprimeParticipantCourant()

func (*Camps) UpdateCamp

func (c *Camps) UpdateCamp(camp rd.Camp)

UpdateCamp met à jour le profil transmis sur le serveur

func (*Camps) UpdateParticipant

func (c *Camps) UpdateParticipant(part rd.Participant) *dm.AccesParticipant

UpdateParticipant met à jour de profil transmis sur le serveur, de manière SYNCHRONE. Gère l'erreur et la modification de la base locale.

func (*Camps) UpdateParticipantsimple

func (c *Camps) UpdateParticipantsimple(part rd.Participantsimple) *dm.AccesParticipantsimple

UpdateParticipantsimple met à jour de profil transmis sur le serveur, de manière SYNCHRONE. Gère l'erreur et la modification de la base locale.

type ChoixEnvoi

type ChoixEnvoi int
const (
	NoEnvoi ChoixEnvoi = iota
	Envoi
	EnvoiEtBascule
)

type CritereAttente

type CritereAttente string
const (
	Indifferent CritereAttente = ""
	// n'affiche pas les dossiers uniquement composé d'inscrits
	MasquerNoAttente CritereAttente = "need_attente"
	// n'affiche pas les dossiers uniquement composé d'attentes
	MasquerOnlyAttente CritereAttente = "need_inscrit"
)

type CritereRecherche

type CritereRecherche struct {
	Personne    CriteresRecherchePersonne
	Participant CriteresRechercheParticipant
}

type CriteresRechercheDonateur

type CriteresRechercheDonateur struct {
	AnneeDon   int
	IsRemercie rd.OptionnalBool
}

type CriteresRechercheParticipant

type CriteresRechercheParticipant struct {
	Annee            map[int]bool
	Periode          string
	Role             string // rd.Role or special value
	LiensResponsable string // valide pour un inscrit/attente
}

type CriteresRecherchePersonne

type CriteresRecherchePersonne struct {
	Age           *[2]int // min max
	Departement   rd.Departement
	MembreAsso    rd.RangMembreAsso
	EchoRocher    rd.OptionnalBool
	Eonews        rd.OptionnalBool
	PubEte        rd.OptionnalBool
	PubHiver      rd.OptionnalBool
	VersionPapier rd.OptionnalBool
	HasDocument   rd.BuiltinContrainte
}

CriteresRecherchePersonne représente une recherche détaillée Un critère zero est ignoré

type DiagnosticListeAttente

type DiagnosticListeAttente struct {
	Participant dm.AccesParticipant
	Hint        rd.StatutAttente
}

type DocumentCamp

type DocumentCamp interface {
	FileName() string
	// contains filtered or unexported methods
}

DocumentCamp est soit `DynamicDocument` soit `RegisteredDocument`

func GetDocuments

func GetDocuments(ac dm.AccesCamp) (out []DocumentCamp)

GetDocuments renvoie les metas de chaque document disponible. Si plusieurs lettres sont présentes dans la base, elles sont toutes renvoyées. Renvois systématiquement les pièces jointes additionnelles. L'attribut `Locked` est ignoré

type Dons

type Dons struct {
	Onglet OngletDons

	Liste     rd.Table
	Header    []rd.Header
	Base      *dm.BaseLocale
	Etat      EtatDons
	EditRight bool // Droit d'ajout/edition/suppression
	// contains filtered or unexported fields
}

func NewDons

func NewDons(main *MainController, permission int) *Dons

func (*Dons) ChargeDonsHelloasso

func (c *Dons) ChargeDonsHelloasso() DonsImported

ChargeDonsHelloasso charge et renvoie les dons de l'API HelloAsso.

func (*Dons) CreeDon

func (c *Dons) CreeDon(don apiserver.CreateDonIn)

CreeDon enregistre le nouveau don sur le serveur

func (*Dons) EditeRecusFiscaux

func (c *Dons) EditeRecusFiscaux(params dm.OptionsRecuFiscal) string

EditeRecusFiscaux lance l'édition des reçus fiscaux et des étiquettes, de manière SYNCHRONE.

func (*Dons) ExporteListe

func (c *Dons) ExporteListe(avecCoordonnees bool) string

ExporteListe enregistre la liste courante des dons au format Excel, et renvoie le chemin du document.

func (*Dons) GetStats

func (c *Dons) GetStats() []Stat

GetStats renvoi le total des dons, pour les personnes et pour les organismes pour le critère courant.

func (*Dons) IdentifieDonHelloasso

func (c *Dons) IdentifieDonHelloasso(don apiserver.DonDonateur, target matching.IdentifieTarget)

IdentifieDonHelloasso crée un nouveau don et identifie son donateur, en créant si demandé un nouveau profil, de manière asynchrone.

func (Dons) Main

func (c Dons) Main() *MainController

Main expose le controller principal

func (*Dons) PossibleYears

func (c *Dons) PossibleYears() []int

func (*Dons) Reset

func (c *Dons) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*Dons) ResetRender

func (c *Dons) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*Dons) SideButtons

func (c *Dons) SideButtons() ButtonsDons

func (*Dons) SupprimeDon

func (c *Dons) SupprimeDon()

SupprimeDon supprime le don courant, sans demander de confirmation

func (*Dons) UpdateDon

func (c *Dons) UpdateDon(don apiserver.CreateDonIn)

UpdateDon met à jour les profils transmis sur le serveur

type DonsImported

type DonsImported []apiserver.DonDonateur

func (DonsImported) Table

func (ds DonsImported) Table() rd.Table

type DossierError

type DossierError struct {
	Fac, Err string
}

DossierError résume l'erreur rencontrée pendant l'envoi de messages

type DynamicDocument

type DynamicDocument struct {
	documents.DynamicDocument
}

type Equipiers

type Equipiers struct {
	Onglet OngletEquipiers

	Liste     rd.Table
	Header    []rd.Header
	Base      *dm.BaseLocale
	Etat      EtatEquipiers
	EditRight bool // Droit de modification et de validation
	// contains filtered or unexported fields
}

Equipiers permet de valider les équipiers temporaires, et d'accéder aux renseignements administratifs. Les documents sont accessibles via l'Onglet Personnes. Les documents temporaires ne sont pas accessibles directement.

func NewEquipiers

func NewEquipiers(main *MainController, permission int) *Equipiers

func (*Equipiers) CreateEquipier

func (c *Equipiers) CreateEquipier(equipier rd.Equipier) bool

CreateEquipier crée un nouvel `equipier`, ayant des champs idPersonne et idCamp valides Renvoie `true` si la modification a été lancée

func (*Equipiers) ExportEquipiers

func (c *Equipiers) ExportEquipiers() string

ExportEquipiers génère la liste des équpiers courant au format excel et renvoi le chemin du fichier créé.

func (*Equipiers) GetStats

func (c *Equipiers) GetStats() []Stat

GetStats renvoi les statistiques courantes

func (*Equipiers) IdentifieTmp

func (c *Equipiers) IdentifieTmp(target matching.IdentifieTarget)

IdentifieTmp identifie l'équipier courant avec la personne fournie. Si `cree` vaut `true`, la personne est créée.

func (Equipiers) Main

func (c Equipiers) Main() *MainController

Main expose le controller principal

func (*Equipiers) Reset

func (c *Equipiers) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*Equipiers) ResetRender

func (c *Equipiers) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*Equipiers) SideButtons

func (c *Equipiers) SideButtons() ButtonsEquipiers

func (*Equipiers) SupprimeEquipier

func (c *Equipiers) SupprimeEquipier()

SupprimePersonne supprime l'équipier courant. S'il est temporaire, la personne et les documents liés sont aussi supprimés.

func (*Equipiers) UpdateEquipier

func (c *Equipiers) UpdateEquipier(equipier rd.Equipier)

UpdateEquipier met à jour le profil transmis sur le serveur. La modification des champs de la personne se fait via l'onglet "Personnes"

type EtatAides

type EtatAides struct {
	AideCurrent   rd.IId
	Recherche     string
	CritereCamp   rd.OptionnalId
	CritereValide rd.OptionnalBool
}

type EtatCamps

type EtatCamps struct {
	CampCurrent         rd.IId
	ShowCampsTerminated bool

	IdParticipant rd.IId // simple ou complet
}

type EtatDons

type EtatDons struct {
	DonCurrent   rd.IId
	Recherche    string
	CritereEmis  rd.OptionnalBool
	CritereAnnee int
	// Sélection du donateur
	// Oui: uniquement organismes, Non: uniquement personne, Indiff: tous
	CritereOrganismes rd.OptionnalBool
}

type EtatEquipiers

type EtatEquipiers struct {
	EquipierCurrent rd.IId
	CritereCamp     *dm.AccesCamp
	// 0 pour tous, 1 pour temporaire, -1 pour référencés
	CritereTemporaire rd.OptionnalBool
	Recherche         string
}

type EtatInscriptions

type EtatInscriptions struct {
	InscriptionCurrent rd.IId
	Recherche          string
	CritereIsFolded    bool // si true InscriptionCurrent sera le responsable
	CriteresTri        dm.CriteresTri
}

type EtatPaiements

type EtatPaiements struct {
	PaiementCurrent          rd.IId
	CriterePaiementValide    rd.OptionnalBool
	CriterePaiementBordereau rd.Time
	CriterePaiementFacture   rd.OptionnalId
	CritereFactureCamp       rd.IId
	CritereFactureAcquittee  rd.OptionnalBool
}

type EtatPersonnes

type EtatPersonnes struct {
	ItemCurrent           rd.IId // personne ou organisme
	Recherche             string
	CriteresTri           dm.CriteresTri
	CritereShowTemporaire rd.Bool
	CritereShowOrganismes rd.OptionnalBool // oui = orga seul, non = personnes seul, indif = tous
}

type EtatSideButton

type EtatSideButton int

EtatSideButton vaut 0 pour absent, 1 pour désactivé, 2 pour activé

type EtatSuiviCamps

type EtatSuiviCamps struct {
	CampCurrent         rd.IId
	CritereIgnoreClosed bool             // seulement camps ouverts
	CritereTerminated   rd.OptionnalBool // non terminés, les deux, terminés)
}

type EtatSuiviDossiers

type EtatSuiviDossiers struct {
	FactureCurrent rd.IId         // uniquement dossier
	MessageCurrent rd.OptionnalId // message affiché
	Recherche      string
	CriteresTri    dm.CriteresTri
	CritereCamp    rd.OptionnalId
	CritereAcquite rd.Completion
	CritereAttente CritereAttente
}

type GUIMonitor

type GUIMonitor interface {
	OnSuccess(index int)
	OnError(index int, err string)
}

type Inscriptions

type Inscriptions struct {
	Onglet OngletInscriptions

	Liste     []rd.ItemChilds
	Header    []rd.Header
	Base      *dm.BaseLocale
	Etat      EtatInscriptions
	EditRight bool // Droit de modification et de validation, droit de "dé-validation"
	// contains filtered or unexported fields
}

Inscriptions permet de valider les nouvelles inscriptions.

func NewInscriptions

func NewInscriptions(main *MainController, permission int) *Inscriptions

func (*Inscriptions) AsAcces

func (c *Inscriptions) AsAcces(id rd.IId) dm.Personne

AsAcces construit un accès à partir de `id` (participant, participantsimple ou facture)

func (*Inscriptions) CurrentInfo

func (c *Inscriptions) CurrentInfo() string

CurrentInfo renvoie le message (éventuel) de l'inscription courante

func (*Inscriptions) GetStats

func (c *Inscriptions) GetStats() []Stat

GetStats renvoi les statistiques courantes

func (*Inscriptions) Identifie

func (c *Inscriptions) Identifie(target matching.IdentifieTarget)

Identifie identifie l'inscription courante contre la personne donnée.

func (*Inscriptions) LoadLogInscriptions

func (c *Inscriptions) LoadLogInscriptions() rd.Inscriptions

func (Inscriptions) Main

func (c Inscriptions) Main() *MainController

Main expose le controller principal

func (*Inscriptions) RejouerInscription

func (c *Inscriptions) RejouerInscription(insc rd.Inscription) bool

RejouerInscription envoie une requête sur l'url d'inscription publique La base locale doit être raffraichie pour prendre en compte le résultat

func (*Inscriptions) Reset

func (c *Inscriptions) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*Inscriptions) ResetRender

func (c *Inscriptions) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*Inscriptions) SideButtons

func (c *Inscriptions) SideButtons() ButtonsInscriptions

func (*Inscriptions) SupprimeInscription

func (c *Inscriptions) SupprimeInscription()

SupprimeInscription supprime le groupe d'inscription courante après confirmation

func (*Inscriptions) Valide

func (c *Inscriptions) Valide()

Valide valide le groupe d'inscription courant, de manière synchrone, puis propose l'envoi d'un accusé de réception.

type Launcher

type Launcher interface {
	ShowError(err error)
	InitRessources()

	ShowUpdate(controller *MainController) LoadMode

	ShowChangelog()

	InitLoggin(controller *MainController)
	ShowLogginError(cause string) (loadLocal bool)

	// empty keep means quit
	SetUsersAndChoose([]rd.ClientUser, map[int64]string) (userId int64, password string, mods *rd.Modules, keep LoadMode)
}

type LoadMode

type LoadMode int8
const (
	Quit LoadMode = iota
	LoadLocal
	LoadRemote
)

type MainApp

type MainApp interface {
	MonitorLoadDB(c *MainController)
}

type MainController

type MainController struct {
	Controllers controllerPool
	Base        *dm.BaseLocale
	ShowError   func(err error)
	// Has to be thread safe
	ShowStandard func(msg string, wait bool)
	Background   Background
	// contains filtered or unexported fields
}

func (MainController) CheckPassword

func (c MainController) CheckPassword(userId int64, password string) (*rd.Modules, error)

CheckPassword renvoie true si le mot de passe est bon. Le cas échéant, la partie graphique peut se lancer, puis charger la base de données.

func (*MainController) CheckUpdate

func (c *MainController) CheckUpdate(monitor monFunc) (restartNeeded bool, err error)

CheckUpdate implémente un système d'auto-update

func (*MainController) CreeUploadDocument

func (c *MainController) CreeUploadDocument(docPath string, doc rd.Document, target rd.TargetDocument, monitor func(uint8))

func (*MainController) DownloadDocument

func (c *MainController) DownloadDocument(idDoc int64, monitor func(uint8)) string

DownloadDocument télécharge un document depuis la base de données, l'enregistre dans le dossier "local" et renvoie le chemin.

func (*MainController) GenereExportDocument

func (m *MainController) GenereExportDocument(meta documents.DynamicDocument) string

GenereExportDocument génère la facture au format .pdf, l'enregistre dans local, et renvoie le chemin. Les aides et paiements invalides ne sont pas affichés.

func (*MainController) InitControllers

func (c *MainController) InitControllers(modules rd.Modules)

func (*MainController) LoadBaseFromDisk

func (c *MainController) LoadBaseFromDisk() error

LoadBaseFromDisk charge et décode la sauvegarde du disque, au format .json Le pointer `Base` est mis à jour. En cas d'erreur, les dictionnaires de la base sont quand même initialisés.

func (*MainController) LoadBaseFromServer

func (c *MainController) LoadBaseFromServer(progressMonitor func(i uint8))

LoadBaseFromServer requiert la base local sur le serveur, au format .json.gz La réponse est décompressée et décodée. Met à jour les controllers et enregistre sur le disque en cas de succès.

func (*MainController) LoadPartialBaseFromServer

func (c *MainController) LoadPartialBaseFromServer(progressMonitor func(i uint8))

LoadPartialBaseFromServer demande le hash de la base au serveur, le compare avec la base courante, et télécharge les différences, Met à jour les controllers et enregistre sur le disque en cas de succès.

func (MainController) LogsJoomeo

func (c MainController) LogsJoomeo() logs.Joomeo

func (*MainController) NotifieDirecteur

func (c *MainController) NotifieDirecteur(to, html string)

NotifieDirecteur envoie un mail (asynchrone)

func (*MainController) ResetAllControllers

func (c *MainController) ResetAllControllers()

func (MainController) Restart

func (c MainController) Restart() error

Restart start a new program. The main function should be quit as soon as possible. An error is returned if the launch wasn't successful

func (*MainController) SaveFile

func (c *MainController) SaveFile(doc []byte, filename string) string

SaveFile enregistre un document dans le dossier "local" et renvoie le chemin. S'occupe de gérer une potentielle erreur

func (*MainController) StartLoggin

func (c *MainController) StartLoggin(l Launcher) (rd.Modules, LoadMode)

StartLoggin se charge des opérations d'identification et chargement des données

func (*MainController) SupprimeDocument

func (c *MainController) SupprimeDocument(id int64)

SupprimeDocument supprime le document de manière synchrone

func (*MainController) UpdateDocument

func (c *MainController) UpdateDocument(doc rd.Document) *rd.Document

func (*MainController) UploadDocument

func (c *MainController) UploadDocument(docPath string, idDoc int64, monitor func(uint8)) *rd.Document

type ModeExport

type ModeExport int
const (
	ExportDEFAULT ModeExport = iota
	ExportPUBLIPOSTAGE
	ExportMAILCHIMP
	ExportMAILS
	ExportPORTABLES
	ExportCOTISATIONS
)

func (ModeExport) Description

func (m ModeExport) Description() string

Description renvoie une explication détaillée.

type OngletAides

type OngletAides interface {
	ConfirmeSupprimeAide(dm.AccesAide) bool
	ConfirmeSupprimeStructureaide(msg string) bool
	// contains filtered or unexported methods
}

type OngletCamps

type OngletCamps interface {
	ConfirmeNotifPlaceLiberee(info string) (keep bool, notifie bool)
	ConfirmeAjoutParticipant(camp dm.AccesCamp, personne rd.Personne, causes []string) bool
	ConfirmeSupprimeParticipant(msg string) bool
	// contains filtered or unexported methods
}

type OngletDons

type OngletDons interface {
	ConfirmeForceRecuFiscal(don dm.AccesDon) bool
	// contains filtered or unexported methods
}

type OngletEquipiers

type OngletEquipiers interface {
	ChoixEviteDoublonsDocuments(docs []dm.AccesDocumentPersonne) (toSupp rd.Ids)
	ConfirmeSupprimeEquipier(part rd.Personne) bool
	// contains filtered or unexported methods
}

type OngletInscriptions

type OngletInscriptions interface {
	ConfirmeSupprimeDossier(facture dm.AccesFacture) bool
	ConfirmeValideMailInvalide(msg string) bool
	DemandeEnvoiAccuseReception(respo rd.Personne) ChoixEnvoi
	// contains filtered or unexported methods
}

type OngletPaiements

type OngletPaiements interface {
	ConfirmeSupprimePaiement(dm.AccesPaiement) bool
	ConfirmeExportPaiements(alreadyExported []rd.Paiement, nb int) (keep bool, simpleHeader bool, marque bool)
	// contains filtered or unexported methods
}

type OngletPersonnes

type OngletPersonnes interface {
	ConfirmeSupprimePersonne(pers dm.AccesPersonne) bool
	ConfirmeSupprimeOrganisme(org dm.AccesOrganisme) bool
	// contains filtered or unexported methods
}

type OngletSuiviCamps

type OngletSuiviCamps interface {
	ConfirmeAjoutDirecteurJoomeo(msg string) rd.OptionnalBool // 0 : annule, Non : Confirme,  Oui: Confirme + mail
	ConfirmeSetupAlbumJoomeo(alreadyLinked []string) bool
	ConfirmeSupprimeCamp(camp dm.AccesCamp) bool
	ProposePasswordDirecteur(camp dm.AccesCamp, password string) bool
	// contains filtered or unexported methods
}

type OngletSuiviDossiers

type OngletSuiviDossiers interface {
	ShowPreviewFacture(fac dm.AccesFacture)

	ConfirmeSupprimeFacture(html string) bool
	// PrevisualiseMail(mail mails.MailRenderer, pjs []mails.PieceJointe, to string) (mailHtml string)
	ConfirmeMail(fac dm.AccesFacture, messageKind rd.MessageKind) bool
	ConfirmeSupprimeMessages(nb int) bool
	// contains filtered or unexported methods
}

type Paiements

type Paiements struct {
	Onglet OngletPaiements

	ListePaiements  rd.Table
	ListeFactures   rd.Table
	HeaderPaiements []rd.Header
	HeaderFactures  []rd.Header
	Base            *dm.BaseLocale
	Etat            EtatPaiements

	// Droit d'édition/ajout/suppression de paiements
	// Droit d'invalidation d'un paiement
	EditRight, InvalideRight bool
	// contains filtered or unexported fields
}

func NewPaiements

func NewPaiements(main *MainController, permission int) *Paiements

func (*Paiements) CreePaiement

func (c *Paiements) CreePaiement(paiement rd.Paiement)

CreePaiement crée un nouveau paiement sur le serveur, de manière SYNCHRONE.

func (*Paiements) ExportPaiements

func (c *Paiements) ExportPaiements(ids []int64) string

ExportPaiements demande confirmation, puis génère une liste des paiements transmis. Lance éventuellement en arrière plan le marquage en bordereau. Renvoie le chemin du fichier créé.

func (*Paiements) IdentifieVirement

func (c *Paiements) IdentifieVirement(label int) (dm.AccesFacture, bool)

IdentifieVirement décode le label donné et renvoie le dossier correspondant.

func (Paiements) Main

func (c Paiements) Main() *MainController

Main expose le controller principal

func (*Paiements) Reset

func (c *Paiements) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*Paiements) ResetRender

func (c *Paiements) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*Paiements) SelectPaiement

func (c *Paiements) SelectPaiement(id int64)

SelectPaiement sélectionne le paiement donné, en remettant à zéro les filtres si nécessaire.

func (*Paiements) SideButtons

func (c *Paiements) SideButtons() ButtonsPaiements

func (*Paiements) SupprimePaiement

func (c *Paiements) SupprimePaiement()

SupprimePaiement supprime le paiement courant, après confirmation

func (*Paiements) UpdatePaiement

func (c *Paiements) UpdatePaiement(paiement rd.Paiement)

UpdatePaiement met à jour les paiement transmis sur le serveur

type ParamsNewDocument

type ParamsNewDocument struct {
	Meta apiserver.CreateDocumentIn
	// contains filtered or unexported fields
}

type Personnes

type Personnes struct {
	Onglet OngletPersonnes

	Liste                  rd.Table
	Header                 []rd.Header
	Base                   *dm.BaseLocale
	Etat                   EtatPersonnes
	DeleteRight, EditRight bool // Droit de suppression, droit d'ajout/edition
	// contains filtered or unexported fields
}

func NewPersonnes

func NewPersonnes(main *MainController, permission int) *Personnes

func (*Personnes) AjouteOrganismesToListe

func (c *Personnes) AjouteOrganismesToListe()

func (*Personnes) AjouteToListe

func (c *Personnes) AjouteToListe(personnes rd.Table)

AjouteToListe remet à zéro l'état et ajoute les personnes données à la liste courante.

func (*Personnes) CreeOrganisme

func (c *Personnes) CreeOrganisme(org rd.Organisme)

CreeOrganisme crée un nouveau profil sur le serveur

func (*Personnes) CreePersonne

func (c *Personnes) CreePersonne(pers rd.Personne)

CreePersonne crée un nouveau profil sur le serveur

func (*Personnes) EffaceListe

func (c *Personnes) EffaceListe()

EffaceListe remet à zéro l'état et enlève toutes les personnes de la liste courante.

func (*Personnes) ExportAndSave

func (c *Personnes) ExportAndSave(mode ModeExport, option dm.OptionExport) string

SaveExport enregistre l'export et renvoie le chemin.

func (*Personnes) GetHistorique

func (c *Personnes) GetHistorique(idPersonne int64) rd.Table

GetHistorique renvoie l'historique (comme participant et équipier) de la personne donnée

func (*Personnes) GetParentsEnfants

func (c *Personnes) GetParentsEnfants(id rd.IdPersonne) (parents []dm.AccesPersonne, enfants []dm.AccesPersonne)

GetParentsEnfants renvoie les liens familliaux de la personne `id`, au sens des dossiers (responsable/participants)

func (*Personnes) GetStats

func (c *Personnes) GetStats() []Stat

GetStats renvoi les statistiques courantes

func (Personnes) Main

func (c Personnes) Main() *MainController

Main expose le controller principal

func (*Personnes) RechercheDonateursByCriteres

func (c *Personnes) RechercheDonateursByCriteres(cd CriteresRechercheDonateur) []dm.AccesPersonne

func (*Personnes) RecherchePersonnesByCriteres

func (c *Personnes) RecherchePersonnesByCriteres(criteres CritereRecherche) rd.Table

RecherchePersonnesByCriteres cherche d'abord dans les participants, puis dans les respos correspondants. Si demandé, les organismes sont aussi ajoutés.

func (*Personnes) Reset

func (c *Personnes) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*Personnes) ResetRender

func (c *Personnes) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*Personnes) SelectPersonne

func (c *Personnes) SelectPersonne(item dm.PersonneOrganisme)

SelectPersonne sélectionne la personne donnée, en remettant à zéro la recherche si nécessaire.

func (*Personnes) SideButtons

func (c *Personnes) SideButtons() ButtonsPersonnes

func (*Personnes) SupprimeItem

func (c *Personnes) SupprimeItem()

SupprimeItem supprime l'item courant, après vérification

func (*Personnes) UpdateOrganisme

func (c *Personnes) UpdateOrganisme(org rd.Organisme)

UpdateOrganisme met à jour le profil transmis sur le serveur, de manière asynchrone.

func (*Personnes) UpdatePersonne

func (c *Personnes) UpdatePersonne(pers rd.Personne)

UpdatePersonne met à jour le profil transmis sur le serveur

func (*Personnes) ValideExport

func (c *Personnes) ValideExport(mode ModeExport, option dm.OptionExport) (out rd.Table, invalides int)

ValideExport vérifie et nettoie la liste actuelle et la renvoie. Les organismes sont résolus, en utilisant leur contact le cas échéant. Renvoie aussi le nombre de lignes invalides.

type PseudoMessage

type PseudoMessage struct {
	dm.PseudoMessage

	// Ids des messages envoyé en même temps
	// (ex: documents, message groupés, sondages)
	Groupe rd.Ids
}

type QueryParams

type QueryParams map[string]string

QueryParams est envoyé via l'url et non encodé en JSON

func IdAsParams

func IdAsParams(id int64) QueryParams

type RegisteredDocument

type RegisteredDocument rd.Document

func (RegisteredDocument) FileName

func (doc RegisteredDocument) FileName() string

type SendDocumentsSignals

type SendDocumentsSignals struct {
	OnError   func(index int, err string)
	OnSuccess func(index int, out apiserver.NotifieDocumentsOut)
}

type SendMessagesSignals

type SendMessagesSignals struct {
	OnError   func(index int, err string)
	OnSuccess func(index int, out apiserver.NotifieManyOut)
}

SendMessagesSignals groupe deux fonctions qui doivent émetter un signal, depuis le thread secondaire (worker) vers le thread principal.

type SendSondagesSignals

type SendSondagesSignals struct {
	OnError   func(index int, err string)
	OnSuccess func(index int, out apiserver.NotifieSondagesOut)
}

type SequentialBackground

type SequentialBackground struct {
	OnError func(err error)
}

func (SequentialBackground) Run

func (s SequentialBackground) Run(job func() (interface{}, error), onSuccess func(_out interface{}))

type ServerURL

type ServerURL struct {
	// contains filtered or unexported fields
}
var (
	Server ServerURL // Si vide, désactive les requêtes serveur

	DebugModules = rd.Modules{
		Personnes:     4,
		Camps:         3,
		Inscriptions:  3,
		SuiviCamps:    3,
		SuiviDossiers: 3,
		Paiements:     3,
		Aides:         3,
		Equipiers:     3,
		Dons:          3,
	}
)

func (ServerURL) ApiURL

func (s ServerURL) ApiURL(endpoint string) string

cas spécial pour rejouer l'inscription

func (ServerURL) EndpointURL

func (s ServerURL) EndpointURL(endpoint string) string

func (ServerURL) Host

func (s ServerURL) Host() string

type Stat

type Stat struct {
	Label, Value string
}

Stat représente une statistique d'une table

type SuiviCamps

type SuiviCamps struct {
	Onglet OngletSuiviCamps

	Liste  rd.Table
	Header []rd.Header
	Base   *dm.BaseLocale
	Etat   EtatSuiviCamps

	EditRight bool // Droit d'édition/ajout/suppression de camps
	// contains filtered or unexported fields
}

SuiviCamps implémente une gestion des camps comme administrateur.

func NewSuiviCamps

func NewSuiviCamps(main *MainController, permission int) *SuiviCamps

func (*SuiviCamps) AjouteDirecteur

func (c *SuiviCamps) AjouteDirecteur(camp dm.AccesCamp, idDirecteur int64)

AjouteDirecteur inscrit une personne avec le rôle de directeur

func (*SuiviCamps) AjouteDirecteurJoomeo

func (c *SuiviCamps) AjouteDirecteurJoomeo(albums map[string]joomeo.Album)

AjouteDirecteurJoomeo ajoute le directeur du camp courant comme contact Joomeo

func (*SuiviCamps) BilansFinanciers

func (c *SuiviCamps) BilansFinanciers(camps []int64) map[int64]rd.Item

func (SuiviCamps) CalculeNuitees

func (c SuiviCamps) CalculeNuitees(camp dm.AccesCamp) (nbEnfants, nbAdultes int)

CalculeNuitees renvoie le nombre de nuitées pour le séjour donné, en séparant les adultes des enfants. Un séjour proposant une option journée renvoie `0` enfants

func (*SuiviCamps) CloseJoomeoApi

func (c *SuiviCamps) CloseJoomeoApi()

CloseJoomeoApi termine la connexion.

func (*SuiviCamps) CreeCamp

func (c *SuiviCamps) CreeCamp(params apiserver.CreateCampIn)

CreeCamp ajoute le camp sur le serveur. Le champ complément de la liste de vêtements est pré-rempli.

func (*SuiviCamps) ExportBilanCamps

func (c *SuiviCamps) ExportBilanCamps(bilan map[int64]rd.Item) string

func (*SuiviCamps) ExportSuiviFinancierParticipants

func (c *SuiviCamps) ExportSuiviFinancierParticipants(camp dm.AccesCamp) string

ExportSuiviFinancierParticipants génère et enregistre une liste des participants / état facture

func (*SuiviCamps) GetAlbumsContactsJoomeo

func (c *SuiviCamps) GetAlbumsContactsJoomeo() ([]rd.ItemChilds, map[string]joomeo.Album, map[string]joomeo.Contact)

GetAlbumsContactsJoomeo renvoie les albums et contacts Joomeo

func (*SuiviCamps) ImportCampFrom

func (c *SuiviCamps) ImportCampFrom() apiserver.CreateCampIn

ImportCamp copie les champs pertinents pour un nouveau camp, à partir du camp courant

func (*SuiviCamps) LienInscription

func (c *SuiviCamps) LienInscription(idCamp int64) string

LienInscription renvoie un lien pré-selectionnant le camp sur le formulaire d'inscription.

func (SuiviCamps) Main

func (c SuiviCamps) Main() *MainController

Main expose le controller principal

func (*SuiviCamps) RemoveAlbumJoomeo

func (c *SuiviCamps) RemoveAlbumJoomeo()

func (*SuiviCamps) Reset

func (c *SuiviCamps) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*SuiviCamps) ResetRender

func (c *SuiviCamps) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*SuiviCamps) SelectFacturesByCamp

func (c *SuiviCamps) SelectFacturesByCamp(idCamp int64) rd.Ids

func (*SuiviCamps) SetupAlbumJoomeo

func (c *SuiviCamps) SetupAlbumJoomeo(albumId string)

SetupAlbumJoomeo attribue l'album donné au camp courant, après vérification. Synchrone

func (*SuiviCamps) SideButtons

func (c *SuiviCamps) SideButtons() ButtonsSuiviCamps

func (*SuiviCamps) SupprimeCamp

func (c *SuiviCamps) SupprimeCamp()

SupprimeCamp vérifie que le camp courant n'est pas utilisé et le supprime.

func (*SuiviCamps) UpdateCamp

func (c *SuiviCamps) UpdateCamp(camp rd.Camp)

func (*SuiviCamps) UrlSondages

func (s *SuiviCamps) UrlSondages() string

type SuiviDossiers

type SuiviDossiers struct {
	Onglet OngletSuiviDossiers

	Base      *dm.BaseLocale
	Etat      EtatSuiviDossiers
	EditRight bool // Droit de suppression/ajout/edition
	Liste     rd.Table
	Header    []rd.Header
	// contains filtered or unexported fields
}

SuiviDossiers implémentes des fonctionnalités de communication avec les familles.

func NewSuiviDossiers

func NewSuiviDossiers(main *MainController, permission int) *SuiviDossiers

func (*SuiviDossiers) AjouteAide

func (c *SuiviDossiers) AjouteAide(aide rd.Aide) *rd.Aide

AjouteAide est synchrone. Gère l'erreur et renvoi nil.

func (*SuiviDossiers) AjoutePaiement

func (c *SuiviDossiers) AjoutePaiement(paiement rd.Paiement)

AjoutePaiement ajoute le paiement au dossier courant.

func (*SuiviDossiers) AjouteParticipant

func (c *SuiviDossiers) AjouteParticipant(participant dm.AccesParticipant) *dm.AccesParticipant

AjouteParticipant ajoute le participant à la facture courante.

func (*SuiviDossiers) CreateMessageResponsable

func (c *SuiviDossiers) CreateMessageResponsable(content rd.String, idRespo int64, imported importmail.Mail)

func (*SuiviDossiers) CreeFacture

func (c *SuiviDossiers) CreeFacture(idResponsable int64, participants rd.Table)

func (*SuiviDossiers) EditMessageCentre

func (c *SuiviDossiers) EditMessageCentre(idMessages rd.Ids, contenu rd.String)

func (*SuiviDossiers) EnvoiAccuseReception

func (c *SuiviDossiers) EnvoiAccuseReception(fac dm.AccesFacture)

EnvoiAccuseReception envoie un mail de notification de manière ASYNCHRONE

func (*SuiviDossiers) EnvoiAttestationPresence

func (c *SuiviDossiers) EnvoiAttestationPresence(fac dm.AccesFacture)

func (*SuiviDossiers) EnvoiDocumentsCamp

func (c *SuiviDossiers) EnvoiDocumentsCamp(campId int64, idsDossiers rd.Ids,
	monitor SendDocumentsSignals) (facErrors []DossierError, err error)

EnvoiDocumentsCamp envois les documents du camp donné aux factures données. `onError` et `onSuccess` sont exécutées dans le même thread à la fin de chaque envoi effectué sur le serveur.

func (*SuiviDossiers) EnvoiFacture

func (c *SuiviDossiers) EnvoiFacture(fac dm.AccesFacture)

func (*SuiviDossiers) EnvoiFactureAcquittee

func (c *SuiviDossiers) EnvoiFactureAcquittee(fac dm.AccesFacture)

func (*SuiviDossiers) EnvoiManyMessages

func (c *SuiviDossiers) EnvoiManyMessages(contenu rd.String, idsDossiers rd.Ids,
	monitor SendMessagesSignals) ([]DossierError, error)

EnvoiManyMessages (monitor est créé dans le thread principal)

func (*SuiviDossiers) EnvoiMessageCentre

func (c *SuiviDossiers) EnvoiMessageCentre(fac dm.AccesFacture, contenu rd.String)

func (*SuiviDossiers) EnvoiPlaceLiberee

func (c *SuiviDossiers) EnvoiPlaceLiberee(fac dm.AccesFacture, idParticipant int64, newStatut rd.StatutAttente)

EnvoiPlaceLiberee envoie un mail et modifie le rôle

func (*SuiviDossiers) EnvoiSondages

func (c *SuiviDossiers) EnvoiSondages(campId int64, idsDossiers rd.Ids,
	monitor SendSondagesSignals) (facErrors []DossierError, err error)

EnvoiSondages envois les sondages du camp donné aux factures données. `onError` et `onSuccess` sont exécutées dans le même thread à la fin de chaque envoi effectué sur le serveur.

func (*SuiviDossiers) FusionneDossiers

func (c *SuiviDossiers) FusionneDossiers(params apiserver.FusionneFacturesIn)

func (*SuiviDossiers) HasNotifications

func (c *SuiviDossiers) HasNotifications() bool

func (*SuiviDossiers) ImportMail

func (c *SuiviDossiers) ImportMail(source string) (importmail.Mail, rd.OptionnalId, error)

ImportMail extrait de la source du mail un Message L'expéditeur détermine le dossier

func (SuiviDossiers) Main

func (c SuiviDossiers) Main() *MainController

Main expose le controller principal

func (*SuiviDossiers) NewCacheGroupes

func (ct *SuiviDossiers) NewCacheGroupes() CacheGroupes

func (*SuiviDossiers) Notifications

func (c *SuiviDossiers) Notifications() ([]dm.AccesAide, []dm.AccesFacture)

Notifications renvoie les messages non lus et les aides déclarées sur les espaces persos.

func (*SuiviDossiers) OnSuccesNotifieDocuments

func (c *SuiviDossiers) OnSuccesNotifieDocuments(out apiserver.NotifieDocumentsOut)

func (*SuiviDossiers) OnSuccesNotifieMessage

func (c *SuiviDossiers) OnSuccesNotifieMessage(out apiserver.NotifieManyOut)

func (*SuiviDossiers) OnSuccesNotifieSondages

func (c *SuiviDossiers) OnSuccesNotifieSondages(out apiserver.NotifieSondagesOut)

func (*SuiviDossiers) RenderAttestation

func (c *SuiviDossiers) RenderAttestation() string

func (*SuiviDossiers) Reset

func (c *SuiviDossiers) Reset()

Reset met à jour les données internes en s'appuyant sur l'état, puis appelle Onglet.render pour synchroniser l'affichage graphique

func (*SuiviDossiers) ResetRender

func (c *SuiviDossiers) ResetRender()

ResetRender rafraichit l'affichage, sans rafraichir les données internes

func (*SuiviDossiers) RetireParticipant

func (c *SuiviDossiers) RetireParticipant(participant dm.AccesParticipant, supprime bool)

RetireParticipant enlève le participant donné de la facture courante, de manière SYNCHRONE. Si `supprime` vaut true, le participant est supprimé.

func (*SuiviDossiers) SelectFacture

func (c *SuiviDossiers) SelectFacture(fac dm.AccesFacture)

SelectFacture sélectionne la facture donnée. Si nécessaire, remet à zéro les critères.

func (*SuiviDossiers) SelectionneFacturesDocuments

func (c *SuiviDossiers) SelectionneFacturesDocuments(idCamp int64, resend bool) rd.Ids

SelectionneFacturesDocuments sélectionne automatiquement les dossiers concernés.

func (*SuiviDossiers) SideButtons

func (c *SuiviDossiers) SideButtons() ButtonsSuiviDossiers

func (*SuiviDossiers) SupprimeAide

func (c *SuiviDossiers) SupprimeAide(aide int64)

SupprimeAide est asynchrone

func (*SuiviDossiers) SupprimeFacture

func (c *SuiviDossiers) SupprimeFacture()

SupprimeFacture supprime la facture courante sur le serveur, après confirmation.

func (*SuiviDossiers) SupprimeMessages

func (c *SuiviDossiers) SupprimeMessages(idMessages rd.Ids)

func (*SuiviDossiers) ToggleMessageVu

func (c *SuiviDossiers) ToggleMessageVu(idMessage int64, vu bool)

func (*SuiviDossiers) UpdateAide

func (c *SuiviDossiers) UpdateAide(aide rd.Aide)

UpdateAide est synchrone

func (*SuiviDossiers) UpdateFacture

func (c *SuiviDossiers) UpdateFacture(fac rd.Facture) *rd.Facture

UpdateFacture met à jour de manière synchrone la facture donnée.

func (*SuiviDossiers) UpdateParticipant

func (c *SuiviDossiers) UpdateParticipant(participant rd.Participant)

UpdateParticipant est synchrone

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL