forms: report web-service errors in the selectors

This commit is contained in:
Benjamin Dauvergne 2012-12-11 15:21:49 +01:00
parent 1b242a8530
commit 3dff1b18aa
6 changed files with 19 additions and 18 deletions

View File

@ -1,5 +1,7 @@
<select {% if not response.courses %}disabled{% endif %} class="courses-selector span8">
{% if not response.courses %}
<select {% if not response.courses or error %}disabled{% endif %} class="courses-selector span8">
{% if error %}
<option value="">{{ error }}</option>
{% elif not response.courses %}
<option value="">Aucun cours disponible</option>
{% else %}
<option value="">---</option>

View File

@ -15,6 +15,6 @@
<div class="control-group type-owner">
<label for="course-type-owner" class="control-label">Déposer le document dans un cours que je gère</label>
<div class="controls">
{% include '_courses_selector.html' with response=courses.user_courses only %}
{% include '_courses_selector.html' with response=courses.user_courses error=courses.user_courses_error only %}
</div>
</div>

View File

@ -2,12 +2,6 @@
<div class="control-group type-sponsor">
<label for="course-type-sponsor" class="control-label">Ou bien déposer le document dans un cours que gère le commanditaire,</label>
<div class="controls">
{% if courses.sponsor_courses %}
{% include '_courses_selector.html' with response=courses.sponsor_courses only %}
{% else %}
<select disabled="disabled" class="span8">
<option>Pas de commanditaire</option>
</select>
{% endif %}
{% include '_courses_selector.html' with response=courses.sponsor_courses error=courses.sponsor_courses_error only %}
</div>
</div>

View File

@ -9,8 +9,8 @@
</select>
<button disabled data-target="#create-course" type="button" class="add-on btn" data-toggle="modal">Créer un nouveau cours</button>
{% else %}
{% include '_courses_selector.html' with response=courses.ue_courses only %}
<button data-target="#create-course" type="button" class="add-on btn" data-toggle="modal">Créer un nouveau cours</button>
{% include '_courses_selector.html' with response=courses.ue_courses error=courses.ue_courses_error only %}
<button {% if courses.ue_courses_error %}disabled{% endif %} data-target="#create-course" type="button" class="add-on btn" data-toggle="modal">Créer un nouveau cours</button>
{% endif %}
</div>
</div>

View File

@ -102,11 +102,15 @@ def courses_ctx(request, polynum_request):
ok, result = conn.get_course_by_owner(request.user.username)
if ok:
ctx['user_courses'] = result
else:
ctx['user_courses_error'] = result
sponsor_username = polynum_request.sponsor_username()
if sponsor_username and sponsor_username != request.user.username:
ok, result = conn.get_course_by_owner(sponsor_username)
if ok:
ctx['sponsor_courses'] = result
else:
ctx['sponsor_courses_error'] = result
if polynum_request.entity or 'ue' in request.GET:
ue = request.GET.get('ue')
possible_ue = None
@ -120,7 +124,8 @@ def courses_ctx(request, polynum_request):
ctx['ue'] = possible_ue[0].get_name()
ue = possible_ue[0].code.upper()
ok, result = conn.get_course_by_ue(ue)
if not ok:
return dict(error=result)
ctx['ue_courses'] = result
if ok:
ctx['ue_courses'] = result
else:
ctx['ue_courses_error'] = result
return ctx

View File

@ -79,7 +79,7 @@ class BlackboardConnector(object):
r = self.send_request('GetCoursesByOwner',
user_login=user_login.encode('ascii'))
except ConnectionError:
return True, []
return False, "Connection Error to %s" % self.url
return self._get_course_helper(r)
def get_course_by_ue(self, entity_code):
@ -87,7 +87,7 @@ class BlackboardConnector(object):
r = self.send_request('GetCoursesByUE',
UE_ID=entity_code.encode('ascii'))
except ConnectionError:
return True, []
return False, "Connection Error to %s" % self.url
return self._get_course_helper(r)
def send_file(self, uploadfile, courses_id, visible):
@ -144,7 +144,7 @@ class BlackboardConnector(object):
try:
r = self.send_request('GetCategories')
except ConnectionError:
return True, GetCategoryResponse('', [])
return False, "Connection Error to %s" % self.url
if r.status_code == 200 and r.content.startswith('<'):
try:
x = etree.XML(r.content.replace('ISO-8859-1', 'UTF-8'))