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

Updates #1633

Merged
merged 10 commits into from
Mar 27, 2024
Merged

Updates #1633

Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 2 additions & 4 deletions Ion.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,18 @@ Classifier: Framework :: Django :: 3.2
License-File: COPYING
Requires-Dist: argon2-cffi==21.3.0
Requires-Dist: autobahn==22.7.1
Requires-Dist: autopep8==1.7.0
Requires-Dist: Babel==2.10.3
Requires-Dist: bcrypt==4.0.0
Requires-Dist: beautifulsoup4==4.11.1
Requires-Dist: black==23.1.0
Requires-Dist: bleach==5.0.1
Requires-Dist: celery==5.2.7
Requires-Dist: certifi==2023.7.22
Requires-Dist: channels==3.0.5
Requires-Dist: channels-redis==3.4.1
Requires-Dist: contextlib2==21.6.0
Requires-Dist: cryptography==41.0.4
Requires-Dist: cryptography==42.0.4
Requires-Dist: decorator==5.1.1
Requires-Dist: Django==3.2.20
Requires-Dist: Django==3.2.25
Requires-Dist: django-cacheops==7.0.1
Requires-Dist: django-cors-headers==3.13.0
Requires-Dist: django-debug-toolbar==3.6.0
Expand Down
11 changes: 11 additions & 0 deletions Ion.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,8 @@ intranet/apps/enrichment/views.py
intranet/apps/enrichment/migrations/0001_initial.py
intranet/apps/enrichment/migrations/0002_alter_enrichmentactivity_options.py
intranet/apps/enrichment/migrations/0003_auto_20240307_2313.py
intranet/apps/enrichment/migrations/0004_enrichmentactivity_attended.py
intranet/apps/enrichment/migrations/0005_enrichmentactivity_attendance_taken.py
intranet/apps/enrichment/migrations/__init__.py
intranet/apps/error/__init__.py
intranet/apps/error/tests.py
Expand Down Expand Up @@ -522,6 +524,7 @@ intranet/apps/feedback/migrations/0002_auto_20151207_1933.py
intranet/apps/feedback/migrations/0003_auto_20160828_2058.py
intranet/apps/feedback/migrations/__init__.py
intranet/apps/files/__init__.py
intranet/apps/files/admin.py
intranet/apps/files/forms.py
intranet/apps/files/models.py
intranet/apps/files/tests.py
Expand Down Expand Up @@ -566,6 +569,8 @@ intranet/apps/logs/__init__.py
intranet/apps/logs/admin.py
intranet/apps/logs/forms.py
intranet/apps/logs/models.py
intranet/apps/logs/urls.py
intranet/apps/logs/views.py
intranet/apps/logs/migrations/0001_initial.py
intranet/apps/logs/migrations/0002_auto_20230613_1759.py
intranet/apps/logs/migrations/0003_request_request.py
Expand Down Expand Up @@ -903,6 +908,7 @@ intranet/static/css/groups.scss
intranet/static/css/hoco_ribbon.scss
intranet/static/css/hoco_scores.scss
intranet/static/css/login.scss
intranet/static/css/logs.scss
intranet/static/css/lostfound.scss
intranet/static/css/mobile.scss
intranet/static/css/oauth.scss
Expand Down Expand Up @@ -1123,6 +1129,7 @@ intranet/static/js/files.js
intranet/static/js/hoco_ribbon.js
intranet/static/js/hoco_scores.js
intranet/static/js/login.js
intranet/static/js/logs.js
intranet/static/js/polls-vote.js
intranet/static/js/polls.js
intranet/static/js/responsive.core.js
Expand Down Expand Up @@ -3442,6 +3449,10 @@ intranet/templates/itemreg/item_view.html
intranet/templates/itemreg/register_delete.html
intranet/templates/itemreg/register_form.html
intranet/templates/itemreg/search.html
intranet/templates/logs/home.html
intranet/templates/logs/pagination.html
intranet/templates/logs/query.html
intranet/templates/logs/request.html
intranet/templates/logs/admin/flag_request.html
intranet/templates/lostfound/founditem.html
intranet/templates/lostfound/founditem_delete.html
Expand Down
6 changes: 2 additions & 4 deletions Ion.egg-info/requires.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
argon2-cffi==21.3.0
autobahn==22.7.1
autopep8==1.7.0
Babel==2.10.3
bcrypt==4.0.0
beautifulsoup4==4.11.1
black==23.1.0
bleach==5.0.1
celery==5.2.7
certifi==2023.7.22
channels==3.0.5
channels-redis==3.4.1
contextlib2==21.6.0
cryptography==41.0.4
cryptography==42.0.4
decorator==5.1.1
Django==3.2.20
Django==3.2.25
django-cacheops==7.0.1
django-cors-headers==3.13.0
django-debug-toolbar==3.6.0
Expand Down
6 changes: 2 additions & 4 deletions docs/rtd-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
argon2-cffi==21.3.0
autobahn==22.7.1
autopep8==1.7.0
Babel==2.10.3
bcrypt==4.0.0
beautifulsoup4==4.11.1
black==23.1.0
bleach==5.0.1
celery==5.2.7
certifi==2023.7.22
channels==3.0.5
channels-redis==3.4.1
contextlib2==21.6.0
cryptography==41.0.4
cryptography==42.0.4
decorator==5.1.1
Django==3.2.20
Django==3.2.25
django-cacheops==7.0.1
django-cors-headers==3.13.0
django-debug-toolbar==3.6.0
Expand Down
8 changes: 8 additions & 0 deletions docs/sourcedoc/intranet.apps.files.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ intranet.apps.files package
Submodules
----------

intranet.apps.files.admin module
--------------------------------

.. automodule:: intranet.apps.files.admin
:members:
:undoc-members:
:show-inheritance:

intranet.apps.files.forms module
--------------------------------

Expand Down
16 changes: 16 additions & 0 deletions docs/sourcedoc/intranet.apps.logs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,22 @@ intranet.apps.logs.models module
:undoc-members:
:show-inheritance:

intranet.apps.logs.urls module
------------------------------

.. automodule:: intranet.apps.logs.urls
:members:
:undoc-members:
:show-inheritance:

intranet.apps.logs.views module
-------------------------------

.. automodule:: intranet.apps.logs.views
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

Expand Down
1 change: 0 additions & 1 deletion intranet/apps/announcements/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@


class AnnouncementTest(IonTestCase):

"""Tests for the announcements module."""

def setUp(self):
Expand Down
1 change: 1 addition & 0 deletions intranet/apps/auth/decorators.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
"""Decorators that restrict views to certain types of users."""

import time

from django.conf import settings
Expand Down
1 change: 0 additions & 1 deletion intranet/apps/dashboard/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@


class DashboardTest(IonTestCase):

"""Test for dashboard module"""

def setUp(self) -> None:
Expand Down
18 changes: 9 additions & 9 deletions intranet/apps/dashboard/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -366,12 +366,14 @@ def add_widgets_context(request, context):
today_midnight = timezone.localtime().replace(hour=0, minute=0, second=0, microsecond=0)
context.update(
{
"enrichments": EnrichmentActivity.objects.visible_to_user(user).filter(
time__gte=today_midnight,
time__lte=today_midnight + timedelta(days=1),
)
if settings.ENABLE_ENRICHMENT_APP
else [],
"enrichments": (
EnrichmentActivity.objects.visible_to_user(user).filter(
time__gte=today_midnight,
time__lte=today_midnight + timedelta(days=1),
)
if settings.ENABLE_ENRICHMENT_APP
else []
),
"senior_graduation_year": get_senior_graduation_year(),
}
)
Expand Down Expand Up @@ -470,8 +472,7 @@ def dashboard_view(request, show_widgets=True, show_expired=False, ignore_dashbo
is_student = user.is_student
is_teacher = user.is_teacher
is_senior = user.is_senior
is_global_admin = user.member_of("admin_all") and user.is_superuser
show_admin_widget = is_global_admin or announcements_admin or user.is_eighth_admin
show_admin_widget = user.is_global_admin or announcements_admin or user.is_eighth_admin
eighth_sponsor = user.get_eighth_sponsor()

# the URL path for forward/back buttons
Expand Down Expand Up @@ -518,7 +519,6 @@ def dashboard_view(request, show_widgets=True, show_expired=False, ignore_dashbo
"is_student": is_student,
"is_teacher": is_teacher,
"is_senior": is_senior,
"is_global_admin": is_global_admin,
"show_admin_widget": show_admin_widget,
"eighth_sponsor": eighth_sponsor,
"num_senior_destinations": num_senior_destinations,
Expand Down
15 changes: 10 additions & 5 deletions intranet/apps/eighth/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,33 @@ class EighthSponsorAdmin(SimpleHistoryAdmin):
list_display = ("first_name", "last_name", "user", "department", "full_time", "contracted_eighth", "online_attendance", "show_full_name")
list_filter = ("department", "full_time", "contracted_eighth", "online_attendance", "show_full_name")
ordering = ("last_name", "first_name")
search_fields = ("first_name", "last_name", "user__username")


class EighthRoomAdmin(SimpleHistoryAdmin):
list_display = ("name", "capacity", "available_for_eighth")
ordering = ("name",)
search_fields = ("name",)


class EighthActivityAdmin(SimpleHistoryAdmin):
list_display = ("name", "special", "administrative", "deleted", "sticky", "wed_a", "wed_b", "fri_a", "fri_b")
list_filter = ("special", "administrative", "deleted", "sticky", "wed_a", "wed_b", "fri_a", "fri_b")
ordering = ("name",)
search_fields = ("name",)


class EighthBlockAdmin(SimpleHistoryAdmin):
list_display = ("date", "block_letter", "comments", "signup_time", "locked")
list_filter = ("locked",)
ordering = ("date", "block_letter")
ordering = ("-date", "block_letter")


class EighthScheduledActivityAdmin(SimpleHistoryAdmin):
list_display = ("activity", "block", "comments", "admin_comments", "cancelled", "attendance_taken")
list_filter = ("block", "cancelled", "attendance_taken")
ordering = ("block", "activity")
list_filter = ("attendance_taken", "cancelled", "block")
ordering = ("-block", "activity__name")
search_fields = ("activity__name",)


class EighthSignupAdmin(SimpleHistoryAdmin):
Expand All @@ -48,9 +52,10 @@ def get_block(self, obj):
get_block.admin_order_field = "scheduled_activity__block" # type: ignore

list_display = ("user", "get_activity", "get_block", "after_deadline", "was_absent")
list_filter = ("scheduled_activity__block",)
ordering = ("scheduled_activity", "user")
list_filter = ("was_absent", "after_deadline", "scheduled_activity__block", "scheduled_activity__activity")
ordering = ("-scheduled_activity__block", "user__username")
raw_id_fields = ("user", "scheduled_activity")
search_fields = ("user__username", "user__first_name", "user__last_name", "scheduled_activity__activity__name")


admin.site.register(EighthSponsor, EighthSponsorAdmin)
Expand Down
1 change: 1 addition & 0 deletions intranet/apps/eighth/views/routers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Views that render different pages depending on the user that
requests them.
"""

from django.contrib.auth.decorators import login_required
from django.urls import resolve, reverse

Expand Down
10 changes: 9 additions & 1 deletion intranet/apps/enrichment/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,12 @@

from .models import EnrichmentActivity

admin.site.register(EnrichmentActivity)

class EnrichmentActivityAdmin(admin.ModelAdmin):
list_display = ("title", "location", "time", "capacity", "presign", "attendance_taken")
list_filter = ("time", "presign", "attendance_taken")
ordering = ("-time",)
search_fields = ("title", "description", "groups_allowed__name", "groups_blacklisted__name")


admin.site.register(EnrichmentActivity, EnrichmentActivityAdmin)
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 3.2.25 on 2024-03-23 23:35

from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('enrichment', '0003_auto_20240307_2313'),
]

operations = [
migrations.AddField(
model_name='enrichmentactivity',
name='attended',
field=models.ManyToManyField(blank=True, related_name='enrichments_attended', to=settings.AUTH_USER_MODEL),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.2.25 on 2024-03-24 02:14

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('enrichment', '0004_enrichmentactivity_attended'),
]

operations = [
migrations.AddField(
model_name='enrichmentactivity',
name='attendance_taken',
field=models.BooleanField(default=False),
),
]
3 changes: 3 additions & 0 deletions intranet/apps/enrichment/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ class EnrichmentActivity(models.Model):
capacity = models.SmallIntegerField(default=28)
attending = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True, related_name="enrichments_attending")

attended = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True, related_name="enrichments_attended")
attendance_taken = models.BooleanField(default=False)

presign = models.BooleanField(default=False)

groups_allowed = models.ManyToManyField(DjangoGroup, related_name="allowed_enrichments_set", blank=True)
Expand Down
27 changes: 20 additions & 7 deletions intranet/apps/enrichment/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,25 +242,38 @@ def enrichment_signup_view(request, enrichment_id):
@login_required
@deny_restricted
def enrichment_roster_view(request, enrichment_id):
"""Show the enrichment activity roster.

Args:
enrichment_id (int): the enrichment activity id
"""
is_enrichment_admin = request.user.has_admin_permission("enrichment")

enrichment = get_object_or_404(EnrichmentActivity, id=enrichment_id)

if request.method == "POST":
if not is_enrichment_admin:
raise http.Http404
present_user_ids = set(request.POST.keys())
present_user_ids.remove("csrfmiddlewaretoken")
present_users = enrichment.attending.filter(id__in=present_user_ids)
enrichment.attended.set(present_users)
enrichment.attendance_taken = True
enrichment.save()
return redirect("enrichment_roster", enrichment_id=enrichment_id)

enrichment_is_today = (
enrichment.time.astimezone(timezone.get_default_timezone()).date() == timezone.now().astimezone(timezone.get_default_timezone()).date()
)
roster = [
{
"user": user,
"present": enrichment.attended.filter(id=user.id).exists(),
}
for user in enrichment.attending.all().order_by("first_name", "last_name")
]

context = {
"enrichment": enrichment,
"authorized_enrichments": {enrichment.id if enrichment.user_can_signup(request.user) else None},
"blacklisted_enrichments": {enrichment.id if enrichment.user_is_blacklisted(request.user) else None},
"enrichment_time": enrichment.time.astimezone(timezone.get_default_timezone()),
"enrichment_is_today": enrichment_is_today,
"roster": enrichment.attending.all().order_by("first_name", "last_name"),
"roster": roster,
"is_enrichment_admin": is_enrichment_admin,
"today": timezone.now().date(),
}
Expand Down
5 changes: 5 additions & 0 deletions intranet/apps/files/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.contrib import admin

from .models import Host

admin.site.register(Host)
Loading
Loading