Skip to content

Commit

Permalink
Merge pull request #326 from esrg-knights/fix/mailcow-lists-various
Browse files Browse the repository at this point in the history
Fix: Inactive committee members (display) + multiple global archive addresses
  • Loading branch information
EricTRL authored Aug 23, 2023
2 parents 5411925 + 19f7f25 commit 7516969
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
12 changes: 6 additions & 6 deletions mailcow_integration/admin_status/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ def _get_subscriberinfos_by_status(self, status: AliasStatus, subscribers: Query
blocklist += self.mailcow_manager.BLOCKLISTED_EMAIL_ADDRESSES
if alias_type == AliasCategory.GLOBAL_COMMITTEE:
email_field = "contact_email"
get_name = lambda sub: f"{sub.site_group.name} ({sub.get_type_display()})"
get_name = lambda sub: f"{sub.name} ({sub.get_type_display()})"
else:
blocklist += self._committee_addresses

Expand Down Expand Up @@ -189,8 +189,8 @@ def _init_global_committee_alias_list(self, aliases: List[MailcowAlias], mailbox
if not self.mailcow_manager.is_address_internal(address) and status != AliasStatus.RESERVED:
exp_routes = [[address, "Alias not located in Rspamd settings map."]]

subscribers = self._get_subscriberinfos_by_status(status, subscribers, alias, alias_type=AliasCategory.GLOBAL_COMMITTEE)
info = AliasInfos(status.name, subscribers, address, "gc_" + alias_address_to_id(address), address,
info_subscribers = self._get_subscriberinfos_by_status(status, subscribers, alias, alias_type=AliasCategory.GLOBAL_COMMITTEE)
info = AliasInfos(status.name, info_subscribers, address, "gc_" + alias_address_to_id(address), address,
"Allows mailing all committees at the same time.",
alias or mailbox, internal=True, exposure_routes=exp_routes, allow_opt_out=None, archive_addresses=settings.COMMITTEE_CONFIGS['global_archive_addresses']
)
Expand All @@ -203,14 +203,14 @@ def _init_committee_alias_list(self, aliases: List[MailcowAlias], mailboxes: Lis

for assoc_group in self.mailcow_manager.get_active_committees():
address = assoc_group.contact_email
subscribers = assoc_group.members.filter_active().order_by('email')
subscribers = assoc_group.members.order_by('email')

status, alias, mailbox = self._get_alias_status(address, subscribers, AliasCategory.COMMITTEE,
aliases, mailboxes, self.mailcow_manager.ALIAS_COMMITTEE_PUBLIC_COMMENT)

subscribers = self._get_subscriberinfos_by_status(status, subscribers, alias)
info = AliasInfos(status.name, subscribers, address, "c_" + str(assoc_group.id), assoc_group.site_group.name,
format_html("{} ({}): {}", assoc_group.site_group.name, assoc_group.get_type_display(), assoc_group.short_description),
info = AliasInfos(status.name, subscribers, address, "c_" + str(assoc_group.id), assoc_group.name,
format_html("{} ({}): {}", assoc_group.name, assoc_group.get_type_display(), assoc_group.short_description),
alias or mailbox, False, squire_edit_url=reverse("admin:committees_associationgroup_change", args=[assoc_group.id]),
archive_addresses=settings.COMMITTEE_CONFIGS['archive_addresses']
)
Expand Down
6 changes: 3 additions & 3 deletions mailcow_integration/tests/tests_view_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ def test_infos_valid(self):
self.assertEqual(subinfos[1], {'name': "Foo Oof — foo@example.com", 'invalid': True})

# Committee Subscribers
AssociationGroup.objects.create(site_group=Group.objects.create(name="Boardgamers"),
AssociationGroup.objects.create(name="Boardgamers",
type=AssociationGroup.COMMITTEE, contact_email="bg@example.com")
subinfos = self.view._get_subscriberinfos_by_status(AliasStatus.VALID, AssociationGroup.objects.all(), None, AliasCategory.GLOBAL_COMMITTEE)
self.assertEqual(len(subinfos), 1)
Expand Down Expand Up @@ -403,8 +403,8 @@ def test_init_committee_alias_list(self, committees_mock: Mock, status_mock: Moc
# AliasInfos returned
self.assertListEqual(status, [ AliasInfos(
AliasStatus.VALID.name, [],
committee.contact_email, "c_" + str(committee.id), committee.site_group.name,
format_html("{} ({}): {}", committee.site_group.name, committee.get_type_display(), committee.short_description),
committee.contact_email, "c_" + str(committee.id), committee.name,
format_html("{} ({}): {}", committee.name, committee.get_type_display(), committee.short_description),
None, False, squire_edit_url=reverse("admin:committees_associationgroup_change", args=[committee.id]),
archive_addresses=["archief@example.com"]
)])
Expand Down
2 changes: 1 addition & 1 deletion requirements/common.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ django-ical~=1.8.3 # iCalendar export
django-recurrence~=1.11.1 # Recurring Dates
django-import-export~=2.8.0 # Import/Export models
django-dynamic-preferences~=1.14.0 # Global Preferences / User Preferences
martor~=1.6.14 # Markdown Editor
martor~=1.6.14, <=1.6.26; # Markdown Editor
pymdown-extensions~=9.5 # Extra markdown features
django-pwa~=1.0.10 # Progressive Webapp
requests~=2.28.1 # Requests (needed for Mailcow API)
Expand Down

0 comments on commit 7516969

Please sign in to comment.