Skip to content

Commit be21788

Browse files
committed
update election docs
1 parent ddf4029 commit be21788

File tree

4 files changed

+78
-46
lines changed

4 files changed

+78
-46
lines changed

docs/_static/custom.css

-11
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,6 @@
55
background: #eee;
66
}
77

8-
/*
9-
Fixing strange behavior of the RTD theme
10-
*/
11-
.rst-content ul {
12-
margin-bottom: 12px !important;
13-
}
14-
15-
.rst-content ul:last-child {
16-
margin-bottom: 0 !important;
17-
}
18-
198
/*
209
Fixing margin of illustrations
2110
*/

docs/conf.py

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"pyvec_docs.ext.slack",
3838
"pyvec_docs.ext.twitter",
3939
"pyvec_docs.ext.gh_repo",
40+
"pyvec_docs.ext.board_dates",
4041
"myst_parser",
4142
]
4243

docs/operations/elections.rst

+51-35
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,56 @@
11
Volby do výboru
22
===============
33

4-
Funkční období :term:`výboru <Výbor>` je dle :ref:`stanov <stanovy>` tři roky, členové spolku ze svých řad volí pět členů. To se děje na členské schůzi, kterou výbor k této příležitosti svolává.
4+
Funkční období :term:`výboru <Výbor>` je dle :ref:`stanov <stanovy>` tři roky, členové spolku ze svých řad volí pět členů. Nově zvolený výbor si potom sám volí, kdo z těchto pěti bude předseda a případně kdo bude pokladník (když se nerozhodne volit pokladníka, je jím automaticky předseda).
55

6-
Nově zvolený výbor si potom sám volí, kdo z těchto pěti bude předseda a případně kdo bude pokladník (když se nerozhodne volit pokladníka, je jím automaticky předseda).
7-
8-
.. note::
9-
Přečíst ještě `PEP 8102 <https://peps.python.org/pep-8102/>`__ a případně se inspirovat? Dořešit.
6+
Volby do výboru probíhají asynchronně a zpravidla trvají týden, aby stihli všichni zahlasovat.
107

118
Kdy se volí
129
-----------
1310

14-
- Předchozí volba: **8.4.2019**
15-
- Příští volba: **21.3.2022**
11+
+------------------------------------+--------------------+
12+
| |:ballot_box:| Předchozí volba | |board_start| |
13+
+------------------------------------+--------------------+
14+
| |:warning:| Příští volba | |board_end| |
15+
+------------------------------------+--------------------+
1616

1717
Příprava
1818
--------
1919

20-
- Postupuje se podle stanov, svoláváme :ref:`členskou schůzi <clenska-schuze>`.
21-
- Výbor na nějaké schůzi s předstihem určí přesné datum členské schůze.
22-
- Někdo z výboru vezme e-mailové adresy členů ze `seznamu členů <https://docs.google.com/spreadsheets/d/1n8hzBnwZ5ANkUCvwEy8rWsXlqeAAwu-5JBodT5OJx_I/edit#gid=0>`__ a pošle jim pozvánku na členskou schůzi. Pozvánka musí obsahovat místo, čas a program jednání členské schůze. Kromě toho by měl výbor schůzi oznámit i v kanálu :slack:`#pyvec-members`. (Pro inspiraci, pozvánka na členskou schůzi `EuroPython Society <https://www.europython-society.org/europython-society-general-assembly-2020/>`__.)
23-
- Výbor dá členům vědět, jak lze podávat nominace, jak kandidovat. Kandidovat do výboru může jakýkoliv člen Pyvce.
24-
- Ideálně se pokusí členy motivovat k tomu, aby kandidovali, a to komunikací s členy, ukazováním toho, jak výbor pracuje, jak vypadá běžná schůze výboru (např. zveřejněním video nahrávky), apod. Výbor může také neformálně oslovovat vhodné kandidáty a přesvědčovat je, že mají kandidovat.
25-
- Členové mohou někoho nominovat a tím jej motivovat ke kandidatuře, ale s kandidaturou musí nakonec dotyčný souhlasit, aby byla platná.
26-
- Přihlášky se oznamují v kanálu :slack:`#pyvec-members`. (Pro inspiraci, `kandidatury do EuroPython Society <https://www.europython-society.org/list-of-eps-board-candidates-for-20192020/>`__.) Seznam kandidátů by bylo dobré zapisovat třeba sem do této stránky, ať je někde přehledný seznam. Pozor na GDPR, kontrolovat v `seznamu členů <https://docs.google.com/spreadsheets/d/1n8hzBnwZ5ANkUCvwEy8rWsXlqeAAwu-5JBodT5OJx_I/edit#gid=0>`__, zda daná osoba může být někde veřejně takto prezentovaná.
27-
- Neomezujeme kandidáty na ty přihlášené předem. Kandidáti se mohou navrhnout nebo nominovat jiné kandidáty klidně až v průběhu hlasování. Je ale pro hlasující lepší, když se mohou s kandidáty seznámit předem.
20+
- Volební týden startuje na členské schůzi, kterou výbor k této příležitosti svolává. Většinou se to dělá tak, že se k té jedné členské schůzi ročně, která se svolává ke schválení účetní závěrky, akorát přidá odstartování voleb.
21+
- Výbor na nějaké svojí schůzi s předstihem určí přesné datum :ref:`členské schůze <clenska-schuze>`. Datum se vybírá despoticky podle možností výboru a asi by se mělo vyhnout např. státním svátkům apod, kdy lidi mívají dovolené.
22+
- Někdo z výboru vezme e-mailové adresy členů ze `seznamu členů <https://docs.google.com/spreadsheets/d/1n8hzBnwZ5ANkUCvwEy8rWsXlqeAAwu-5JBodT5OJx_I/edit#gid=0>`__ a pošle všem pozvánku na členskou schůzi, nejméně 10 dnů předem. Pozvánka musí obsahovat místo, čas a program jednání členské schůze. Měla by zmínit, že budou volby, a jak fungují nominace a kandidatury (viz níže).
23+
- Kromě toho by měl výbor schůzi oznámit i v kanálu :slack:`#pyvec-members`. Pro inspiraci, `pozvánka na členskou schůzi EuroPython Society <https://www.europython-society.org/europython-society-general-assembly-2020/>`__.
24+
25+
Nominace a kandidatury
26+
----------------------
27+
28+
- Kandidovat do výboru může jakýkoliv člen Pyvce. Nominace, kandidatury a další detaily ohledně voleb se tradičně oznamují v kanálu :slack:`#pyvec-members`.
29+
- Výbor se ideálně pokusí členy motivovat k tomu, aby kandidovali, a to komunikací s členy, ukazováním toho, jak výbor pracuje, jak vypadá běžná schůze výboru (např. zveřejněním video nahrávky), apod. Výbor může také neformálně oslovovat vhodné kandidáty a přesvědčovat je, že mají kandidovat.
30+
- Kterýkoliv člen může někoho nominovat a tím jej motivovat ke kandidatuře, ale s kandidaturou musí nakonec dotyčný souhlasit, aby byla platná. Pro inspiraci, `kandidatury do EuroPython Society <https://www.europython-society.org/list-of-eps-board-candidates-for-20192020/>`__.
31+
- Konec podávání kandidatur je v den začátku voleb, tedy v den členské schůze. Technicky by možná šlo brát nové kandidáty i v průběhu voleb, ale vždy jsme si vystačili s přímočarým systémem, kdy se kandidáti podávají předem a pak už se jenom volí.
32+
33+
Těsně před volbami
34+
------------------
2835

29-
.. note::
30-
Dořešit, zda se opravdu mohou kandidáti přidávat nebo ubírat v průběhu voleb. Závisí na zvoleném technickém řešení, zda umožňuje měnit hlas v průběhu týdne.
36+
- Je důležité nezapomenout, že ne každý používá nebo pravidelně čte Slack. Mnoho členů Pyvce preferuje e-mail. Je proto dobré ještě před startem voleb poslat ještě jeden e-mail všem členům, kde se shrne, kdo (zatím) kandiduje a ideálně i s nějakým popisem, co by chtěl dělat.
37+
- Ať už z lásky, nebo kvůli usnášeníschopnosti, není špatný nápad napsat co nejvíce členům upomínku, že jsou volby, i pomocí SMS nebo různých messengerů.
3138

3239
Začátek voleb
3340
-------------
3441

35-
- V datum schůze se udělá vykopávací meeting, koordinace probíhá přes :slack:`#pyvec-members`.
36-
- Výbor členy obeznámí s technickým zázemím volby.
37-
- Členové následně dostávají týden na to, aby asynchronně volili.
38-
39-
.. note::
40-
Jaké máme technické zázemí volby? Petr Viktorin zmiňoval, že PSF používá `Helios Voting <https://vote.heliosvoting.org/>`__. Dořešit.
42+
- V datum schůze proběhne samotná členská schůze, kde se schválí účetní závěrka a kde má předseda či předsedkyně tradičně nějakou `State of the Union <https://en.wikipedia.org/wiki/State_of_the_Union>`_ promluvu.
43+
- Někdo z výboru (to je důležité) se ujme naklikání nového hlasování v `Helios Voting <https://vote.heliosvoting.org/>`_.
44+
- Výbor členy obeznámí s technickým zázemím volby a připomene, jak to celé funguje.
45+
- Následně se spustí hlasování a členové dostávají týden na to, aby asynchronně volili.
4146

4247
Mechanika voleb
4348
---------------
4449

4550
- Každý člen Pyvce má 5 hlasů (ve výboru je 5 lidí).
4651
- Po týdnu voleb se uzavře hlasování a starý výbor vyhodnotí hlasy.
4752
- Bere se prvních pět, kteří dostanou nejvíc hlasů.
48-
- Starý výbor vyhlásí výsledky přes :slack:`#pyvec-members`.
53+
- Starý výbor vyhlásí výsledky v e-mailu všem členům Pyvce a ideálně i přes :slack:`#pyvec-members`.
4954

5055
Volby při remíze
5156
----------------
@@ -59,23 +64,34 @@ Předání moci
5964

6065
- Starý výbor zodpovídá za Pyvec až do předání moci.
6166
- Starý a nový výbor si naplánují meeting, kde se seznámí a dojde k ceremoniálu předání moci, k předání přístupů, zodpovězení různých otázek, atd.
62-
- Nový výbor si mezi sebou musí zvolit předsedu a může zvolit :term:`pokladníka <Pokladník>`.
63-
- Každý člen výboru má jeden hlas a funkci dostává ten, kdo má nejvíc hlasů.
64-
- Nový výbor dostává první závažný úkol, při kterém jej ideálně stínuje starý výbor a pomáhá mu k jeho dokončení: Kontaktovat právničky spolku, `AK Šichová <https://aksichova.cz/>`__, aby připravily papíry, kodifikovaly výsledek voleb a změnu zanesly do státního rejstříku (úkol není hotov, dokud na justice.cz nejsou u Pyvce vidět nová jména).
67+
- Nový výbor si mezi sebou musí zvolit předsedu a může zvolit :term:`pokladníka <Pokladník>`. Každý člen výboru má jeden hlas a funkci dostává ten, kdo má nejvíc hlasů.
68+
- Nový výbor dostává první závažný úkol, při kterém jej ideálně stínuje starý výbor a pomáhá mu k jeho dokončení: Kontaktovat právničku spolku, `AK Šichová <https://aksichova.cz/>`__, aby připravila papíry, kodifikovala výsledek voleb a změnu zanesla do státního rejstříku (úkol není hotov, dokud na justice.cz nejsou u Pyvce vidět nová jména).
6569
- Nový výbor oznámí své zvolení v :slack:`#announcements`.
6670
- Starý výbor zajistí vyhotovení zápisů ze zasedání členské schůze a z předání moci:
67-
- Vyhotoví :ref:`zápisy do této dokumentace <zapisy>`,
68-
- aktualizuje `soubor boards.toml <https://github.com/pyvec/docs.pyvec.org/blob/master/src/pyvec_docs/boards.toml>`_,
69-
- aktualizuje role členů v `seznamu členů <https://docs.google.com/spreadsheets/d/1n8hzBnwZ5ANkUCvwEy8rWsXlqeAAwu-5JBodT5OJx_I/edit#gid=0>`__, čímž by se měl aktualizovat i web Pyvce
71+
72+
- Vyhotoví :ref:`zápisy do této dokumentace <zapisy>`,
73+
- aktualizuje `soubor boards.toml <https://github.com/pyvec/docs.pyvec.org/blob/master/src/pyvec_docs/boards.toml>`_,
74+
- aktualizuje role členů v `seznamu členů <https://docs.google.com/spreadsheets/d/1n8hzBnwZ5ANkUCvwEy8rWsXlqeAAwu-5JBodT5OJx_I/edit#gid=0>`__, čímž by se měl aktualizovat i web Pyvce.
75+
7076
- Starý výbor předá novému vše ze seznamu níže.
7177

7278
Co předat
7379
---------
7480

7581
Tento seznam je potřeba průběžně aktualizovat a dokumentovat během toho, jak bude nový výbor narážet na místa, kam jim ještě chybí přístupy:
7682

77-
- Přístupy k seznamu členů tak, aby do něj mohl jen nový výbor,
78-
- `Trello výboru <https://trello.com/b/6GjKGJfq/board>`__,
79-
- placení sídla Pyvce,
80-
- přístup k bankovnímu účtu Pyvce a PayPalu, zrušit bankovní kartu a případně vytvořit novou,
81-
- předání papírové dokumentace spolku (šanon).
83+
- `Trello výboru <https://trello.com/b/6GjKGJfq/board>`__. Nejdřív se musí lidi pozvat do Workspace, potom i do nástěnky. Na nic jiného už Trello nepoužíváme, takže tady lze starý výbor vyházet.
84+
- Přístup do datové schránky spolku. Ten by snad měl přijít automaticky po tom, co se nový výbor zapíše do rejstříku.
85+
- Přenastavit přístupy a skupiny ve `správci hesel <https://hesla.pyvec.org>`_.
86+
- Přístup k bankovnímu účtu Pyvce, PayPalu, Stripu, apod. Toto je zpravidla možné až když je nový výbor zapsán v rejstříku a je k tomu potřeba jít do banky.
87+
- Telefonní čísla na 2FA do Google účtu. Mít tam aspoň dva lidi s přístupem.
88+
- Telefonní číslo na 2FA do Benevity. Bohužel lze nastavit jen jedno a posílají to pouze přes SMS.
89+
- Přístupy k `seznamu členů <https://docs.google.com/spreadsheets/d/1n8hzBnwZ5ANkUCvwEy8rWsXlqeAAwu-5JBodT5OJx_I/edit#gid=0>`__ tak, aby do něj mohl jen nový výbor. Nevyhazovat *service account*, díky kterému se členové přes API vypisují na web Pyvce, ale jinak všechny ostatní ano. Jsou tam osobní údaje členů, takže kvůli GDPR tam smí jen výbor.
90+
- Přístup k celé složce *Spolek* na Google Drive. Z tama není nutné vyhazovat starý výbor, spíš jde o to, aby tam všichni z nového výboru mohli.
91+
- Aktualizovat `tým na GitHubu <https://github.com/orgs/pyvec/teams/board>`_. Minimálně předseda by měl mít ownera na GitHubu k organizaci ``@pyvec``.
92+
- Placení sídla Pyvce.
93+
- Předání papírové dokumentace spolku (šanon). Už tam asi nic důležitého není a nové věci jsou už digitálně, ale co kdyby.
94+
- Přenastavení e-mailovů [email protected] a [email protected]. To *info* je externí e-mail pro všechny, kdo píšou Pyvci. Ten *board* se dřív používal jako interní e-mail výboru, ale dnes už se většinou používá Slack.
95+
- Nový výbor by si měl na Slacku vytvořit svůj privátní kanál, např. :slack:`#pyvec-board-2022-2025`. Každý výbor má svůj, v názvu má roky funkčního období.
96+
- Přenastavení skupiny ``@board`` na Slacku, aby označovala lidi z nového výboru. Minimálně předseda by měl mít ownera k celému Slacku.
97+
- Kdo chce, na Slacku si ve svém profilu může nastavit políčko *Pyvec Title* na *Board* nebo *Chair*. Kdo ze starého výboru tam měl *Board*, tak by si tam měl dát *Member*. Ale je otázka, jestli tohle vůbec někdo čte.

src/pyvec_docs/ext/board_dates.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from datetime import timedelta
2+
from typing import Any
3+
4+
from sphinx.application import Sphinx
5+
from sphinx.config import Config
6+
7+
from pyvec_docs.board import BOARDS_MANDATE_LENGTH, load_boards
8+
9+
10+
def board_dates(app: Sphinx, config: Config):
11+
board = load_boards()[0]
12+
13+
board_start = board.start_on
14+
board_end = board_start + timedelta(days=BOARDS_MANDATE_LENGTH * 365)
15+
16+
existing_epilog = app.config.rst_epilog or ""
17+
app.config.rst_epilog = (
18+
f"{existing_epilog}\n\n"
19+
f".. |board_start| replace:: {board_start:%-d.%-m.%Y}\n"
20+
f".. |board_end| replace:: {board_end:%Y}\n"
21+
)
22+
23+
24+
def setup(app: Sphinx) -> dict[str, Any]:
25+
app.connect("config-inited", board_dates)
26+
return {"version": "1.0", "parallel_read_safe": True, "parallel_write_safe": True}

0 commit comments

Comments
 (0)