def test_custom_fields_serialized_from_concept_editor(self):
        """ Test that the custom fields were serialized from the editor"""
        object_class = MDR.ObjectClass.objects.create(
            name='Person',
            definition='A human being',
            submitter=self.editor
        )

        custom_field = CustomField.objects.create(
            name='MyCustomField',
            type='int',
            help_text='Custom',
            order=0
        )

        postdata = model_to_dict_with_change_time(object_class)
        postdata[custom_field.form_field_name] = 4

        self.login_editor()
        self.reverse_post(
            'aristotle:edit_item',
            postdata,
            reverse_args=[object_class.id],
            status_code=302
        )
        serialized_data = self.get_serialized_data_dict(object_class)

        self.assertEqual(int(serialized_data['customvalue_set'][0]['content']), 4)
    def test_user_recent_dashboard_panel(self):

        self.login_editor()

        response = self.client.get(reverse('aristotle:userHome', ))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.context['recentdata']), 0)

        wizard_url = reverse('aristotle:createItem',
                             args=['aristotle_mdr', 'objectclass'])
        wizard_form_name = "dynamic_aristotle_wizard"

        step_1_data = {
            wizard_form_name + '-current_step': 'initial',
            'initial-name': "Test Item"
        }

        response = self.client.post(wizard_url, step_1_data)
        self.assertFalse(
            models._concept.objects.filter(name="Test Item").exists())
        step_2_data = {
            wizard_form_name + '-current_step': 'results',
            'results-name': "Test Item",
            'results-definition': "Test Definition",
            'results-workgroup': self.wg1.pk
        }
        step_2_data.update(self.get_formset_postdata([], 'slots'))
        step_2_data.update(self.get_formset_postdata([], 'org_records'))

        response = self.client.post(wizard_url, step_2_data)
        self.assertTrue(
            models._concept.objects.filter(name="Test Item").exists())
        self.assertEqual(
            models._concept.objects.filter(name="Test Item").count(), 1)
        item = models._concept.objects.filter(name="Test Item").first()

        from reversion.models import Revision

        response = self.client.get(reverse('aristotle:userHome'))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.context['recentdata']),
                         Revision.objects.filter(user=self.editor).count())

        # Lets update an item so there is some recent history
        updated_item = utils.model_to_dict_with_change_time(item)
        updated_name = updated_item['name'] + " updated!"
        updated_item['name'] = updated_name
        response = self.client.post(
            reverse('aristotle:edit_item', args=[item.id]), updated_item)
        self.assertEqual(response.status_code, 302)

        response = self.client.get(reverse('aristotle:userHome', ))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.context['recentdata']),
                         Revision.objects.filter(user=self.editor).count())

        self.assertContains(response, "Changed name")
    def test_user_recent_dashboard_panel(self):

        self.login_editor()

        response = self.client.get(reverse('aristotle:userHome',))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.context['recent']), 0)

        wizard_url = reverse('aristotle:createItem', args=['aristotle_mdr', 'objectclass'])
        wizard_form_name = "dynamic_aristotle_wizard"

        step_1_data = {
            wizard_form_name + '-current_step': 'initial',
            'initial-name': "Test Item"
        }

        response = self.client.post(wizard_url, step_1_data)
        self.assertFalse(models._concept.objects.filter(name="Test Item").exists())
        step_2_data = {
            wizard_form_name + '-current_step': 'results',
            'results-name': "Test Item",
            'results-definition': "Test Definition",
            'results-workgroup': self.wg1.pk
        }
        response = self.client.post(wizard_url, step_2_data)
        self.assertTrue(models._concept.objects.filter(name="Test Item").exists())
        self.assertEqual(models._concept.objects.filter(name="Test Item").count(), 1)
        item = models._concept.objects.filter(name="Test Item").first()

        from reversion.models import Revision

        response = self.client.get(reverse('aristotle:userHome'))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            len(response.context['recent']),
            Revision.objects.filter(user=self.editor).count()
        )

        # Lets update an item so there is some recent history
        updated_item = utils.model_to_dict_with_change_time(item)
        updated_name = updated_item['name'] + " updated!"
        updated_item['name'] = updated_name
        response = self.client.post(reverse('aristotle:edit_item', args=[item.id]), updated_item)
        self.assertEqual(response.status_code, 302)

        response = self.client.get(reverse('aristotle:userHome',))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.context['recent']), Revision.objects.filter(user=self.editor).count())

        self.assertContains(response, "Changed name")
Пример #4
0
    def test_newly_created_version_permissions_default_to_workgroup(self):
        # ///Arrange

        self.login_editor()

        object_class = MDR.ObjectClass.objects.create(
            name="A published item",
            definition="I wonder what the version permission for this is",
            submitter=self.editor)
        # ///Act

        # Load the EditItem page
        response = self.client.get(
            reverse('aristotle:edit_item', args=[object_class.id]))
        self.assertEqual(response.status_code, 200)

        # Edit the item
        updated_item = utils.model_to_dict_with_change_time(
            response.context['item'])
        updated_name = updated_item['name'] + " updated!"
        updated_item['name'] = updated_name
        change_comment = "I changed this because I can"
        updated_item['change_comments'] = change_comment
        response = self.client.post(
            reverse('aristotle:edit_item', args=[object_class.id]),
            updated_item)

        # Decache
        object_class = MDR.ObjectClass.objects.get(pk=object_class.pk)

        # ///Assert
        self.assertEqual(object_class.name, updated_name)

        # Load the version
        version = Version.objects.get_for_object(object_class).first()

        # Load the associated VersionPermission object
        version_permission = VersionPermissions.objects.get_object_or_none(
            version=version)

        # Check that it defaults to 2
        self.assertEqual(version_permission.visibility,
                         VISIBILITY_PERMISSION_CHOICES.workgroup)