Skip to content

Commit 9b7ac7b

Browse files
committed
Merge branch 'audience'
2 parents ddbee55 + 4627e83 commit 9b7ac7b

File tree

6 files changed

+233
-199
lines changed

6 files changed

+233
-199
lines changed

Pipfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ apispec-webframeworks = "~=0.5.2"
2323
mysql-connector-python = "8.0.24"
2424
python-jose = "*"
2525
python-dotenv = "*"
26-
flask-migrate = "*"
26+
flask-migrate = "~=3.0.0"
2727
requests = "*"
2828
sentry-sdk = "*"
2929
psycopg2-binary = "*"

Pipfile.lock

Lines changed: 185 additions & 196 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

blueprints/v0.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,10 @@ def list_bellschedules(school_id):
355355

356356
schedules = BellScheduleDB.query.filter_by(school_id=school_id, soft_deleted=False)
357357

358-
return respond(BellScheduleSchema(exclude=('school_id',)).dump(schedules, many=True))
358+
excluded_fields = exclude_unless_logged_in(['internal_description'])
359+
excluded_fields.extend(('school_id',))
360+
361+
return respond(BellScheduleSchema(exclude=excluded_fields).dump(schedules, many=True))
359362

360363
@blueprint.route("/bellschedule/<string:bell_schedule_id>", strict_slashes=False, methods=['GET'])
361364
@check_headers
@@ -397,7 +400,10 @@ def get_bellschedule(bell_schedule_id):
397400
if schedule.last_modified == since:
398401
return respond(code=304) #Not Modified
399402

400-
return respond(BellScheduleSchema(exclude=('soft_deleted',)).dump(schedule))
403+
excluded_fields = exclude_unless_logged_in(['internal_description'])
404+
excluded_fields.extend(('soft_deleted',))
405+
406+
return respond(BellScheduleSchema(exclude=excluded_fields).dump(schedule))
401407

402408

403409
@blueprint.route("/bellschedule", strict_slashes=False, methods=['POST'])

common/db_schema.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class BellSchedule(db.Model):
4444
full_name = db.Column('bell_schedule_name', db.VARCHAR(length=75))
4545
meeting_times = db.relationship("BellScheduleMeetingTime", cascade="save-update, merge,delete, delete-orphan")
4646
display_name = db.Column('bell_schedule_display_name', db.VARCHAR(length=75))
47+
audience = db.Column('audience', db.VARCHAR(length=75), nullable=False, server_default="everyone")
48+
internal_description = db.Column('internal_description', db.VARCHAR(length=250), nullable=False, server_default="")
4749
creation_date = db.Column('creation_date', db.DateTime,
4850
default=datetime.utcnow())
4951
last_modified = db.Column('last_modified', db.DateTime,

common/helpers.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,13 @@ def get_api_user_id():
222222
return ""
223223

224224

225+
def exclude_unless_logged_in(fields: list):
226+
is_admin = check_for_roles(["admin", "school admin"])
227+
if is_admin:
228+
return []
229+
else:
230+
return fields
231+
225232
def get_token_auth_header():
226233
return get_valid_auth_header_of_type(AuthType.TOKEN)
227234

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
"""add audience and internal description to bell schedule
2+
3+
Revision ID: 9c3dd7f95cdc
4+
Revises: 2399c50496f7
5+
Create Date: 2025-09-03 18:05:04.456307
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
11+
12+
# revision identifiers, used by Alembic.
13+
revision = '9c3dd7f95cdc'
14+
down_revision = '2399c50496f7'
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade():
20+
# ### commands auto generated by Alembic - please adjust! ###
21+
op.add_column('bellschedules', sa.Column('audience', sa.VARCHAR(length=75), server_default='everyone', nullable=False))
22+
op.add_column('bellschedules', sa.Column('internal_description', sa.VARCHAR(length=250), server_default='', nullable=False))
23+
# ### end Alembic commands ###
24+
25+
26+
def downgrade():
27+
# ### commands auto generated by Alembic - please adjust! ###
28+
op.drop_column('bellschedules', 'internal_description')
29+
op.drop_column('bellschedules', 'audience')
30+
# ### end Alembic commands ###

0 commit comments

Comments
 (0)