Newer
Older
Cette bibliotheque facilite la publication d'événement sur le portail ESTIM
(https://www.estim-science.fr/) dans le cadre d'une application python.
Elle contient également une application django.
pip install -e git+https://dev.webu.coop/shared/estimevent
```python
from estimevent.api import EstimEventAPI
api = EstimEventAPI(user=my_user, password=my_password)
api.save_event({
'titre': 'mon_titre'
'date_debut': today(),
'date_fin': today(),
'id_structure_organisatrice': 12345
'adresse': '38 rue des Tournelles, 67890'
'tranche_dages': AGE_0_A_3_ANS,
'thematiques': [THE_AGRI_ALI]
'publics_cibles': [PUB_CIB_GROUP, PUB_CIB_MEDIA]
'types_evenement': [TYP_EVT_SPEC_VIV]
'description': 'ma description'
})
api.delete_event({
'titre': 'mon_titre'
'date_debut': today(),
'date_fin': today(),
'id_structure_organisatrice': 12345
'adresse': '38 rue des Tournelles, 67890'
})
```
```python
INSTALLED_APPS = [
…
'estimevent.contrib.django.estimevent',
…
]
```
### Écrire une classe héritant de EstimEventWrapperBase et la décorer avec estim_wrapper
```python
from estimevent.contrib.django.estimevent.models import estim_wrapper
from estimevent.contrib.django.estimevent.models import EstimEventWrapperBase
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
@estim_wrapper
class EstimNoteWrapper(EstimEventWrapperBase):
user = getattr(settings, 'ESTIMEVENT_USER')
password = getattr(settings, 'ESTIMEVENT_PASSWORD')
dry_run = getattr(settings, 'ESTIMEVENT_DRY_RUN', False)
@staticmethod
def titre(note):
return note.name
...
@classmethod
def events_to_sync(cls, until=None):
for note in Note.published.all():
data = cls.properties(note)
for overrided_data in cls.occurences(note, until):
data = data.copy()
data.update(overrided_data)
yield (note, data)
@classmethod
def has_to_keep(cls, event):
if event.status not in [event.STATUS_PUBLISHED, event.STATUS_MODERATE]:
return False
return super(EstimNoteWrapper, cls).has_to_sync(event)
```
## Utilisation
Cette application ajoute la commande `estimsync` qui synchronise l'ensemble des
événements, les met à jour au besoin et supprime les évenements à ne pas
conserver.
./manage.py estimsync [--dry-run] [event_id event_id ...]
Cette classe contient toutes les constantes ESTIM.
### `__init__`(user, password, production=True, host=None, proto=None)
Les champs sont nommés à la manière python. Par exemple, `trancheDages` devient `tranche_dages`.
### `delete_event`(date, production=True)
## class `estimevent.contrib.django.estimevent.models.EstimEventWrapperBase`
Retourne l'ensemble des événements à synchroniser sous la forme d'une liste de tuple (object, data).
Permet de savoir si un évenement doit être conservé sur le portail ESTIM.
Permet de savoir si un évenement doit être ajouté sur le portail ESTIM.