Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix2588 workshop form #2596

Closed
wants to merge 46 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
c494703
emphasize diff b/t new & renewing membership
maneesha May 22, 2023
2d1b0fa
clearly define what extension is
maneesha May 22, 2023
ad74aca
define consortium membership
maneesha May 22, 2023
5bcc7e5
grammar (multiple roles, not both as we can have >2)
maneesha May 22, 2023
c7538e5
link to extension section
maneesha May 22, 2023
4515f57
clarify rolling over unused membership benefits
maneesha May 22, 2023
810f45c
note can't do bulk upload for IT learners'
maneesha May 22, 2023
07fbd62
list all new consents
maneesha May 22, 2023
fb9a3b3
clarification on how search works
maneesha May 22, 2023
6c6105a
note default view for training requests
maneesha May 22, 2023
87f482e
note how rollover benefits assigned (no more standards)
maneesha May 22, 2023
164b1c7
note recruitment view also includes date stamps
maneesha May 22, 2023
bfd20b2
note about warnings/errors when signing up for concurrent workshops
maneesha May 22, 2023
ed4a53a
screenshot for community roles
maneesha May 22, 2023
d0c83cb
create section on community roles
maneesha May 22, 2023
269b1ad
note community role required for recruitment
maneesha May 22, 2023
d2cbd54
list examples of community roles
maneesha May 22, 2023
773887e
note consents are defined in django admin
maneesha May 22, 2023
aa6e656
note membership roles are defined in django admin
maneesha May 22, 2023
632a223
note workshop request options are defined in django admin
maneesha May 22, 2023
89d4508
note continents are defined in django admin
maneesha May 22, 2023
73b0c85
note task roles are defined in django admin
maneesha May 22, 2023
105cc37
add section on workshop forms
maneesha May 22, 2023
f650878
update consents on community docs
maneesha May 22, 2023
f8b040b
note how to request update of email or gh
maneesha May 22, 2023
b7f5d8e
make email addresses clickable
maneesha May 22, 2023
7dadda4
note what consents are required
maneesha May 22, 2023
5a4c782
note which consents are required
maneesha May 22, 2023
6bdf74b
slight clarification to info on roles
maneesha May 22, 2023
ec6e8af
fix link to instructor training curriculum
maneesha May 22, 2023
c60c2af
another email made clickable
maneesha May 22, 2023
f7ee046
typo
maneesha May 22, 2023
6a4b821
restructure badge/instructor badge section
maneesha May 22, 2023
acad5a5
include info on community roles
maneesha May 22, 2023
4dbde69
escape asterisk
maneesha May 22, 2023
aa22fcb
add link to privacy policy
maneesha May 22, 2023
8ceeda1
note deprecated consents fields
maneesha May 22, 2023
8efcfbd
add 'commonly used fields' header throughout for consistency
maneesha May 22, 2023
080dc1c
typo
maneesha May 22, 2023
8fd74cb
expand examples of Terms
maneesha May 22, 2023
afbafdb
note why we need distinct 'training_request_content'
maneesha May 22, 2023
ce68b88
typo
maneesha May 22, 2023
b97048a
expand Terms heading
maneesha May 22, 2023
8034530
rm prompt re:online/inperson from other info ques on wkshp req form
maneesha Dec 8, 2023
21ae6b2
rm prompt re:online/inperson from other info ques on wkshp inq form
maneesha Dec 8, 2023
c4b8728
migrations for changing other-info on wkshop forms
maneesha Dec 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 4.2.3 on 2023-12-08 16:14

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("extrequests", "0030_auto_20211231_1108"),
]

operations = [
migrations.AlterField(
model_name="workshopinquiryrequest",
name="user_notes",
field=models.TextField(
blank=True,
help_text="Please share any other information to help ensure we can best support you in coordinating the event.",
verbose_name="Is there any other information you would like to share with us?",
),
),
]
6 changes: 2 additions & 4 deletions amy/extrequests/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,10 +372,8 @@ class WorkshopInquiryRequest(
)
user_notes = models.TextField(
blank=True,
verbose_name="Will this workshop be conducted in-person or online? "
"Is there any other information you would like to share "
"with us?",
help_text="Knowing if this workshop is on-line or in-person will "
verbose_name="Is there any other information you would like to share with us?",
help_text="Please share any other information to "
"help ensure we can best support you in coordinating the event.",
)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Generated by Django 4.2.3 on 2023-12-08 16:14

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("workshops", "0257_alter_membership_variant"),
]

operations = [
migrations.AlterField(
model_name="organization",
name="affiliated_organizations",
field=models.ManyToManyField(blank=True, to="workshops.organization"),
),
migrations.AlterField(
model_name="workshoprequest",
name="user_notes",
field=models.TextField(
blank=True,
help_text="Please share any other information to help ensure we can best support you in coordinating the event.",
verbose_name="Is there any other information you would like to share with us?",
),
),
]
6 changes: 2 additions & 4 deletions amy/workshops/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3151,10 +3151,8 @@ class WorkshopRequest(
)
user_notes = models.TextField(
blank=True,
verbose_name="Will this workshop be conducted in-person or online? "
"Is there any other information you would like to share "
"with us?",
help_text="Knowing if this workshop is on-line or in-person will "
verbose_name="Is there any other information you would like to share with us?",
help_text="Please share any other information to "
"help ensure we can best support you in coordinating the event.",
)

Expand Down
32 changes: 24 additions & 8 deletions docs/amy_database_structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ The primary tables used in AMY (that will appear in most queries) are those that
* `secondary_email` Alternate email address. Optional.
* `gender` Options are `Prefer not to say (undisclosed)` `Female` `Gender variant / non-conforming` `Male` `Other`.
* `gender_other` Text if individual selected `Other`
* `may_contact` A boolean field. We may not contact people if this field is false. This field has been replaced by [new-style consents](#consent) (see also [2021 Consents Project](./design/projects/2021_consents.md)).
* `github` Individual's GitHub user id
* `twitter` Individual's Twitter user id
* `orcid` Individual's ORCID iD
Expand All @@ -57,9 +56,7 @@ The primary tables used in AMY (that will appear in most queries) are those that
* `affiliation` A free text field representing the person's self identified institutional affliation. This is **not** linked to the `workshops_organization` table.
* `occupation` A free text field representing the person's self identified occupation
* `user_notes` Free text field with notes from the individual
* `publish_profile` A boolean field that acknowledges permission to publish the individual's profile on our website pages such as the [Instructors](https://carpentries.org/instructors/), [Trainers](https://carpentries.org/trainers/), or [Maintainers](https://carpentries.org/maintainers/) pages. This field has been replaced by new-style consents.
* `country` Self identified country of residence. Stored as the [two character country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
* `lesson_publication_consent` Allows individual to consent to publishing their name associated with lesson contributions. Individual can select publication by name, ORCID iD, or GitHub id, or not consent to publishing their name or identity. This field has been replaced by new-style consents.

#### Less commonly used fields

Expand All @@ -69,16 +66,25 @@ The primary tables used in AMY (that will appear in most queries) are those that
* `last_updated_at` Autogenerated timestamp when the record was last updated
* `duplication_reviewed_on` Timestamp tracking when a [potential duplicate individual's record was reviewed](https://amy.carpentries.org/reports/duplicate_persons/)
* `is_active` A boolean field. Only active users are able to log in to AMY
* `data_privacy_agreement` Acknowledges user has read our data policy. Required the first time any user logs in

#### Other fields

* `password` Not stored as plain text. Do not use or modify this field for anything.

#### Unused fields
These fields were deprecated in introducing the new consents model.

* `data_privacy_agreement` Acknowledges user has read our data policy. Required the first time any user logs in
* `may_contact` A boolean field. We may not contact people if this field is false. This field has been replaced by [new-style consents](#consent) (see also [2021 Consents Project](./design/projects/2021_consents.md)).
* `publish_profile` A boolean field that acknowledges permission to publish the individual's profile on our website pages such as the [Instructors](https://carpentries.org/instructors/), [Trainers](https://carpentries.org/trainers/), or [Maintainers](https://carpentries.org/maintainers/) pages. This field has been replaced by new-style consents.
* `lesson_publication_consent` Allows individual to consent to publishing their name associated with lesson contributions. Individual can select publication by name, ORCID iD, or GitHub id, or not consent to publishing their name or identity. This field has been replaced by new-style consents.

### Memberships

`workshops_membership` - Stores information about each membership agreement.

#### Commonly used fields

* `id` Sequential, automatically assigned integer.
* `variant` Membership type (Gold, Silver, etc.)
* `agreement_start` and `agreement_end` Membership term start and end dates
Expand All @@ -105,6 +111,8 @@ The primary tables used in AMY (that will appear in most queries) are those that

`workshops_member` - Stores information about organisations and their roles in memberships.

#### Commonly used fields

* `id` Sequential, automatically assigned integer.
* `membership_id` - Integer linking membership instance
* `organization_id` - Integer linking organisation instance
Expand All @@ -114,6 +122,8 @@ The primary tables used in AMY (that will appear in most queries) are those that

`workshops_memberrole` - Stores roles for organisations in memberships.

#### Commonly used fields

* `id` Sequential, automatically assigned integer.
* `name` string with role's name, e.g. `contact_signatory` - preferably a computer-friendly format
* `verbose_name` string with role's name suitable for humans, e.g. `Contact Signatory`
Expand All @@ -122,6 +132,8 @@ The primary tables used in AMY (that will appear in most queries) are those that

`fiscal_membershiptask` - Stores information about persons and their roles in memberships.

#### Commonly used fields

* `id` Sequential, automatically assigned integer.
* `membership_id` - Integer linking membership instance
* `person_id` - Integer linking person instance
Expand All @@ -131,6 +143,8 @@ The primary tables used in AMY (that will appear in most queries) are those that

`fiscal_membershippersonrole` - Stores roles for persons in memberships.

#### Commonly used fields

* `id` Sequential, automatically assigned integer.
* `name` string with role's name - preferably a computer-friendly format
* `verbose_name` string with role's name suitable for humans
Expand All @@ -140,6 +154,8 @@ The primary tables used in AMY (that will appear in most queries) are those that

`workshops_organization` - Stores all organizations in AMY.

#### Commonly used fields

* `id` Sequential, automatically assigned integer. This is used by the `host_id` and `administrator_id` fields in the `workshops_event` table, and the `organization_id` field in the `workshops_membership` table.
* `domain` Website of the organization
* `fullname` Human friendly name of the organization
Expand Down Expand Up @@ -220,9 +236,9 @@ The primary tables used in AMY (that will appear in most queries) are those that
* `requirement_id` id of the requirement that is being recorded. This is linked to the `workshops_trainingrequirement` table
* `trainee_id` id of the trainee being evaluated. This is linked to the `workshops_person` table

### Term
### Terms (Consents)

`consents_term` - Stores all Terms in AMY (i.e. the privary policy).
`consents_term` - Stores all Terms in AMY (i.e. the privacy policy, consent to publish, consent to contact, etc.).

#### Archive Behavior

Expand All @@ -232,7 +248,7 @@ When `Terms` are archived (`archived_at` timestamp is set), that `Term`'s `TermO

* `slug` slug of the term. Used to uniquely identify the term.
* `content` content of the term. This text shown to users when they consent.
* `training_request_content` if set, the regular `content` will be replaced with this text when displaying this term on the instructor training request form.
* `training_request_content` if set, the regular `content` will be replaced with this text when displaying this term on the instructor training request form. This ensures we can collect consent in advance.
* `required_type` determines whether or not a term is considered required for the user or not. If required it will be shown to the user when they log in to consent to.
* `help_text` additional text shown to the user in order to give more context on the term.
* `short_description` a short description of the consent, shown in the admin view of a profile
Expand All @@ -248,7 +264,7 @@ When TermOptions are archived (`archived_at` timestamp is set), any `Consents` t

#### Commonly used fields

* `term` a required foreign key to term. Unarchived term options attached to a term will be displayed to the user when the term is rendered.
* `term_id` a required foreign key to term. Unarchived term options attached to a term will be displayed to the user when the term is rendered.
* `option_type` determines whether or not a term option is considered an affirmative aggrement to the term or the user has declined the term.
* `content` the text displayed to the user when the term is rendered.
* `archived_at` - a nullable timestamp
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ AMY is a database application for The Carpentries. It allows The Carpentries to
* individual roles and badges
* institutional membership

Most functionality is limited to authorized administrative users. Individuals whose data is tracked in AMY can view only their own profile page.
Most functionality is limited to authorized administrative users. Individuals whose data is tracked in AMY can view only their own profile page. Data is stored in accordance with [The Carpentries privacy policy](https://docs.carpentries.org/topic_folders/policies/privacy.html).

* Review the [community users guide](./users_guide/community_index/)
* Review the [administrator users guide](./users_guide/admin_index/)
Expand Down
Loading