Clean up bluesheets upload page. Add display of uploaded files. Commit ready for merge

- Legacy-Id: 10206
This commit is contained in:
Ryan Cross 2015-10-14 00:06:03 +00:00
parent 1145751a9b
commit aec062b8b6
3 changed files with 97 additions and 25 deletions

View file

@ -1,21 +1,29 @@
from django.conf import settings
from django.core.urlresolvers import reverse
from ietf.utils.test_utils import TestCase
from ietf.person.models import Person
from ietf.group.models import Group, GroupEvent
from ietf.meeting.models import Meeting, Room, TimeSlot, ScheduledSession
from ietf.utils.mail import outbox
from ietf.meeting.test_data import make_meeting_test_data
from pyquery import PyQuery
import datetime
import os
import shutil
from pyquery import PyQuery
from StringIO import StringIO
from django.conf import settings
from django.core.urlresolvers import reverse
from ietf.doc.models import Document
from ietf.group.models import Group, GroupEvent
from ietf.meeting.models import Meeting, Room, TimeSlot, ScheduledSession
from ietf.meeting.test_data import make_meeting_test_data
from ietf.person.models import Person
from ietf.utils.mail import outbox
from ietf.utils.test_utils import TestCase
class MainTestCase(TestCase):
def setUp(self):
self.proceedings_dir = os.path.abspath("tmp-proceedings-dir")
if not os.path.exists(self.proceedings_dir):
os.mkdir(self.proceedings_dir)
settings.SECR_PROCEEDINGS_DIR = self.proceedings_dir
settings.AGENDA_PATH = self.proceedings_dir
self.bluesheet_dir = os.path.abspath(settings.TEST_BLUESHEET_DIR)
self.bluesheet_path = os.path.join(self.bluesheet_dir,'blue_sheet.rtf')
if not os.path.exists(self.bluesheet_dir):
@ -27,6 +35,7 @@ class MainTestCase(TestCase):
os.mkdir(self.materials_dir)
def tearDown(self):
shutil.rmtree(self.proceedings_dir)
shutil.rmtree(self.bluesheet_dir)
shutil.rmtree(self.materials_dir)
@ -85,14 +94,28 @@ class MainTestCase(TestCase):
meeting = Meeting.objects.get(number=1)
self.assertEqual(meeting.city,'Toronto')
def test_blue_sheets(self):
def test_blue_sheets_upload(self):
"Test Bluesheets"
meeting = make_meeting_test_data()
os.makedirs(os.path.join(self.proceedings_dir,str(meeting.number),'bluesheets'))
url = reverse('meetings_blue_sheet',kwargs={'meeting_id':meeting.number})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
# test upload
group = Group.objects.filter(type='wg',state='active').first()
file = StringIO('dummy bluesheet')
file.name = "bluesheets-%s-%s.pdf" % (meeting.number,group.acronym)
files = {'file':file}
response = self.client.post(url, files)
self.assertEqual(response.status_code, 302)
path = os.path.join(settings.SECR_PROCEEDINGS_DIR,str(meeting.number),'bluesheets')
self.assertEqual(len(os.listdir(path)),1)
def test_blue_sheets_generate(self):
meeting = make_meeting_test_data()
url = reverse('meetings_blue_sheet_generate',kwargs={'meeting_id':meeting.number})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)

View file

@ -1,5 +1,7 @@
import datetime
import json
import os
import time
from django.conf import settings
from django.contrib import messages
@ -334,9 +336,15 @@ def blue_sheet(request, meeting_id):
Blue Sheet view. The user can generate blue sheets or upload scanned bluesheets
'''
meeting = get_object_or_404(Meeting, number=meeting_id)
url = settings.SECR_BLUE_SHEET_URL
blank_sheets_path = settings.SECR_BLUE_SHEET_PATH
try:
last_run = time.ctime(os.stat(blank_sheets_path).st_ctime)
except OSError:
last_run = None
uploaded_sheets_path = os.path.join(settings.SECR_PROCEEDINGS_DIR,meeting.number,'bluesheets')
uploaded_files = sorted(os.listdir(uploaded_sheets_path))
if request.method == 'POST':
form = UploadBlueSheetForm(request.POST,request.FILES)
if form.is_valid():
@ -350,7 +358,9 @@ def blue_sheet(request, meeting_id):
return render_to_response('meetings/blue_sheet.html', {
'meeting': meeting,
'url': url,
'form': form},
'form': form,
'last_run': last_run,
'uploaded_files': uploaded_files},
RequestContext(request, {}),
)

View file

@ -16,13 +16,27 @@
{% block content %}
<div class="module">
<h2>Blue Sheet</h2>
<h1> Meeting {{ meeting.number }}</h1>
<h2>IETF {{ meeting.number }} - Blue Sheet</h2>
<p>
<a href="{% url "meetings_blue_sheet_generate" meeting_id=meeting.number%}">Generate Blue Sheets</a><br />
<a href="{{ url }}">Download</a> latest Blue Sheets.
</p>
<p>Use this to generate blue sheets for meeting sessions.</p>
<ul class="none">
<li>
<button onclick="window.location='{% url "meetings_blue_sheet_generate" meeting_id=meeting.number%}'">Generate Blue Sheets</button>
&nbsp;&nbsp;Last run:
{% if last_run %}
{{ last_run }}
{% else %}
Never
{% endif %}
</li>
</ul>
<p>Use this to download the blue sheets from the server.</p>
<ul class="none">
<li>
<button onclick="window.location='{{ url }}'">Download Blue Sheets</button>
</li>
</ul>
<hr />
<p>
Use the form below to upload individual scanned blue sheet documents.
@ -32,16 +46,41 @@
<col width="200">
{{ form.as_table }}
</table>
<input type="submit" value="Submit" />
</form>
<div class="button-group">
<ul>
<li><button onclick="window.location='../'">Back</button></li>
<li><button type="submit" name="submit" value="Submit">Submit</button></li>
<li><button type="button" onclick="window.location='../'">Back</button></li>
</ul>
</div> <!-- button-group -->
</form>
</div> <!-- module -->
{% if uploaded_files %}
<br>
<div class="module interim-container">
<h2>Uploaded Files</h2>
<div class="inline-related last-related">
<table class="full-width">
<thead>
<tr>
<th>Filename</th>
</tr>
</thead>
<tbody>
{% for file in uploaded_files %}
<tr class="{% cycle 'row1' 'row2' %}">
<td>{{ file }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div> <!-- inline-related -->
</div> <!-- module -->
{% endif %}
{% endblock %}