We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Don't revoke staff status for superusers
### Describe the bug
After #312, staff status will get revoked for superusers too. That shouldn't happen

### How to reproduce
Have a super user that is not in a committee.

### Expected behaviour
No staff status revoking

### Screenshots

### Additional context


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `website/activemembers/services.py`
Content:
```
1 from django.db.models import Count, Q
2 from django.utils import timezone
3 
4 from activemembers.models import Committee
5 from members.models.member import Member
6 
7 
8 def generate_statistics() -> dict:
9     """Generate statistics about number of members in each committee."""
10     committees = Committee.active_objects.annotate(
11         member_count=(
12             Count(
13                 "members",
14                 filter=(
15                     Q(membergroupmembership__until=None)
16                     | Q(membergroupmembership__until__gte=timezone.now())
17                 ),
18             )
19         )
20     )
21 
22     data = {
23         "labels": [],
24         "datasets": [
25             {"data": []},
26         ],
27     }
28     for committee in committees:
29         data["labels"].append(committee.name)
30         data["datasets"][0]["data"].append(committee.member_count)
31 
32     return data
33 
34 
35 def revoke_staff_permission_for_users_in_no_commitee():
36     members = Member.objects.filter(is_staff=True)
37     revoked = []
38     for member in members:
39         if member.get_member_groups().count() == 0:
40             revoked.append(member.id)
41             member.is_staff = False
42             member.save()
43     return Member.objects.filter(pk__in=revoked)
44
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/website/activemembers/services.py b/website/activemembers/services.py
--- a/website/activemembers/services.py
+++ b/website/activemembers/services.py
@@ -36,7 +36,7 @@
     members = Member.objects.filter(is_staff=True)
     revoked = []
     for member in members:
-        if member.get_member_groups().count() == 0:
+        if member.get_member_groups().count() == 0 and not member.is_superuser:
             revoked.append(member.id)
             member.is_staff = False
             member.save()

{"golden_diff": "diff --git a/website/activemembers/services.py b/website/activemembers/services.py\n--- a/website/activemembers/services.py\n+++ b/website/activemembers/services.py\n@@ -36,7 +36,7 @@\n     members = Member.objects.filter(is_staff=True)\n     revoked = []\n     for member in members:\n-        if member.get_member_groups().count() == 0:\n+        if member.get_member_groups().count() == 0 and not member.is_superuser:\n             revoked.append(member.id)\n             member.is_staff = False\n             member.save()\n", "issue": "Don't revoke staff status for superusers\n### Describe the bug\r\nAfter #312, staff status will get revoked for superusers too. That shouldn't happen\r\n\r\n### How to reproduce\r\nHave a super user that is not in a committee.\r\n\r\n### Expected behaviour\r\nNo staff status revoking\r\n\r\n### Screenshots\r\n\r\n### Additional context\r\n\n", "before_files": [{"content": "from django.db.models import Count, Q\nfrom django.utils import timezone\n\nfrom activemembers.models import Committee\nfrom members.models.member import Member\n\n\ndef generate_statistics() -> dict:\n    \"\"\"Generate statistics about number of members in each committee.\"\"\"\n    committees = Committee.active_objects.annotate(\n        member_count=(\n            Count(\n                \"members\",\n                filter=(\n                    Q(membergroupmembership__until=None)\n                    | Q(membergroupmembership__until__gte=timezone.now())\n                ),\n            )\n        )\n    )\n\n    data = {\n        \"labels\": [],\n        \"datasets\": [\n            {\"data\": []},\n        ],\n    }\n    for committee in committees:\n        data[\"labels\"].append(committee.name)\n        data[\"datasets\"][0][\"data\"].append(committee.member_count)\n\n    return data\n\n\ndef revoke_staff_permission_for_users_in_no_commitee():\n    members = Member.objects.filter(is_staff=True)\n    revoked = []\n    for member in members:\n        if member.get_member_groups().count() == 0:\n            revoked.append(member.id)\n            member.is_staff = False\n            member.save()\n    return Member.objects.filter(pk__in=revoked)\n", "path": "website/activemembers/services.py"}], "after_files": [{"content": "from django.db.models import Count, Q\nfrom django.utils import timezone\n\nfrom activemembers.models import Committee\nfrom members.models.member import Member\n\n\ndef generate_statistics() -> dict:\n    \"\"\"Generate statistics about number of members in each committee.\"\"\"\n    committees = Committee.active_objects.annotate(\n        member_count=(\n            Count(\n                \"members\",\n                filter=(\n                    Q(membergroupmembership__until=None)\n                    | Q(membergroupmembership__until__gte=timezone.now())\n                ),\n            )\n        )\n    )\n\n    data = {\n        \"labels\": [],\n        \"datasets\": [\n            {\"data\": []},\n        ],\n    }\n    for committee in committees:\n        data[\"labels\"].append(committee.name)\n        data[\"datasets\"][0][\"data\"].append(committee.member_count)\n\n    return data\n\n\ndef revoke_staff_permission_for_users_in_no_commitee():\n    members = Member.objects.filter(is_staff=True)\n    revoked = []\n    for member in members:\n        if member.get_member_groups().count() == 0 and not member.is_superuser:\n            revoked.append(member.id)\n            member.is_staff = False\n            member.save()\n    return Member.objects.filter(pk__in=revoked)\n", "path": "website/activemembers/services.py"}]}