From b1614f22998f1ff1f9566381514c80dd71087def Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 14 Aug 2026 13:30:01 +0200 Subject: [PATCH 1/5] Add optional 'coc_mail' column/field to the members list --- src/pyvecorg/build.py | 6 +++++- src/pyvecorg/data/definitions/member_schema.json | 3 +++ tests/test_data.py | 6 ++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/pyvecorg/build.py b/src/pyvecorg/build.py index b796919..6e35616 100644 --- a/src/pyvecorg/build.py +++ b/src/pyvecorg/build.py @@ -43,7 +43,7 @@ def parse_members(rows): def coerce_member(member): - return { + result = { 'name': strip_whitespace(member.get('nickname', member.get('name'))), 'role': strip_whitespace(member.get('role', 'member')), 'github': strip_whitespace(member.get('github')), @@ -52,6 +52,10 @@ def coerce_member(member): 'linkedin': strip_whitespace(member.get('linkedin')), 'avatar_filename': strip_whitespace(member.get('avatar_filename')), } + if coc_mail := strip_whitespace(member.get('coc_mail')): + result['coc_mail'] = coc_mail + return result + def strip_whitespace(value): diff --git a/src/pyvecorg/data/definitions/member_schema.json b/src/pyvecorg/data/definitions/member_schema.json index 92508ed..a0a0143 100644 --- a/src/pyvecorg/data/definitions/member_schema.json +++ b/src/pyvecorg/data/definitions/member_schema.json @@ -22,6 +22,9 @@ }, "avatar_filename": { "type": "string" + }, + "coc_mail": { + "type": "string" } }, "additionalProperties": false, diff --git a/tests/test_data.py b/tests/test_data.py index 5810895..65b64c7 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -195,6 +195,12 @@ def test_coerce_member_whitespace(): assert coerce_member(member)['mastodon'] == '@pyconcz@floss.social' +def test_coerce_member_coc_mail(): + member = {'coc_mail': ' inbox@example.com'} + + assert coerce_member(member)['coc_mail'] == 'inbox@example.com' + + @pytest.mark.parametrize('value, expected', [ (None, None), ('', None), From bd31db55abe79db1bb3cb4ba313cd95808a67263 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 14 Aug 2026 15:27:10 +0200 Subject: [PATCH 2/5] Add CoC contacts --- src/pyvecorg/data/coc.yaml | 26 ++++++++++++++++++++++---- src/pyvecorg/templates/coc.html | 22 ++++++++++++++++++++-- src/pyvecorg/views.py | 2 +- 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/src/pyvecorg/data/coc.yaml b/src/pyvecorg/data/coc.yaml index b8deada..3a074aa 100644 --- a/src/pyvecorg/data/coc.yaml +++ b/src/pyvecorg/data/coc.yaml @@ -47,7 +47,7 @@ text: ## Co dělat, když jste svědky nebo oběťmi nepřijatelného chování - Pokud jste obětí nebo svědkem nepřijatelného chování, nebo máte jakékoliv jiné obavy, co nejdříve to nahlaste organizátorům akce. + Pokud jste obětí nebo svědkem nepřijatelného chování, nebo máte jakékoliv jiné obavy, co nejdříve to nahlaste na jeden z kontaktů uvedený níže. Náš tým se postará o to, abyste byli v bezpečí. Jakmile budete v bezpečí, požádáme vás o podrobnosti o tom, co se stalo. Chápeme, že to může být nepříjemné, ale budeme s vámi jednat s respektem a můžete si přivést někoho na podporu. Nebudeme vás nutit konfrontovat nikoho osobně a vaše identita zůstane anonymní. @@ -57,10 +57,19 @@ text: ## Řešení stížností - Pokud máte pocit, že jste byli neprávem obviněni z porušení tohoto Kodexu chování, můžete se obrátit na jednoho z organizátorů akce s popisem vaší stížnosti. + Pokud máte pocit, že jste byli neprávem obviněni z porušení tohoto Kodexu chování, můžete se obrátit na kontakty níže. Vaše stížnost bude vyřešena v souladu s našimi vnitřními pravidly. + ## Kontakty + + Hlášení a stížnosti posílejte na následující kontakty: + + * Pokud má akce (např. konference) vlastní seznam kontaktů, využijte ten. + * Pokud nemá nebo ho nechcete využít (např. se obáváte střetu zájmů), pošlete stížnost na email [board@pyvec.org](mailto:board@pyvec.org?subject=Stížnost ohledně kodexu chování). Stížnost přijde všem členům výboru spolku Pyvec. + * Nechcete-li aby stížnost četl celý výbor, můžete se obrátit na jeho jednotlivé členy: + {COC_MEMBER_LIST} + ## Inspirace Tento Kodex chování byl inspirován [Berlínským kodexem chování](https://berlincodeofconduct.org/) a kodexem chování [JS Conf](https://2018.jsconf.eu/code-of-conduct/). @@ -109,7 +118,7 @@ text: ## If You Witness or Are Subject to Unacceptable Behavior - If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. + If you are subject to or witness unacceptable behavior, or have any other concerns, please notify one of the contacts listed below. Our staff will ensure you are safe. Once safe, we’ll ask you to tell us about what happened. This can be upsetting, but we’ll handle it as respectfully as possible, and you can bring someone to support you. You won’t be asked to confront anyone and we won’t tell anyone who you are. @@ -119,10 +128,19 @@ text: ## Addressing Grievances - If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify one of the event organizers with a concise description of your grievance. + If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify one of the contacts below with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies. + ## Contacts + + Please send reports and grievances to the following contacts: + + * If the event (for example, a conference) publishes a Code of Conduct contacts, notify them. + * Otherwise, or if you want to use those contacts (for example, you are worried about a conflict of interest), send an email to [board@pyvec.org](mailto:board@pyvec.org?subject=Code of Conduct). The message will reach the Pyvec Board of directors. + * If you do not want the whole Board to read your message, you can contact its members individually: + {COC_MEMBER_LIST} + ## Credits This Code of Conduct was inspired by the [Berlin](https://berlincodeofconduct.org/) and [JS Conf](https://2018.jsconf.eu/code-of-conduct/) codes of conduct. diff --git a/src/pyvecorg/templates/coc.html b/src/pyvecorg/templates/coc.html index 731914c..f98eaf2 100644 --- a/src/pyvecorg/templates/coc.html +++ b/src/pyvecorg/templates/coc.html @@ -2,9 +2,27 @@ {% block cover %}{% endblock %} +{% macro coc_contact_list() -%} + +{%- endmacro %} + {% block content %}

{{ coc.heading }}

- {{ coc.text|markdown }} + {{ coc.text + | markdown + | replace('{COC_MEMBER_LIST}', coc_contact_list()) + }}
-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/pyvecorg/views.py b/src/pyvecorg/views.py index 17fc414..19a71dd 100755 --- a/src/pyvecorg/views.py +++ b/src/pyvecorg/views.py @@ -54,4 +54,4 @@ def coc(lang): context = select_language(data, lang) context['lang'] = lang context['this'] = 'coc' - return render_template('coc.html', **context) \ No newline at end of file + return render_template('coc.html', **context) From b770eeb9f38ee64e80b8544f08eeeef99c039e5f Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 14 Aug 2026 15:41:09 +0200 Subject: [PATCH 3/5] Work* with empty members list --- src/pyvecorg/templates/coc.html | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/pyvecorg/templates/coc.html b/src/pyvecorg/templates/coc.html index f98eaf2..082b377 100644 --- a/src/pyvecorg/templates/coc.html +++ b/src/pyvecorg/templates/coc.html @@ -4,16 +4,18 @@ {% macro coc_contact_list() -%}
    - {% for member in members_list.board %} - {% if 'coc_mail' in member %} -
  • - {{ member.name }}: - - {{ member.coc_mail }} - -
  • - {% endif %} - {% endfor %} + {% if members_list %} + {% for member in members_list.board %} + {% if 'coc_mail' in member %} +
  • + {{ member.name }}: + + {{ member.coc_mail }} + +
  • + {% endif %} + {% endfor %} + {% endif %}
{%- endmacro %} From 1107c04661602f950c5832b9805433a834634cc8 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 15 Aug 2026 14:10:01 +0200 Subject: [PATCH 4/5] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Miro Hrončok --- src/pyvecorg/data/coc.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pyvecorg/data/coc.yaml b/src/pyvecorg/data/coc.yaml index 3a074aa..1a7ba95 100644 --- a/src/pyvecorg/data/coc.yaml +++ b/src/pyvecorg/data/coc.yaml @@ -66,8 +66,8 @@ text: Hlášení a stížnosti posílejte na následující kontakty: * Pokud má akce (např. konference) vlastní seznam kontaktů, využijte ten. - * Pokud nemá nebo ho nechcete využít (např. se obáváte střetu zájmů), pošlete stížnost na email [board@pyvec.org](mailto:board@pyvec.org?subject=Stížnost ohledně kodexu chování). Stížnost přijde všem členům výboru spolku Pyvec. - * Nechcete-li aby stížnost četl celý výbor, můžete se obrátit na jeho jednotlivé členy: + * Pokud nemá, nebo ho nechcete využít (např. se obáváte střetu zájmů), pošlete stížnost na e-mail [board@pyvec.org](mailto:board@pyvec.org?subject=Stížnost ohledně kodexu chování). Stížnost přijde všem členům výboru spolku Pyvec. + * Nechcete-li, aby stížnost četl celý výbor, můžete se obrátit na tyto jeho jednotlivé členy: {COC_MEMBER_LIST} ## Inspirace @@ -137,7 +137,7 @@ text: Please send reports and grievances to the following contacts: * If the event (for example, a conference) publishes a Code of Conduct contacts, notify them. - * Otherwise, or if you want to use those contacts (for example, you are worried about a conflict of interest), send an email to [board@pyvec.org](mailto:board@pyvec.org?subject=Code of Conduct). The message will reach the Pyvec Board of directors. + * Otherwise, or if you don't want to use those contacts (for example, you are worried about a conflict of interest), send an email to [board@pyvec.org](mailto:board@pyvec.org?subject=Code of Conduct). The message will reach the Pyvec Board of directors. * If you do not want the whole Board to read your message, you can contact its members individually: {COC_MEMBER_LIST} From c7637a459ce88637dcf935eb514b04274c9c3991 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 15 Aug 2026 14:12:17 +0200 Subject: [PATCH 5/5] Update src/pyvecorg/data/coc.yaml --- src/pyvecorg/data/coc.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pyvecorg/data/coc.yaml b/src/pyvecorg/data/coc.yaml index 1a7ba95..1be0236 100644 --- a/src/pyvecorg/data/coc.yaml +++ b/src/pyvecorg/data/coc.yaml @@ -66,7 +66,7 @@ text: Hlášení a stížnosti posílejte na následující kontakty: * Pokud má akce (např. konference) vlastní seznam kontaktů, využijte ten. - * Pokud nemá, nebo ho nechcete využít (např. se obáváte střetu zájmů), pošlete stížnost na e-mail [board@pyvec.org](mailto:board@pyvec.org?subject=Stížnost ohledně kodexu chování). Stížnost přijde všem členům výboru spolku Pyvec. + * Pokud nemá, nebo ho nechcete využít (např. se obáváte střetu zájmů), pošlete stížnost na e-mail [board@pyvec.org](mailto:board@pyvec.org?subject=Kodex chování). Stížnost přijde všem členům výboru spolku Pyvec. * Nechcete-li, aby stížnost četl celý výbor, můžete se obrátit na tyto jeho jednotlivé členy: {COC_MEMBER_LIST}