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

Add ability to bulk add techlings and onboard members #456

Open
andrewsheng2 opened this issue Jan 7, 2022 · 2 comments
Open

Add ability to bulk add techlings and onboard members #456

andrewsheng2 opened this issue Jan 7, 2022 · 2 comments

Comments

@andrewsheng2
Copy link
Contributor

After the move of the Linux machines to Ubuntu, it looks like we can no longer send emails from them so our scripts to add new techlings and onboard members no longer work for sending welcome emails. Instead, the legacy Red Hat machines have to be used for the scripts.

Issue #453 will tackle emailing individual techlings when they request to join the mailing list, but we should also add the ability for officers to provide a list of names and Andrew IDs to add them all to the mailing list. Likewise, we should also add the ability for officers to directly onboard someone as a full member and to send out the welcome email.

At minimum, we just need for the ability to bulk send emails out to techlings and full members so we can remove that portion from our scripts.

For onboarding techlings:

For onboarding new members:

  • Emails should be sent to the Andrew ID as well as [email protected] from the email address [email protected]
  • Email sent should be from the contents of /afs/andrew/usr/abtech/private/scripts/mail.member
  • Email sent should have a subject of [AB Tech] Welcome to AB Tech $preferred_name!
  • Like issue Refactor Join Form on abtech.org #453, all email addresses, path locations, and email subject should be in a config file somewhere or be configurable from the Tracker UI

Wishlist for onboarding new members:

  • Create new Tracker accounts with the preferred names and Andrew IDs of the new members
  • Add Andrew IDs into the abtech:staff PTS groups on AFS
  • Remove Andrew ID from /afs/andrew/usr/abtech/abtech-recruit.dl if present and add to /afs/andrew/usr/abtech/abtech-bboard.dl if not already present. Note that Andrew IDs are stored without @andrew.cmu.edu in abtech-recruit.dl but includes it in abtech-bboard.dl
@DaAwesomeP
Copy link
Member

After the move of the Linux machines to Ubuntu, it looks like we can no longer send emails from them so our scripts to add new techlings and onboard members no longer work for sending welcome emails. Instead, the legacy Red Hat machines have to be used for the scripts.

Scripts could be fixed, but yeah not the best solution.

So yeah we have a member "bulk edit" but not a "bulk add."

I think the dlist management and sending initial emails should be in a separate interface from managing users since the dlist users are not necessarily associated with Tracker accounts. We can't really enforce that the email addresses that people signed up with to bboard long ago or configure in Tracker after the fact match the dlist. Also lots of alum accounts with various email addresses.

Currently the dlist files have lots of comments in them, but I think should move to primarily storing the dlist data in a Rails model (in the DB) and then Tracker will output a dlist file from that. This means we can also fully abandon the email sending from scripts, so the email template can be in the DB. So the models would be something like:

dlists: id, dlist_file_path (str), name (str), from_email (str), additional_to_email (str), template (long str), join_form (bool) where join_form enables it to be added to and sent from the join form.
dlist_entries: id, dlist_id, email (str), created_on (datetime), comment (longstr) where comment replaces the existing headings in the dlist files.

So the new interfaces would be:

  1. Add a new "bulk add" form similar to the bulk edit form to add users.
  2. Add a "dlist management" page that lets you manage the dlists.
  3. On a new "dlist users" page you could:
    1. Select the dlist to manage
    2. Select email addresses to add, remove, or edit
    3. Paste box to bulk add, remove, or edit
    4. Helper to lookup email addresses by Tracker member
    5. Checkbox to send initial email to members being added or edited

Wishlist: Link to unsubscribe!

The other question though is...are we just reinventing the wheel at this point? Andrew Mailman is about to go away so that isn't a solution, but maybe there are other CMU-offered solutions. Integration with Tracker is very nice though.

This is also a bit more flexible so that any number of dlists can be added, managed, or removed (not just bboard and techlings hard-coded in).

@andrewsheng2
Copy link
Contributor Author

I think the dlist management and sending initial emails should be in a separate interface from managing users since the dlist users are not necessarily associated with Tracker accounts. We can't really enforce that the email addresses that people signed up with to bboard long ago or configure in Tracker after the fact match the dlist. Also lots of alum accounts with various email addresses.

Yeah I agree that they should be in a separate interface.

The other question though is...are we just reinventing the wheel at this point? Andrew Mailman is about to go away so that isn't a solution, but maybe there are other CMU-offered solutions. Integration with Tracker is very nice though.

It does seem like we could be potentially reinventing the wheel. The main intention for this is mainly just so that we can mass send out welcome emails to people without doing manual work of copy/pasting email templates in the event that the Red Hat machines are no longer usable. I suppose in that case then there is no real need to store the email templates in AFS anyways if they aren't being used by the scripts. The sendmail command seems to be present in the Ubuntu machines but postfix hasn't been configured so that we can actually use that command. There could be possibly other ways we can fix the script into working but I haven't found a way yet.

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

No branches or pull requests

3 participants