Exemple #1
0
    def test_no_examiners_configured_for_assignment_groups_warning(self):
        assignment = mommy.make_recipe('devilry.apps.core.assignment_activeperiod_end')
        mommy.make('core.RelatedExaminer', period=assignment.period)
        mommy.make('core.Candidate', assignment_group__parentnode=assignment)
        mockresponse = self.mock_http200_getrequest_htmls(cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists('#id_devilry_admin_assignment_examiner_no_examiners_on_assignment'))

        # Check warning texts
        self.assertIn(
            'warning: No examiners configured',
            mockresponse.selector.one('#id_devilry_admin_assignment_examiner_no_examiners_on_assignment')
                .alltext_normalized)
        self.assertIn(
            'Only configured examiners can see and correct deliveries from students.',
            mockresponse.selector.one('#id_devilry_admin_assignment_examiner_no_examiners_on_assignment')
                .alltext_normalized)

        # Check warning links
        url = reverse_cradmin_url(
            instanceid='devilry_admin_assignmentadmin',
            appname='examineroverview',
            viewname='INDEX',
            roleid=assignment.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_no_examiners_on_assignment > strong > a').get('href'))
Exemple #2
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_group_student',
         appname='feedbackfeed',
         roleid=self.group.id,
         viewname=crapp.INDEXVIEW_NAME,
     )
 def get_success_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_periodadmin',
         appname='manage_tags',
         roleid=self.request.cradmin_role.id,
         viewname=crapp.INDEXVIEW_NAME
     )
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_examiner_assignment',
         appname='grouplist',
         roleid=self.assignment.id,
         viewname=crapp.INDEXVIEW_NAME,
     )
    def test_students_on_the_semester_that_are_not_on_the_assignment_warning(self):
        assignment = mommy.make('core.Assignment')
        mommy.make('core.RelatedStudent', period=assignment.parentnode)
        related_student = mommy.make('core.RelatedStudent', period=assignment.parentnode)
        mommy.make('core.Candidate', relatedstudent=related_student, assignment_group__parentnode=assignment)
        mockresponse = self.mock_http200_getrequest_htmls(cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(mockresponse.selector.exists('#id_devilry_admin_assignment_student_on_semester_not_on_assignment'))

        # Check warning text
        self.assertIn(
            'note: There are students who are on the semester, but not on the assignment',
            mockresponse.selector.one('#id_devilry_admin_assignment_student_on_semester_not_on_assignment')
                .alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(
            instanceid='devilry_admin_assignmentadmin',
            appname='create_groups',
            viewname='INDEX',
            roleid=assignment.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_on_semester_not_on_assignment > a').get('href'))
Exemple #6
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='passed_previous_period',
         roleid=self.roleid,
         viewname='select_period'
     )
    def test_no_candidates_warning(self):
        assignment = mommy.make('core.Assignment')
        mommy.make('core.RelatedStudent', period=assignment.parentnode)
        mockresponse = self.mock_http200_getrequest_htmls(cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(mockresponse.selector.exists('#id_devilry_admin_assignment_student_no_students_on_assignment'))

        # Check warning texts
        self.assertIn(
            'warning: No students added to the assignment',
            mockresponse.selector.one('#id_devilry_admin_assignment_student_no_students_on_assignment')
                .alltext_normalized)
        self.assertIn(
            'Only students added to an assignment can see the assignment and add deliveries',
            mockresponse.selector.one('#id_devilry_admin_assignment_student_no_students_on_assignment')
                .alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(
            instanceid='devilry_admin_assignmentadmin',
            appname='create_groups',
            viewname='INDEX',
            roleid=assignment.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_no_students_on_assignment > strong > a').get('href'))
    def test_fewer_examiners_than_relatedexaminers_on_semester_note(self):
        assignment = mommy.make_recipe('devilry.apps.core.assignment_activeperiod_end')
        mommy.make('core.RelatedExaminer', period=assignment.period)
        related_examiner = mommy.make('core.RelatedExaminer', period=assignment.period)
        mommy.make('core.Examiner', relatedexaminer=related_examiner, assignmentgroup__parentnode=assignment)
        mockresponse = self.mock_http200_getrequest_htmls(cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists('#id_devilry_admin_assignment_examiner_on_semester_not_on_assignment'))

        # Check warning text
        self.assertIn(
            'note: There are examiners on the semester that are not assigned to any students',
            mockresponse.selector.one('#id_devilry_admin_assignment_examiner_on_semester_not_on_assignment')
                .alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(
            instanceid='devilry_admin_assignmentadmin',
            appname='examineroverview',
            viewname='INDEX',
            roleid=assignment.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_on_semester_not_on_assignment > a').get('href'))
    def test_no_examiners_configured_for_assignment_groups_warning(self):
        assignment = mommy.make_recipe('devilry.apps.core.assignment_activeperiod_end')
        mommy.make('core.RelatedExaminer', period=assignment.period)
        mommy.make('core.Candidate', assignment_group__parentnode=assignment)
        mockresponse = self.mock_http200_getrequest_htmls(cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists('#id_devilry_admin_assignment_examiner_no_examiners_on_assignment'))

        # Check warning texts
        self.assertIn(
            'warning: No examiners configured',
            mockresponse.selector.one('#id_devilry_admin_assignment_examiner_no_examiners_on_assignment')
                .alltext_normalized)
        self.assertIn(
            'Only configured examiners can see and correct deliveries from students.',
            mockresponse.selector.one('#id_devilry_admin_assignment_examiner_no_examiners_on_assignment')
                .alltext_normalized)

        # Check warning links
        url = reverse_cradmin_url(
            instanceid='devilry_admin_assignmentadmin',
            appname='examineroverview',
            viewname='INDEX',
            roleid=assignment.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_no_examiners_on_assignment > strong > a').get('href'))
Exemple #10
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_group_examiner',
         appname='feedbackfeed',
         roleid=self.group.id,
         viewname=crapp.INDEXVIEW_NAME,
     )
    def test_students_without_examiners_exists_warning(self):
        assignment = mommy.make_recipe(
            'devilry.apps.core.assignment_activeperiod_end')
        mommy.make('core.RelatedExaminer', period=assignment.period)
        mommy.make('core.Candidate', assignment_group__parentnode=assignment)
        mockresponse = self.mock_http200_getrequest_htmls(
            cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists(
                '#id_devilry_admin_assignment_examiner_students_without_examiner_warning'
            ))

        # Check warning text
        self.assertIn(
            'warning: There are students with no examiners assigned to them',
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_students_without_examiner_warning'
            ).alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(instanceid='devilry_admin_assignmentadmin',
                                  appname='examineroverview',
                                  roleid=assignment.id,
                                  viewname='INDEX')
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_students_without_examiner_warning > strong > a'
            ).get('href'))
 def test_post_success_redirect(self):
     created_subject, mockresponse = self.__valid_post_request()
     self.assertEqual(mockresponse.response['location'],
                      crinstance.reverse_cradmin_url(
                          instanceid='devilry_admin_subjectadmin',
                          appname='overview',
                          roleid=created_subject.id))
    def test_students_on_the_semester_that_are_not_on_the_assignment_warning(
            self):
        assignment = mommy.make('core.Assignment')
        mommy.make('core.RelatedStudent', period=assignment.parentnode)
        related_student = mommy.make('core.RelatedStudent',
                                     period=assignment.parentnode)
        mommy.make('core.Candidate',
                   relatedstudent=related_student,
                   assignment_group__parentnode=assignment)
        mockresponse = self.mock_http200_getrequest_htmls(
            cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists(
                '#id_devilry_admin_assignment_student_on_semester_not_on_assignment'
            ))

        # Check warning text
        self.assertIn(
            'note: There are students who are on the semester, but not on the assignment',
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_on_semester_not_on_assignment'
            ).alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(instanceid='devilry_admin_assignmentadmin',
                                  appname='create_groups',
                                  viewname='INDEX',
                                  roleid=assignment.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_on_semester_not_on_assignment > a'
            ).get('href'))
Exemple #14
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_periodadmin',
         appname='overview',
         roleid=self.period.id,
         viewname=crapp.INDEXVIEW_NAME
     )
 def test_status_corrected_passed(self):
     deliverybuilder = self.groupbuilder.add_deadline_in_x_weeks(weeks=1)\
         .add_delivery_x_hours_before_deadline(hours=1)
     deliverybuilder.add_feedback(saved_by=UserBuilder('testexaminer').user,
                                  grade='10/20',
                                  is_passing_grade=True,
                                  points=20)
     self.groupbuilder.add_students(self.testuser)
     self.assertEquals(self.groupbuilder.group.get_status(), 'corrected')
     response = self._get_as('testuser')
     response.render()
     selector = htmls.S(response.content)
     self.assertTrue(selector.exists('.devilry-student-groupoverview-corrected'))
     self.assertTrue(selector.exists('.devilry-student-groupoverview-corrected-passed'))
     self.assertTrue(selector.exists
                     ('.django-cradmin-container-fluid-focus.django-cradmin-container-fluid-focus-success'))
     self.assertEquals(
         selector.one('.devilry-student-groupoverview-corrected').alltext_normalized,
         'This assignment is corrected, and the final grade is: 10/20 (passed)')
     self.assertEquals(
         selector.one('.devilry-student-groupoverview-corrected a')['href'],
         reverse_cradmin_url(
             instanceid='devilry_student_group',
             appname='deliveries',
             roleid=self.groupbuilder.group.id,
             viewname='deliverydetails',
             kwargs={'pk': deliverybuilder.delivery.id}))
    def test_render(self):
        deadlinebuilder = NodeBuilder.quickadd_ducku()\
            .add_subject(short_name='atestcourse', long_name='A Test Course')\
            .add_6month_active_period(short_name='testperiod', long_name='Test Period')\
            .add_assignment('testassignment', long_name='Test Assignment One')\
            .add_group(students=[self.testuser])\
            .add_deadline_in_x_weeks(weeks=1)
        deliverybuilder = deadlinebuilder.add_delivery_x_hours_before_deadline(hours=1)
        response = self._get_as('testuser')
        self.assertEquals(response.status_code, 200)
        selector = htmls.S(response.content)
        self.assertEquals(selector.count('#objecttableview-table tbody tr'), 1)

        self.assertEquals(
            selector.one('#objecttableview-table tbody tr td:nth-child(1) a').alltext_normalized,
            'Test Assignment One - Delivery#1')
        self.assertEquals(
            selector.one('#objecttableview-table tbody tr td:nth-child(1) a')['href'],
            crinstance.reverse_cradmin_url(
                instanceid='devilry_student_group',
                appname='deliveries',
                roleid=deliverybuilder.delivery.deadline.assignment_group_id,
                viewname='deliverydetails',
                kwargs={'pk': deliverybuilder.delivery.pk}))
        self.assertEquals(
            selector.one('#objecttableview-table tbody tr td:nth-child(2)').alltext_normalized,
            'A Test Course - Test Period')
        self.assertEquals(
            selector.one('#objecttableview-table tbody tr td:nth-child(3)').alltext_normalized,
            'atestcourse - testperiod')
        self.assertEquals(
            selector.one('#objecttableview-table tbody tr td:nth-child(4)').alltext_normalized,
            htmls.normalize_whitespace(naturaltime(deliverybuilder.delivery.time_of_delivery)))
Exemple #17
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='passed_previous_period',
         roleid=self.roleid,
         viewname='select_period'
     )
 def get_backlink_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_group_examiner',
         appname='feedbackfeed',
         roleid=self.kwargs.get('group_id'),
         viewname=crapp.INDEXVIEW_NAME
     )
    def test_students_without_examiners_exists_warning(self):
        assignment = mommy.make_recipe('devilry.apps.core.assignment_activeperiod_end')
        mommy.make('core.RelatedExaminer', period=assignment.period)
        mommy.make('core.Candidate', assignment_group__parentnode=assignment)
        mockresponse = self.mock_http200_getrequest_htmls(cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists('#id_devilry_admin_assignment_examiner_students_without_examiner_warning'))

        # Check warning text
        self.assertIn(
            'warning: There are students with no examiners assigned to them',
            mockresponse.selector.one('#id_devilry_admin_assignment_examiner_students_without_examiner_warning')
                .alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(
            instanceid='devilry_admin_assignmentadmin',
            appname='examineroverview',
            roleid=assignment.id,
            viewname='INDEX'
        )
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_students_without_examiner_warning > strong > a').get('href'))
Exemple #20
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_student_period',
         appname='overview',
         roleid=self.period.id,
         viewname=crapp.INDEXVIEW_NAME,
     )
 def add_role_menuitem_object(self, active=False):
     self.add_headeritem_object(
         devilry_crmenu.BreadcrumbMenuItem(label=ugettext_lazy('Account'),
                                           url=reverse_cradmin_url(
                                               instanceid='devilry_account',
                                               appname='account'),
                                           active=active))
Exemple #22
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_subject_for_periodadmin',
         appname='subject_redirect',
         roleid=self.subject.id,
         viewname=crapp.INDEXVIEW_NAME
     )
 def get_backlink_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_group_examiner',
         appname='feedbackfeed',
         roleid=self.kwargs.get('group_id'),
         viewname=crapp.INDEXVIEW_NAME
     )
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='delete_groups',
         roleid=self.current_assignment.id,
         viewname='confirm_delete',
         kwargs={'from_assignment_id': self.assignment.id})
Exemple #25
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_examiner_assignment',
         appname='grouplist',
         roleid=self.assignment.id,
         viewname=crapp.INDEXVIEW_NAME,
     )
    def test_no_related_students_on_semester(self):
        assignment = mommy.make('core.Assignment')
        mockresponse = self.mock_http200_getrequest_htmls(
            cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists(
                '#id_devilry_admin_assignment_student_no_active_students_on_semester'
            ))

        # Check warning text
        self.assertIn(
            'warning: Go to the semester page and add/activate students',
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_no_active_students_on_semester'
            ).alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(instanceid='devilry_admin_periodadmin',
                                  appname='overview',
                                  viewname='INDEX',
                                  roleid=assignment.parentnode.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_no_active_students_on_semester > strong > a'
            ).get('href'))
    def test_no_candidates_warning(self):
        assignment = mommy.make('core.Assignment')
        mommy.make('core.RelatedStudent', period=assignment.parentnode)
        mockresponse = self.mock_http200_getrequest_htmls(
            cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists(
                '#id_devilry_admin_assignment_student_no_students_on_assignment'
            ))

        # Check warning texts
        self.assertIn(
            'warning: No students added to the assignment',
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_no_students_on_assignment'
            ).alltext_normalized)
        self.assertIn(
            'Only students added to an assignment can see the assignment and add deliveries',
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_no_students_on_assignment'
            ).alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(instanceid='devilry_admin_assignmentadmin',
                                  appname='create_groups',
                                  viewname='INDEX',
                                  roleid=assignment.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_student_no_students_on_assignment > strong > a'
            ).get('href'))
    def test_fewer_examiners_than_relatedexaminers_on_semester_note(self):
        assignment = mommy.make_recipe(
            'devilry.apps.core.assignment_activeperiod_end')
        mommy.make('core.RelatedExaminer', period=assignment.period)
        related_examiner = mommy.make('core.RelatedExaminer',
                                      period=assignment.period)
        mommy.make('core.Examiner',
                   relatedexaminer=related_examiner,
                   assignmentgroup__parentnode=assignment)
        mockresponse = self.mock_http200_getrequest_htmls(
            cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists(
                '#id_devilry_admin_assignment_examiner_on_semester_not_on_assignment'
            ))

        # Check warning text
        self.assertIn(
            'note: There are examiners on the semester that are not assigned to any students',
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_on_semester_not_on_assignment'
            ).alltext_normalized)

        # Check warning link
        url = reverse_cradmin_url(instanceid='devilry_admin_assignmentadmin',
                                  appname='examineroverview',
                                  viewname='INDEX',
                                  roleid=assignment.id)
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_on_semester_not_on_assignment > a'
            ).get('href'))
Exemple #29
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_subjectadmin',
         appname='overview',
         roleid=self.subject.id,
         viewname=crapp.INDEXVIEW_NAME
     )
    def test_no_examiners_on_semester_warning(self):
        assignment = mommy.make_recipe(
            'devilry.apps.core.assignment_activeperiod_end')
        mockresponse = self.mock_http200_getrequest_htmls(
            cradmin_role=assignment)

        # Check warning exists
        self.assertTrue(
            mockresponse.selector.exists(
                '#id_devilry_admin_assignment_examiner_empty_semester_warning')
        )

        # Check warning text
        self.assertTrue(
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_empty_semester_warning'
            ).alltext_normalized,
            'warning: Go to the semester page and add/activate examiners')

        # Check warning link
        url = reverse_cradmin_url(instanceid='devilry_admin_periodadmin',
                                  appname='overview',
                                  roleid=assignment.parentnode.id,
                                  viewname='INDEX')
        self.assertEqual(
            url,
            mockresponse.selector.one(
                '#id_devilry_admin_assignment_examiner_empty_semester_warning > strong > a'
            ).get('href'))
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='delete_groups',
         roleid=self.assignment.id,
         viewname='manual_select'
     )
 def get_success_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='studentoverview',
         roleid=self.request.cradmin_instance.assignment.id,
         viewname=crapp.INDEXVIEW_NAME
     )
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='delete_groups',
         roleid=self.current_assignment.id,
         viewname='confirm_delete',
         kwargs={'from_assignment_id': self.assignment.id}
     )
 def test_post_success_redirect(self):
     self.assertEqual(Assignment.objects.count(), 0)
     created_assignment, mockresponse = self.__valid_post_request(first_deadline=ACTIVE_PERIOD_END)
     self.assertEqual(mockresponse.response['location'],
                      crinstance.reverse_cradmin_url(
                          instanceid='devilry_admin_assignmentadmin',
                          appname='overview',
                          roleid=created_assignment.id))
 def test_post_success_redirect(self):
     self.assertEqual(Period.objects.count(), 0)
     created_period, mockresponse = self.__valid_post_request()
     self.assertEqual(mockresponse.response['location'],
                      crinstance.reverse_cradmin_url(
                          instanceid='devilry_admin_periodadmin',
                          appname='overview',
                          roleid=created_period.id))
Exemple #36
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='examinerdetails',
         roleid=self.kwargs['assignment'].id,
         viewname=crapp.INDEXVIEW_NAME,
         kwargs={'relatedexaminer_id': self.relatedexaminer.id}
     )
 def test_post_success_redirect(self):
     created_subject, mockresponse = self.__valid_post_request()
     self.assertEqual(
         mockresponse.response['location'],
         crinstance.reverse_cradmin_url(
             instanceid='devilry_admin_subjectadmin',
             appname='overview',
             roleid=created_subject.id))
 def get_actionurl(self, delivery):
     return crinstance.reverse_cradmin_url(
         instanceid='devilry_student_group',
         appname='deliveries',
         roleid=delivery.deadline.assignment_group_id,
         viewname='deliverydetails',
         kwargs={'pk': delivery.pk}
     )
 def _get_as(self, username, deliveryid):
     self.client.login(username=username, password='******')
     return self.client.get(reverse_cradmin_url(
         instanceid='devilry_student_group',
         appname='deliveries',
         roleid=self.groupbuilder.group.id,
         viewname='deliverydetails',
         kwargs={'pk': deliveryid}))
Exemple #40
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='groupdetails',
         roleid=self.kwargs['assignment'].id,
         viewname='groupdetails',
         kwargs={'pk': self.group.id}
     )
 def _postas(self, group_id, user, *args, **kwargs):
     self.client.login(username=user.shortname, password='******')
     url = reverse_cradmin_url(
         instanceid='devilry_student_group',
         appname='projectgroup',
         roleid=group_id
     )
     return self.client.post(url, *args, **kwargs)
 def test_post_success_redirect(self):
     self.assertEqual(Period.objects.count(), 0)
     created_period, mockresponse = self.__valid_post_request()
     self.assertEqual(mockresponse.response['location'],
                      crinstance.reverse_cradmin_url(
                          instanceid='devilry_admin_periodadmin',
                          appname='overview',
                          roleid=created_period.id))
 def get_actionurl(self, delivery):
     return crinstance.reverse_cradmin_url(
         instanceid='devilry_student_group',
         appname='deliveries',
         roleid=delivery.deadline.assignment_group_id,
         viewname='deliverydetails',
         kwargs={'pk': delivery.pk}
     )
Exemple #44
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_assignmentadmin',
         appname='examinerdetails',
         roleid=self.kwargs['assignment'].id,
         viewname=crapp.INDEXVIEW_NAME,
         kwargs={'relatedexaminer_id': self.relatedexaminer.id}
     )
Exemple #45
0
 def build_menu(self):
     self.add_headeritem_object(
         BreadcrumbMenuItem(
             label='Devilry',
             url=reverse_cradmin_url(instanceid='devilry_frontpage',
                                     appname='frontpage',
                                     roleid=None,
                                     viewname=crapp.INDEXVIEW_NAME),
             active=self.get_frontpage_breadcrumb_is_active()))
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin',
         appname='studentfeedbackfeedwizard',
         viewname='student_groups',
         kwargs={
             'user_id': self.user.id
         }
     )
 def test_post_success_redirect(self):
     self.assertEqual(Assignment.objects.count(), 0)
     created_assignment, mockresponse = self.__valid_post_request(first_deadline=ACTIVE_PERIOD_END)
     self.assertEqual(
         mockresponse.response["location"],
         crinstance.reverse_cradmin_url(
             instanceid="devilry_admin_assignmentadmin", appname="overview", roleid=created_assignment.id
         ),
     )
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin',
         appname='studentfeedbackfeedwizard',
         viewname='student_groups',
         kwargs={
             'user_id': self.user.id
         }
     )
 def add_role_menuitem_object(self, active=False):
     self.add_headeritem_object(devilry_crmenu.BreadcrumbMenuItem(
         label=ugettext_lazy('Account'),
         url=reverse_cradmin_url(
             instanceid='devilry_account',
             appname='account'
         ),
         active=active
     ))
 def add_role_menuitem_object(self, active=False):
     return self.add_headeritem_object(
         devilry_crmenu.BreadcrumbMenuItem(
             label=pgettext_lazy('breadcrumb', 'Administrator'),
             url=reverse_cradmin_url(instanceid='devilry_admin',
                                     appname='overview',
                                     roleid=None,
                                     viewname=crapp.INDEXVIEW_NAME),
             active=active))
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_periodadmin',
         roleid=self.status.period.id,
         appname='qualifiesforexam',
         viewname='show-status',
         kwargs={
             'statusid': self.status.id
         }
     )
 def _getas(self, group_id, invite_id, user, *args, **kwargs):
     self.client.login(username=user.shortname, password='******')
     url = reverse_cradmin_url(
         instanceid='devilry_student_group',
         appname='projectgroup',
         roleid=group_id,
         viewname='delete',
         kwargs={'invite_id': invite_id}
     )
     return self.client.get(url, *args, **kwargs)
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_periodadmin',
         appname='qualifiesforexam',
         roleid=self.roleid,
         viewname='configure-plugin',
         kwargs={
             'plugintypeid': self.plugin.get_plugintypeid(),
         }
     )
 def dispatch(self, request, *args, **kwargs):
     if Subject.objects.filter_user_is_admin(self.request.user):
         return HttpResponseRedirect(reverse_cradmin_url(
             instanceid='devilry_admin_subjectadmin',
             appname='overview',
             roleid=request.cradmin_role.id
         ))
     elif Subject.objects.filter_user_is_admin_for_any_periods_within_subject(self.request.user):
         return HttpResponseRedirect(self.request.cradmin_instance.rolefrontpage_url(roleid=request.cradmin_role.id))
     raise Http404()
Exemple #55
0
 def get_url(self):
     return reverse_cradmin_url(
         instanceid='devilry_admin_periodadmin',
         appname='qualifiesforexam',
         roleid=self.roleid,
         viewname='configure-plugin',
         kwargs={
             'plugintypeid': self.plugin.get_plugintypeid(),
         }
     )
    def test_send_examiner_comment_body(self):
        testassignment = mommy.make_recipe(
            'devilry.apps.core.assignment_activeperiod_start',
            long_name='Assignment 1')
        testgroup = mommy.make('core.AssignmentGroup',
                               parentnode=testassignment)
        test_feedbackset = group_mommy.feedbackset_first_attempt_unpublished(
            group=testgroup)

        # Another user on the group
        self._make_examineruser_with_email(group=testgroup,
                                           email='*****@*****.**')

        # The user that posted the comment
        comment_user = mommy.make(settings.AUTH_USER_MODEL,
                                  shortname='*****@*****.**')
        mommy.make('core.Candidate',
                   assignment_group=test_feedbackset.group,
                   relatedstudent__user=comment_user)
        test_groupcomment = mommy.make('devilry_group.GroupComment',
                                       feedback_set=test_feedbackset,
                                       text='This is a test',
                                       user_role=Comment.USER_ROLE_STUDENT,
                                       user=comment_user)
        mommy.make('devilry_account.UserEmail',
                   user=comment_user,
                   email='*****@*****.**')
        send_examiner_comment_email(
            comment_id=test_groupcomment.id,
            domain_url_start='http://www.example.com/',
        )

        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].recipients(), ['*****@*****.**'])
        for outbox in mail.outbox:
            self.assertEqual(
                htmls.S(outbox.message().as_string()).one(
                    '.devilry_email_comment_assignment').alltext_normalized,
                'Assignment: {}'.format(testassignment.long_name))
            self.assertEqual(
                htmls.S(outbox.message().as_string()).one(
                    '.devilry_email_comment_text').alltext_normalized,
                'This is a test')
            self.assertEqual(
                htmls.S(outbox.message().as_string()).one(
                    '.devilry_email_comment_detail_text').alltext_normalized,
                'See the delivery feed for more details:')
            url = reverse_cradmin_url(instanceid='devilry_group_examiner',
                                      appname='feedbackfeed',
                                      roleid=testgroup.id)
            link_url = 'http://www.example.com' + url
            self.assertEqual(
                link_url,
                htmls.S(outbox.message().as_string()).one(
                    '.devilry_email_comment_detail_url').alltext_normalized)
 def add_subject_breadcrumb_item(self, subject, active=False):
     return self.add_headeritem_object(devilry_crmenu.BreadcrumbMenuItem(
         label=subject.short_name,
         url=reverse_cradmin_url(
             instanceid='devilry_admin_subject_for_periodadmin',
             appname='overview',
             roleid=subject.id,
             viewname=crapp.INDEXVIEW_NAME
         ),
         active=active
     ))
Exemple #58
0
 def add_group_breadcrumb_item(self, group, active=False):
     self.add_headeritem_object(devilry_crmenu.BreadcrumbMenuItem(
         label=defaultfilters.truncatechars(self.get_group_label(group), 25),
         url=reverse_cradmin_url(
             instanceid='devilry_group_student',
             appname='feedbackfeed',
             roleid=group.id,
             viewname=crapp.INDEXVIEW_NAME,
         ),
         active=active
     ))
 def add_assignment_breadcrumb_item(self, assignment, active=False):
     return self.add_headeritem_object(devilry_crmenu.BreadcrumbMenuItem(
         label=assignment.short_name,
         url=reverse_cradmin_url(
             instanceid='devilry_admin_assignmentadmin',
             appname='overview',
             roleid=assignment.id,
             viewname=crapp.INDEXVIEW_NAME,
         ),
         active=active
     ))