Skip to content
This repository has been archived by the owner on Sep 7, 2020. It is now read-only.

Collapsing names for huge navbars #222

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
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
5 changes: 4 additions & 1 deletion oh_queue/static/js/components/admin_appointments_manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,11 @@ function AdminAppointmentsManager({ state }) {
<tr>
<td>
<p>
How many appointments should a student have be pending simultaneously?
How many appointments should a student have be pending simultaneously?
</p>
(by
<ConfigLinkedToggle config={state.config} configKey="appointment_or_minutes" onText="minutes" offText="number"/>
)
</td>
<td className="col-md-3">
<ConfigLinkedNumeric
Expand Down
17 changes: 11 additions & 6 deletions oh_queue/static/js/components/navbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,17 @@ let Navbar = ({ state, mode }) => {

{currentUser && JSON.parse(state.config.appointments_open) &&
<li><Link to="/appointments">Appointments</Link></li>}

{currentUser && currentUser.isStaff &&
<li><Link to="/activity_log">Activity Log</Link></li>}


{currentUser && currentUser.isStaff &&
<li><Link to="/admin">Admin</Link></li>}
<li className="dropdown">
<a href="#" className="dropdown-toggle" data-toggle="dropdown"
role="button">Admin<span className="caret"/></a>
<ul className="dropdown-menu">
<li><Link to="/admin">Settings</Link></li>
<li><Link to="/activity_log">Activity Log</Link></li>
</ul>
</li>
}

{currentUser ?
<li className="dropdown">
Expand All @@ -72,4 +77,4 @@ let Navbar = ({ state, mode }) => {
</div>
</nav>
);
}
}
23 changes: 19 additions & 4 deletions oh_queue/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,12 @@ def init_config():
public=True,
course=get_course(),
))
db.session.add(ConfigEntry(
key='appointment_or_minutes',
value='false',
public=True,
course=get_course(),
))
db.session.add(ConfigEntry(
key='show_okpy_backups',
value='false',
Expand Down Expand Up @@ -922,6 +928,7 @@ def assign_appointment(data):
daily_threshold = int(ConfigEntry.query.filter_by(key="daily_appointment_limit", course=get_course()).one().value)
weekly_threshold = int(ConfigEntry.query.filter_by(key="weekly_appointment_limit", course=get_course()).one().value)
pending_threshold = int(ConfigEntry.query.filter_by(key="simul_appointment_limit", course=get_course()).one().value)
pending_metric= ConfigEntry.query.filter_by(key="appointment_or_minutes", course=get_course()).one().value

start = appointment.start_time.replace(hour=0, minute=0, second=0, microsecond=0)
week_start = start - datetime.timedelta(days=appointment.start_time.weekday())
Expand All @@ -940,13 +947,21 @@ def assign_appointment(data):
).count()
if num_today >= daily_threshold:
return socket_error("You have already signed up for {} OH slots for the same day".format(daily_threshold))

num_pending = AppointmentSignup.query.join(AppointmentSignup.appointment).filter(
Appointment.status == AppointmentStatus.pending,
AppointmentSignup.user_id == current_user.id,
).count()
if num_pending >= pending_threshold:
return socket_error("You have already signed up for {} OH slots that have not yet occurred.".format(pending_threshold))
)
if pending_metric != 'false':
start = appointment.duration
num_pend = [appt.appointment.duration for appt in list(num_pending)]
threshold = datetime.timedelta(minutes=pending_threshold)
for item in num_pend:
start += item
if start > threshold:
return socket_error("You cannot sign up for more than {} minutes of OH that have not yet occurred.".format(pending_threshold))
else:
if num_pending.count() >= pending_threshold:
return socket_error("You have already signed up for {} OH slots that have not yet occurred.".format(pending_threshold))

old_signup = AppointmentSignup.query.filter_by(
appointment_id=data["appointment_id"],
Expand Down