event.gno
3.36 Kb · 81 lines
1package event
2
3import (
4 zenaov1 "gno.land/p/zenao/zenao/v1"
5 "gno.land/p/zenao/events"
6 "gno.land/p/zenao/basedao"
7 "gno.land/p/zenao/daokit"
8 "gno.land/p/zenao/daocond"
9 "gno.land/r/demo/profile"
10 "gno.land/r/zenao/eventreg"
11 "gno.land/r/zenao/social_feed"
12)
13
14var (
15 DAO daokit.DAO
16 localDAO daokit.DAO
17
18 event *events.Event // XXX: needed for backward compatibility with frontend queries
19 feedId string // XXX: workaround for "unexpected zero object id" issue
20)
21
22func init() {
23 // XXX: workaround for "unexpected zero object id" issue
24 feedId = social_feed.NewFeed(cross, "main", false, feedAuth)
25}
26
27func init() {
28 conf := events.Config{
29 Organizers: []string{"gno.land/r/zenao/users/u376"},
30 Gatekeepers: []string{},
31 Title: "Atelier d’écriture à La Virgule",
32 Description: "À travers des exercices guidés, les participants apprennent à identifier les moments charnières de leur parcours, à donner forme narrative aux souvenirs marquants et à créer du lien entre les différentes étapes de leur existence. \n\nQu'il s'agisse de raconter un tournant décisif, de retracer l'évolution d'une passion ou de mettre en mots une leçon de vie, chaque exercice permet de révéler la richesse et la singularité de son histoire personnelle. \n\nL'atelier alterne entre temps d'écriture individuelle et moments de partage, où les récits résonnent et s'enrichissent mutuellement. Les participants repartent avec des textes achevés et les clés pour continuer à écrire leur propre histoire, découvrant que chaque vie recèle des trésors narratifs insoupçonnés.\n\nRendez-vous le vendredi 5 septembre de 14h à 16h à [La Virgule](https://www.morlaix.bzh/la-virgule) pour cet atelier d'écriture co-construit avec [La Maison Perchée en Finistère](https://maisonperchee.org/), le [C3RB](https://c3rb-bretagne.fr/) et le PTSM29.\n\nCet atelier d'écriture est gratuit, mais sur inscription par email car la jauge de participants est limitée à 10 personnes.\n\n---\n\n- ✍️ Atelier d'écriture\n- 📆 Vendredi 5 septembre 2025, de 14h à 16h\n- 📍 La Virgule, 9 rue de Paris 29600 Morlaix",
33 ImageURI: "ipfs://bafkreidevulfdnbonld27wpgzjlmd7cphy2ab4zcvcomqsju6p6ptxhkpy",
34 StartDate: 1757073600,
35 EndDate: 1757080800,
36 Capacity: 10,
37 Discoverable: true,
38 GetProfileString: profile.GetStringField,
39 SetProfileString: profile.SetStringField,
40 ZenaoAdminAddr: "g1djrkw9tf4px658j85cc6fhsvm50uf9s0g6kfsm",
41 Location: &zenaov1.EventLocation{
42 Address: &zenaov1.AddressGeo{
43 Address: "La Virgule - 9 Rue de Paris, 29600 Morlaix, France",
44 Lat: 48.576057,
45 Lng: -3.8242989,
46 },
47 },
48 ParticipationPubkey: "",
49 CrossFn: crossFn,
50 SetImplemFn: setImplem,
51 FeedId: feedId,
52 PrivateVarName: "event",
53 }
54 event = events.NewEvent(&conf)
55 eventreg.Register(cross, func() *zenaov1.EventInfo { return event.Info() })
56}
57
58func Vote(_ realm, proposalID uint64, vote daocond.Vote) {
59 localDAO.Vote(proposalID, vote)
60}
61
62func Execute(_ realm, proposalID uint64) {
63 localDAO.Execute(proposalID)
64}
65
66func Render(path string) string {
67 return localDAO.Render(path)
68}
69
70func feedAuth() (string, bool) {
71 caller := event.DAOPrivate.CallerID() // XXX: this should be upgradable
72 return caller, basedao.MustGetMembersViewExtension(localDAO).IsMember(caller)
73}
74
75func crossFn(_ realm, cb func()) {
76 cb()
77}
78
79func setImplem(newLocalDAO daokit.DAO, newDAO daokit.DAO) {
80 localDAO, DAO = newLocalDAO, newDAO
81}