Skip to content

Member Registration Form#700

Draft
jakubfiala wants to merge 16 commits intoSuperCoopBerlin:masterfrom
jakubfiala:master
Draft

Member Registration Form#700
jakubfiala wants to merge 16 commits intoSuperCoopBerlin:masterfrom
jakubfiala:master

Conversation

@jakubfiala
Copy link
Copy Markdown

@jakubfiala jakubfiala commented Oct 25, 2025

#677

This PR adds the frontend for the New Member Registration Form, as designed and developed by @subetha and myself.

What's been done so far:

  • full registration form based on the existing paper form
  • easy to use form with two stages and progressive disclosure
  • option to register on behalf of a company (with adjusted form fields)
  • dynamic entry payment calculation based on share price + membership fee
  • dynamically generated declarations ("Erklärungen") at the end
  • overview of submitted data
  • validation incl. required fields, e-mail formatting, adult age enforcement (calculated based on current date)
  • success & error states
  • links to form in sidebar, as well as under the login card for easy access
  • DE translations

What needs to be done

image image image image image image image image

@jakubfiala jakubfiala marked this pull request as ready for review October 25, 2025 19:50
@jakubfiala jakubfiala changed the title WIP: Member Registration Form Member Registration Form Oct 25, 2025
Copy link
Copy Markdown
Collaborator

@Theophile-Madet Theophile-Madet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, thanks a lot for the PR!
I think it's a great start. I see you even did a bit of backend last week :)

I left small comments from a quick first look but nothing big.

Did you manage to get started fine? I see you updated and used the API clients, was it clear how to do that?

Do you want to keep working on this? If yes, would you be able to join the next IT meeting so that we can make a plan how to go forward? It's on Thursday, November 20th 18:30 to 19:30.
If not, we can maybe setup a dedicated meeting. It'd be nice to get feedback early from the member office and/or Vorstand, especially about the process on their side, confirmation, mails and all.

If we put the views behind a feature flag (see for example tapir.coop.views.membership_resignation.MembershipResignationList.get_context_data), we could merge this in master already and work with smaller PRs. That would make reviews easier and help avoid merge conflicts.

Comment on lines +357 to +361
#: dist/assets/member_registration-CVGcYZzC.js:6
msgid ""
"\n"
"I accept the Data Processing Agreement listed below:\n"
msgstr "Ich nehme die Datenschutzerklärung zur Kenntnis:"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When running manage.py compilemessages (when building the container or when deploying), these lines cause this error message:

Execution of msgfmt failed: /app/tapir/translations/locale/de/LC_MESSAGES/djangojs.po:361: 'msgid' and 'msgstr' entries do not both begin with '\n'
msgfmt: found 2 fatal errors
CommandError: compilemessages generated one or more errors.

Comment on lines +77 to +82
misc_group.add_link(
display_name=_("Become a Member"),
material_icon="person_add",
url=reverse_lazy("coop:member_self_registration"),
ordering=8,
)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could show that link only if the person is not logged in?

The sidebar menu code is a bit rudimentary but it should be possible check for that, see tapir.core.utils.SidebarLinkGroups.is_link_shown

declare let gettext: (english_text: string) => string;

enum RegistrationStage {
ONE,
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we get more descriptive names? Something like "personal info" and "legal stuff"

@@ -0,0 +1,45 @@
import { COOP_NAME, COOP_STREET, COOP_PLACE } from "./constants";
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally we'd get those from the backend, probably with an API call on page load.

@Theophile-Madet Theophile-Madet marked this pull request as draft November 12, 2025 17:40
@jakubfiala
Copy link
Copy Markdown
Author

Hey @Theophile-Madet - I'm sorry I'm just getting to this. Thanks for the code review, I appreciate the feedback! Unfortunately I'm really short on time so I don't know when I can continue, and it's a bit difficult to attend the IT AG meetings as I'm already doing my shifts as a fixed Team Lead. But if y'all don't have the capacity to pick this up, I'm hoping to find some time for it in December.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants