summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yaksh/static/yaksh/js/course.js38
-rw-r--r--yaksh/templates/yaksh/course_detail.html55
-rw-r--r--yaksh/templates/yaksh/editprofile.html4
-rw-r--r--yaksh/templates/yaksh/view_profile.html22
-rw-r--r--yaksh/urls.py9
-rw-r--r--yaksh/views.py19
6 files changed, 101 insertions, 46 deletions
diff --git a/yaksh/static/yaksh/js/course.js b/yaksh/static/yaksh/js/course.js
new file mode 100644
index 0000000..3a21f0d
--- /dev/null
+++ b/yaksh/static/yaksh/js/course.js
@@ -0,0 +1,38 @@
+$(document).ready(function(){
+$(".checkall").click( function(){
+ if($(this).attr("checked")) {
+ $("#enroll-all input:checkbox").each(function(index, element) {
+ $(this).attr('checked', true);
+ });
+ }
+ else {
+ $("#enroll-all input:checkbox").each(function(index, element) {
+ $(this).attr('checked', false);
+ });
+ }
+ });
+$(".enroll").click( function(){
+ if($(this).attr("checked")) {
+ $("#enroll input:checkbox").each(function(index, element) {
+ $(this).attr('checked', true);
+ });
+ }
+ else {
+ $("#enroll input:checkbox").each(function(index, element) {
+ $(this).attr('checked', false);
+ });
+ }
+ });
+$(".reject").click( function(){
+ if($(this).attr("checked")) {
+ $("#reject input:checkbox").each(function(index, element) {
+ $(this).attr('checked', true);
+ });
+ }
+ else {
+ $("#reject input:checkbox").each(function(index, element) {
+ $(this).attr('checked', false);
+ });
+ }
+ });
+});
diff --git a/yaksh/templates/yaksh/course_detail.html b/yaksh/templates/yaksh/course_detail.html
index 2e17035..dbb7b73 100644
--- a/yaksh/templates/yaksh/course_detail.html
+++ b/yaksh/templates/yaksh/course_detail.html
@@ -9,73 +9,78 @@
{% endblock %}
{% block script %}
<script language="JavaScript" type="text/javascript" src="{{ URL_ROOT }}/static/yaksh/js/jquery-1.4.2.min.js"></script>
-<script>
-$(document).ready(function(){
-$(".checkall").click( function(){
- if($(this).attr("checked")) {
- $("#enroll-all input:checkbox").each(function(index, element) {
- $(this).attr('checked', true);
- });
- }
- else {
- $("#enroll-all input:checkbox").each(function(index, element) {
- $(this).attr('checked', false);
- });
- }
- });
-});
-</script>
+<script language="JavaScript" type="text/javascript" src="{{ URL_ROOT }}/static/yaksh/js/course.js"></script>
{% endblock %}
{% block manage %}
<div class="row">
<div class="span6 wrap">
<center><b><u>Requests</u></b></center><br>
- <form action="{{URL_ROOT}}/exam/manage/enroll/{{ course.id }}" method="post">
- {% csrf_token %}
- <input type="checkbox" class="checkall"/><font size="2">Enroll all</font>
+ {% if course.get_requests %}
+ <input type="checkbox" class="checkall"/>&nbsp;<font size="2">Select all</font>
<div id="enroll-all">
+ <form action="{{URL_ROOT}}/exam/manage/enroll/{{ course.id }}/" method="post">
+ {% csrf_token %}
{% for request in course.get_requests %}
<div class="well">
<div class="row">
- <div class="span3" style="padding-top:10px">
- <input type="checkbox" name="check" value="{{ request.id }}"></input>&nbsp;&nbsp;<a href="#" data-toggle="tooltip" title=" Institute: {{ request.profile.institute }}&#013;Department: {{ request.profile.department}}&#013;Roll Number: {{ request.profile.roll_number }}">{{ request.username }}</a><br>
+ <div class="span3" style="padding-top:10px">
+ <input type="checkbox" name="check" value="{{ request.id }}">&nbsp;<a href="#" data-toggle="tooltip" title=" Institute: {{ request.profile.institute }}&#013;Department: {{ request.profile.department}}&#013;Roll Number: {{ request.profile.roll_number }}">&nbsp;{{ request.username }}</a><br>
</div>
<a class="btn success" href="{{URL_ROOT}}/exam/manage/enroll/{{ course.id }}/{{ request.id }}/"> Enroll </a> <a class="btn danger" href="{{URL_ROOT}}/exam/manage/reject/{{ course.id }}/{{ request.id }}/"> Reject </a>
</div>
</div>
{% endfor %}
+ <button class="btn success" type="submit" name='enroll' value='enroll'>Enroll Selected</button>
</div>
+ {% endif %}
+ </form>
</div>
<div class="span6 wrap">
<center><b><u>Rejected</u></b></center><br>
+ {% if course.get_rejected %}
+ <input type="checkbox" class="enroll"/>&nbsp;<font size="2">Select all</font>
+ <div id="enroll">
{% for rejected in course.get_rejected %}
+ <form action="{{URL_ROOT}}/exam/manage/enroll/rejected/{{ course.id }}/" method="post">
+ {% csrf_token %}
<div class="well">
<div class="row">
<div class="span4" style="padding-top:10px">
- {{ rejected.username }}
+ <input type="checkbox" name="check" value="{{ rejected.id }}">&nbsp;{{ rejected.username }}
</div>
<a class="btn success" href="{{URL_ROOT}}/exam/manage/enroll/rejected/{{ course.id }}/{{ rejected.id }}/"> Enroll </a>
</div>
</div>
{% endfor %}
+ <button class="btn success" type="submit" name='enroll' value='enroll'>Enroll Selected</button>
+ </div>
+ {% endif %}
+ </form>
</div>
</div>
<br>
-<button class="btn" type="submit" name='enroll' value='enroll'>Enroll</button>
-</form>
<div class="row">
<div class="span6 offset4 wrap">
<center><b><u>Enrolled</u></b></center><br>
+ {% if course.get_enrolled %}
+ <input type="checkbox" class="reject"/>&nbsp;<font size="2">Select all</font>
+ <div id="reject">
{% for enrolled in course.get_enrolled %}
+ <form action="{{URL_ROOT}}/exam/manage/enrolled/reject/{{ course.id }}/" method="post">
+ {% csrf_token %}
<div class="well">
<div class="row">
<div class="span4" style="padding-top:10px">
- {{ enrolled.username }}
+ <input type="checkbox" name="check" value="{{ enrolled.id }}">&nbsp;{{ enrolled.username }}
</div>
<a class="btn danger" href="{{URL_ROOT}}/exam/manage/enrolled/reject/{{ course.id }}/{{ enrolled.id }}/"> Reject </a>
</div>
</div>
{% endfor %}
+ <button class="btn danger" type="submit" name='reject' value='reject'>Reject Selected</button>
+ </div>
+ {% endif %}
+ </form>
</div>
</div>
<div class="pull-right">
diff --git a/yaksh/templates/yaksh/editprofile.html b/yaksh/templates/yaksh/editprofile.html
index b4cf037..f04f8fb 100644
--- a/yaksh/templates/yaksh/editprofile.html
+++ b/yaksh/templates/yaksh/editprofile.html
@@ -14,8 +14,8 @@
{{ form.as_table }}
</table>
</center>
- <center><button class="btn" type="submit">Edit Profile</button>
- <button class="btn" type="button" name="button" onClick='location.replace("{{URL_ROOT}}/exam/");'>Cancel</button> </center>
+ <center><button class="btn" type="submit">Save</button>
+ <button class="btn" type="button" name="button" onClick='location.replace("{{URL_ROOT}}/exam/manage/viewprofile");'>Cancel</button> </center>
</form>
{% endblock content %}
diff --git a/yaksh/templates/yaksh/view_profile.html b/yaksh/templates/yaksh/view_profile.html
index 27bc5da..a419d92 100644
--- a/yaksh/templates/yaksh/view_profile.html
+++ b/yaksh/templates/yaksh/view_profile.html
@@ -5,44 +5,46 @@
{% block pagetitle %} Online Test {% endblock %}
{% block css %}
<link rel="stylesheet" media="all" type="text/css" href="{{ URL_ROOT }}/static/yaksh/css/base.css" />
+
{% endblock %}
{% block content %}
<ul>
- <a href={{ URL_ROOT }}/exam/manage/editprofile>Edit Profile</a>
- <a href={{ URL_ROOT }}/exam/>Back to Home</a>
+ <a href="{{ URL_ROOT }}/exam/manage/editprofile">Edit Profile</a>
+ <a href="{{ URL_ROOT }}/exam/">Back to Home</a>
</ul>
-
+<div class="well">
<table width="398" border="0" align="center" cellpadding="0">
<tr>
<td height="26" colspan="2"><h2>Your Profile Information</h2> </td>
</tr>
<tr>
- <td width="82" valign="top"><h3>Firstname:</h3></td>
+ <td width="82" valign="top"><h4>Firstname:</h4></td>
<td width="165" valign="top"><h4>{{ user.first_name }}</h4></td>
</tr>
<tr>
- <td valign="top"><h3>Lastname:</h3></td>
+ <td valign="top"><h4>Lastname:</h4></td>
<td valign="top"><h4>{{ user.last_name }}</h4></td>
</tr>
<tr>
- <td valign="top"><h3>Email:</h3><h3></td>
+ <td valign="top"><h4>Email:</h4></td>
<td valign="top"><h4>{{ user.email }}</h4></td>
</tr>
<tr>
- <td valign="top"><h3>Institute:</h3></td>
+ <td valign="top"><h4>Institute:</h4></td>
<td valign="top"><h4>{{ user.profile.institute }}</h4></td>
</tr>
<tr>
- <td valign="top"><h3>Department:</h3></td>
+ <td valign="top"><h4>Department:</h4></td>
<td valign="top"><h4>{{ user.profile.department }}</h4></td>
</tr>
<tr>
- <td valign="top"><h3>Roll Number:</h3></td>
+ <td valign="top"><h4>Roll Number:</h4></td>
<td valign="top"><h4>{{ user.profile.roll_number }}</h4></td>
</tr>
<tr>
- <td valign="top"><h3>Position:</h3></td>
+ <td valign="top"><h4>Position:</h4></td>
<td valign="top"><h4>{{ user.profile.position }}</h4></td>
</tr>
</table>
+</div>
{% endblock %}
diff --git a/yaksh/urls.py b/yaksh/urls.py
index 584064d..ab9f90a 100644
--- a/yaksh/urls.py
+++ b/yaksh/urls.py
@@ -12,8 +12,10 @@ urlpatterns = [
name='password_reset_done'),
url(r'^password_reset/complete/$', password_reset_complete,
name='password_reset_complete'),
- url(r'^changepassword/$', 'password_change', name='password_change'),
- url(r'^password_change/done/$', 'password_change_done', name='password_change_done'),
+ url(r'^password_change/$', password_change,
+ name='password_change'),
+ url(r'^password_change/done/$', password_change_done,
+ name='password_change_done'),
]
urlpatterns += [
url(r'^$', views.index),
@@ -79,5 +81,4 @@ urlpatterns += [
url(r'^manage/editprofile/$', views.edit_profile),
url(r'^manage/viewprofile/$', views.view_profile),
url(r'^manage/enroll/(?P<course_id>\d+)', views.enroll)
-]
-
+] \ No newline at end of file
diff --git a/yaksh/views.py b/yaksh/views.py
index 2738a26..8001520 100644
--- a/yaksh/views.py
+++ b/yaksh/views.py
@@ -624,7 +624,8 @@ def enroll(request, course_id, user_id=None, was_rejected=False):
return my_render_to_response('yaksh/course_detail.html', {'course': course},
context_instance=ci)
else:
- course.enroll(was_rejected, *enroll_ids)
+ enroll_users = User.objects.filter(id__in=enroll_ids)
+ course.enroll(was_rejected, *enroll_users)
else:
user = get_object_or_404(User, pk=user_id)
course.enroll(was_rejected, user)
@@ -632,13 +633,22 @@ def enroll(request, course_id, user_id=None, was_rejected=False):
@login_required
-def reject(request, course_id, user_id, was_enrolled=False):
+def reject(request, course_id, user_id=None, was_enrolled=False):
user = request.user
if not is_moderator(user):
raise Http404('You are not allowed to view this page')
course = get_object_or_404(Course, creator=user, pk=course_id)
- user = get_object_or_404(User, pk=user_id)
- course.reject(was_enrolled, user)
+ if request.method == 'POST':
+ reject_ids = request.POST.getlist('check')
+ if reject_ids is None:
+ return my_render_to_response('yaksh/course_detail.html', {'course': course},
+ context_instance=ci)
+ else:
+ reject_users = User.objects.filter(id__in=reject_ids)
+ course.reject(was_enrolled, *reject_users)
+ else:
+ user = get_object_or_404(User, pk=user_id)
+ course.reject(was_enrolled, user)
return course_detail(request, course_id)
@@ -970,7 +980,6 @@ def design_questionpaper(request):
def view_profile(request):
""" view moderators and users profile """
- context = {}
user = request.user
ci = RequestContext(request)
if not user.is_authenticated():