Skip to content

Commit

Permalink
schemas: add notifications config in schemas
Browse files Browse the repository at this point in the history
* adds notification config in questionnaires
* updates mail/users.py with new functions and tests
* adds functions for checking config conditions
* fix typo

* adds `custom` folder in mail, for notifications
* adds functions for subject/message/recipients
* adds unit tests
* updates schema configs with the new functions

* uses new procedure that makes use of schema configs
* updates schema configs
* adds documentation and docstrings
* tests for mails

* closes cernanalysispreservation#2215

* validate config on schema create/update

Signed-off-by: pamfilos <pamfilosf@gmail.com>
Co-authored-by: Ilias Koutsakis <ilias.koutsakis@cern.ch>
  • Loading branch information
Lilykos authored and pamfilos committed Jan 30, 2023
1 parent 0ba22d4 commit 06994cf
Show file tree
Hide file tree
Showing 54 changed files with 5,325 additions and 1,239 deletions.
2 changes: 2 additions & 0 deletions cap/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ def _(x):
CAP_SEND_MAIL = True
MAIL_DEFAULT_SENDER = SUPPORT_EMAIL

CAP_MAIL_HOST_URL = "https://analysispreservation.cern.ch"
CAP_MAIL_HOST_API_URL = "https://analysispreservation.cern.ch/api"

# For Flask-mail variables, the defaults are used, found here:
# https://pythonhosted.org/Flask-Mail/#configuring-flask-mail
Expand Down
238 changes: 236 additions & 2 deletions cap/modules/fixtures/schemas/cms-questionnaire.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,244 @@
"fullname":"CMS Statistics Questionnaire",
"experiment":"CMS",
"is_indexed":true,
"use_deposit_as_record":true,
"config": {
"reviewable": true
"reviewable": true,
"notifications": {
"actions": {
"publish": [
{
"subject": {
"template": "Questionnaire for {{ cadi_id if cadi_id else \"\" }} {{ published_id }} - {{ \"New Version of Published Analysis\" if revision > 0 else \"New Published Analysis\" }} | CERN Analysis Preservation",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}, {
"method": "revision"
}, {
"method": "published_id"
}]
},
"body": {
"template_file": "mail/body/experiments/cms/questionnaire_message_published.html",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}, {
"name": "title",
"path": "general_title"
},{
"method": "published_url"
}, {
"method": "cms_stats_committee_by_pag"
}, {
"method": "submitter_email"
}]
},
"recipients": {
"bcc": [{
"method": "get_cms_stat_recipients"
}, {
"method": "get_owner"
}, {
"method": "get_submitter"
}, {
"checks": [{
"path": "parton_distribution_functions",
"condition": "exists"
}],
"mails": {
"default": ["pdf-forum-placeholder@cern.ch"]
}
}, {
"checks": [{
"path": "multivariate_discriminants.mva_use",
"condition": "equals",
"value": "Yes"
}],
"mails": {
"default": ["cms-conveners-placeholder@cern.ch"]
}
}]
}
}, {
"subject": {
"template": "Questionnaire for {{ cadi_id if cadi_id else \"\" }} {{ published_id }} - {{ \"New Version of Published Analysis\" if revision > 0 else \"New Published Analysis\" }} | CERN Analysis Preservation",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}, {
"method": "revision"
}, {
"method": "published_id"
}]
},
"body": {
"template_file": "mail/body/experiments/cms/questionnaire_message_published_plain.html",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}, {
"name": "title",
"path": "general_title"
},{
"method": "published_url"
}, {
"method": "cms_stats_committee_by_pag"
}, {
"method": "submitter_email"
}],
"base_template": "mail/analysis_plain_text.html",
"plain": true
},
"recipients": {
"bcc": [{
"checks": [{
"path": "analysis_context.cadi_id",
"condition": "exists"
}],
"mails": {
"formatted": [{
"template": "{% if cadi_id %}hn-cms-{{ cadi_id }}@cern.ch{% endif %}",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}]
}]
}
}]
}
}, {
"subject": {
"template": "Questionnaire for {{ cadi_id if cadi_id else \"\" }} {{ published_id }} - {{ \"New Version of Published Analysis\" if revision > 0 else \"New Published Analysis\" }} | CERN Analysis Preservation",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}, {
"method": "revision"
}, {
"method": "published_id"
}]
},
"body": {
"template_file": "mail/body/experiments/cms/questionnaire_message_published.html",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}, {
"name": "title",
"path": "general_title"
},{
"method": "published_url"
}, {
"method": "cms_stats_committee_by_pag"
}, {
"method": "submitter_email"
}],
"base_template": "mail/analysis_plain_text.html",
"plain": true
},
"recipients": {
"bcc": [{
"op": "or",
"checks": [{
"path": "multivariate_discriminants.mva_use",
"condition": "equals",
"value": "Yes"
}],
"mails": {
"default": ["cms-conveners-jira-placeholder@cern.ch"]
}
}]
}
}
],
"review": [
{
"subject": {
"template": "Questionnaire for {{ cadi_id }} - New Review on Analysis | CERN Analysis Preservation",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}]
},
"body": {
"template_file": "mail/body/experiments/cms/questionnaire_message_review.html",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}, {
"name": "title",
"path": "general_title"
},{
"method": "working_url"
}, {
"method": "creator_email"
}, {
"method": "submitter_email"
}]
},
"recipients": {
"bcc": [{
"method": "get_owner"
}, {
"method": "get_submitter"
}]
}
}, {
"subject": {
"template": "Questionnaire for {{ cadi_id }} - New Review on Analysis | CERN Analysis Preservation",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}]
},
"body": {
"template_file": "mail/body/experiments/cms/questionnaire_message_review_plain.html",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}, {
"name": "title",
"path": "general_title"
},{
"method": "working_url"
}, {
"method": "creator_email"
}, {
"method": "submitter_email"
}],
"base_template": "mail/analysis_plain_text.html",
"plain": true
},
"recipients": {
"bcc": [
{
"checks": [{
"path": "analysis_context.cadi_id",
"condition": "exists"
}, {
"path": "parton_distribution_functions",
"condition": "is_egroup_member",
"value": "comittee-mail"
}],
"mails": {
"formatted": [{
"template": "{% if cadi_id %}hn-cms-{{ cadi_id }}@cern.ch{% endif %}",
"ctx": [{
"name": "cadi_id",
"path": "analysis_context.cadi_id"
}]
}]
}
}
]
}
}
]
}
}
},
"use_deposit_as_record":true,
"deposit_schema":{
"additionalProperties":false,
"$schema":"http://json-schema.org/draft-04/schema#",
Expand Down
Loading

0 comments on commit 06994cf

Please sign in to comment.