|
1 | 1 | import datetime |
2 | | -import os |
3 | 2 |
|
4 | | -from django.conf import settings |
5 | 3 | from django.contrib import messages |
6 | 4 | from django.db.models import Q |
7 | 5 | from django.http import Http404 |
|
24 | 22 | # Globals |
25 | 23 | # ------------------------------------------------- |
26 | 24 | SESSION_REQUEST_EMAIL = 'session-request@ietf.org' |
27 | | -LOCKFILE = os.path.join(settings.AGENDA_PATH,'session_request.lock') |
| 25 | + |
28 | 26 | # ------------------------------------------------- |
29 | 27 | # Helper Functions |
30 | 28 | # ------------------------------------------------- |
31 | 29 |
|
32 | | -def check_app_locked(): |
| 30 | +def check_app_locked(meeting=None): |
33 | 31 | ''' |
34 | 32 | This function returns True if the application is locked to non-secretariat users. |
35 | 33 | ''' |
36 | | - return os.path.exists(LOCKFILE) |
| 34 | + if not meeting: |
| 35 | + meeting = get_meeting() |
| 36 | + return bool(meeting.session_request_lock_message) |
37 | 37 |
|
38 | 38 | def get_initial_session(sessions): |
39 | 39 | ''' |
@@ -75,17 +75,13 @@ def get_initial_session(sessions): |
75 | 75 | initial['bethere'] = bethere_email |
76 | 76 | return initial |
77 | 77 |
|
78 | | -def get_lock_message(): |
| 78 | +def get_lock_message(meeting=None): |
79 | 79 | ''' |
80 | 80 | Returns the message to display to non-secretariat users when the tool is locked. |
81 | 81 | ''' |
82 | | - try: |
83 | | - f = open(LOCKFILE,'r') |
84 | | - message = f.read() |
85 | | - f.close() |
86 | | - except IOError: |
87 | | - message = "This application is currently locked." |
88 | | - return message |
| 82 | + if not meeting: |
| 83 | + meeting = get_meeting() |
| 84 | + return meeting.session_request_lock_message |
89 | 85 |
|
90 | 86 | def get_requester_text(person,group): |
91 | 87 | ''' |
@@ -356,7 +352,7 @@ def edit_mtg(request, num, acronym): |
356 | 352 | initial['resources'] = [x.pk for x in initial['resources']] |
357 | 353 |
|
358 | 354 | # check if app is locked |
359 | | - is_locked = check_app_locked() |
| 355 | + is_locked = check_app_locked(meeting=meeting) |
360 | 356 | if is_locked: |
361 | 357 | messages.warning(request, "The Session Request Tool is closed") |
362 | 358 |
|
@@ -654,27 +650,26 @@ def tool_status(request): |
654 | 650 | ''' |
655 | 651 | This view handles locking and unlocking of the tool to the public. |
656 | 652 | ''' |
657 | | - is_locked = check_app_locked() |
658 | | - |
| 653 | + meeting = get_meeting() |
| 654 | + is_locked = check_app_locked(meeting=meeting) |
| 655 | + |
659 | 656 | if request.method == 'POST': |
660 | 657 | button_text = request.POST.get('submit', '') |
661 | | - if button_text == 'Done': |
| 658 | + if button_text == 'Back': |
662 | 659 | return redirect('sessions') |
663 | 660 |
|
664 | 661 | form = ToolStatusForm(request.POST) |
665 | 662 |
|
666 | 663 | if button_text == 'Lock': |
667 | 664 | if form.is_valid(): |
668 | | - f = open(LOCKFILE,'w') |
669 | | - f.write(form.cleaned_data['message']) |
670 | | - f.close() |
671 | | - |
| 665 | + meeting.session_request_lock_message = form.cleaned_data['message'] |
| 666 | + meeting.save() |
672 | 667 | messages.success(request, 'Session Request Tool is now Locked') |
673 | 668 | return redirect('sessions') |
674 | 669 |
|
675 | 670 | elif button_text == 'Unlock': |
676 | | - os.remove(LOCKFILE) |
677 | | - |
| 671 | + meeting.session_request_lock_message = '' |
| 672 | + meeting.save() |
678 | 673 | messages.success(request, 'Session Request Tool is now Unlocked') |
679 | 674 | return redirect('sessions') |
680 | 675 |
|
|
0 commit comments