def test_render_with_default_args(self): self.serializer.is_valid() renderer = HTMLFormRenderer() result = renderer.render(self.serializer.data) self.assertIsInstance(result, SafeText)
def test_render_with_provided_args(self): self.serializer.is_valid() renderer = HTMLFormRenderer() result = renderer.render(self.serializer.data, None, {}) self.assertIsInstance(result, SafeText)
def setUp(self): choices = ((1, 'Option1'), (2, 'Option2'), (12, 'Option12')) class TestSerializer(serializers.Serializer): test_field = serializers.ChoiceField(choices=choices, initial=2) self.TestSerializer = TestSerializer self.renderer = HTMLFormRenderer()
def test_hidden_field_rendering(self): class TestSerializer(serializers.Serializer): published = serializers.HiddenField(default=True) serializer = TestSerializer(data={}) serializer.is_valid() renderer = HTMLFormRenderer() field = serializer['published'] rendered = renderer.render_field(field, {}) assert rendered == ''
def template_view_inbox(self, request, *args, **kwargs): gt_datas_title = [ 'name', 'bpmnName', ] gt_datas_dbtitle = [ 'name', 'bpmnName', ] gt_buttons = [ {'type': 'primary fa fa-gear', 'func': 'doJob(obj.id)', 'is_toggle_func': 's', 'is_toggle': 0}, ] serializer = self.get_serializer() renderer = HTMLFormRenderer() gm_task_create_form = renderer.render(serializer.data, renderer_context={ 'template': 'forms/LunchedProcess/CreateLunchedProcess.html', 'request': self.request }) # ali = render(request, 'forms/task/CreateTask.html',{}) gm_task_create_buttons = [ {'type': 'primary fa fa-save', 'func': 'saveLunchedProcess()', 'title': ''}, {'type': 'danger fa fa-times', 'func': 'cancel()', 'title': ''}, ] # gt_ means GenericTable # gm_ means GenericModal data = {'gm_items': [{ 'gm_modal_title': 'createLunchedProcess', 'gm_modal_id': 'GenericModalTaskCreate.html', 'gm_form': gm_task_create_form, 'gm_buttons': gm_task_create_buttons}], 'gt_table_title': 'LunchedProcessInbox', 'gt_object_name': 'LunchedProcess', 'gt_func_col': 'col-md-1', 'gt_search_func': 'searchLunchedProcess()', 'gt_create_func': 'createLunchedProcess()', 'gt_datas_title': gt_datas_title, 'gt_datas_dbtitle': gt_datas_dbtitle, 'gt_buttons': gt_buttons, 'LunchedProcess_table_template': 'generic-templates/Table.html', 'LunchedProcess_edit_modal': 'generic-templates/Modal.html', } return render_to_response('others/LunchedProcessInbox.html', data, context_instance=RequestContext(self.request))
class TestMultipleChoiceFieldHTMLFormRenderer(TestCase): """ Test rendering MultipleChoiceField with HTMLFormRenderer. """ def setUp(self): self.renderer = HTMLFormRenderer() def test_render_selected_option_with_string_option_ids(self): choices = (('1', 'Option1'), ('2', 'Option2'), ('12', 'Option12'), ('}', 'OptionBrace')) class TestSerializer(serializers.Serializer): test_field = serializers.MultipleChoiceField(choices=choices) serializer = TestSerializer(data={'test_field': ['12']}) serializer.is_valid() result = self.renderer.render(serializer.data) self.assertIsInstance(result, SafeText) self.assertInHTML('<option value="12" selected>Option12</option>', result) self.assertInHTML('<option value="1">Option1</option>', result) self.assertInHTML('<option value="2">Option2</option>', result) self.assertInHTML('<option value="}">OptionBrace</option>', result) def test_render_selected_option_with_integer_option_ids(self): choices = ((1, 'Option1'), (2, 'Option2'), (12, 'Option12')) class TestSerializer(serializers.Serializer): test_field = serializers.MultipleChoiceField(choices=choices) serializer = TestSerializer(data={'test_field': ['12']}) serializer.is_valid() result = self.renderer.render(serializer.data) self.assertIsInstance(result, SafeText) self.assertInHTML('<option value="12" selected>Option12</option>', result) self.assertInHTML('<option value="1">Option1</option>', result) self.assertInHTML('<option value="2">Option2</option>', result)
class TestHTMLFormRenderer(TestCase): def setUp(self): class TestSerializer(serializers.Serializer): test_field = serializers.CharField() self.renderer = HTMLFormRenderer() self.serializer = TestSerializer(data={}) def test_render_with_default_args(self): self.serializer.is_valid() result = self.renderer.render(self.serializer.data, renderer_context={'serializer': self.serializer}) self.assertIsInstance(result, SafeText) def test_render_with_provided_args(self): self.serializer.is_valid() result = self.renderer.render(self.serializer.data, None, {'serializer': self.serializer}) self.assertIsInstance(result, SafeText)
def test_rendering_nested_fields_with_none_value(self): from rest_framework.renderers import HTMLFormRenderer class Nested1(serializers.Serializer): text_field = serializers.CharField() class Nested2(serializers.Serializer): nested1 = Nested1(allow_null=True) text_field = serializers.CharField() class ExampleSerializer(serializers.Serializer): nested2 = Nested2() serializer = ExampleSerializer( data={'nested2': { 'nested1': None, 'text_field': 'test' }}) assert serializer.is_valid() renderer = HTMLFormRenderer() for field in serializer: rendered = renderer.render_field(field, {}) expected_packed = ( '<fieldset>' '<legend>Nested2</legend>' '<fieldset>' '<legend>Nested1</legend>' '<divclass="form-group">' '<label>Textfield</label>' '<inputname="nested2.nested1.text_field"class="form-control"type="text">' '</div>' '</fieldset>' '<divclass="form-group">' '<label>Textfield</label>' '<inputname="nested2.text_field"class="form-control"type="text"value="test">' '</div>' '</fieldset>') rendered_packed = ''.join(rendered.split()) assert rendered_packed == expected_packed
class TestChoiceFieldHTMLFormRenderer(TestCase): """ Test rendering ChoiceField with HTMLFormRenderer. """ def setUp(self): choices = ((1, 'Option1'), (2, 'Option2'), (12, 'Option12')) class TestSerializer(serializers.Serializer): test_field = serializers.ChoiceField(choices=choices, initial=2) self.TestSerializer = TestSerializer self.renderer = HTMLFormRenderer() def test_render_initial_option(self): serializer = self.TestSerializer() result = self.renderer.render(serializer.data) self.assertIsInstance(result, SafeText) self.assertInHTML('<option value="2" selected>Option2</option>', result) self.assertInHTML('<option value="1">Option1</option>', result) self.assertInHTML('<option value="12">Option12</option>', result) def test_render_selected_option(self): serializer = self.TestSerializer(data={'test_field': '12'}) serializer.is_valid() result = self.renderer.render(serializer.data) self.assertIsInstance(result, SafeText) self.assertInHTML('<option value="12" selected>Option12</option>', result) self.assertInHTML('<option value="1">Option1</option>', result) self.assertInHTML('<option value="2">Option2</option>', result)
def test_rendering_boolean_field(self): from rest_framework.renderers import HTMLFormRenderer class ExampleSerializer(serializers.Serializer): bool_field = serializers.BooleanField( style={'base_template': 'checkbox.html', 'template_pack': 'rest_framework/vertical'}) serializer = ExampleSerializer(data={'bool_field': True}) assert serializer.is_valid() renderer = HTMLFormRenderer() rendered = renderer.render_field(serializer['bool_field'], {}) expected_packed = ( '<divclass="form-group">' '<divclass="checkbox">' '<label>' '<inputtype="checkbox"name="bool_field"value="true"checked>' 'Boolfield' '</label>' '</div>' '</div>' ) rendered_packed = ''.join(rendered.split()) assert rendered_packed == expected_packed
def test_rendering_nested_fields_with_none_value(self): from rest_framework.renderers import HTMLFormRenderer class Nested1(serializers.Serializer): text_field = serializers.CharField() class Nested2(serializers.Serializer): nested1 = Nested1(allow_null=True) text_field = serializers.CharField() class ExampleSerializer(serializers.Serializer): nested2 = Nested2() serializer = ExampleSerializer(data={'nested2': {'nested1': None, 'text_field': 'test'}}) assert serializer.is_valid() renderer = HTMLFormRenderer() for field in serializer: rendered = renderer.render_field(field, {}) expected_packed = ( '<fieldset>' '<legend>Nested2</legend>' '<fieldset>' '<legend>Nested1</legend>' '<divclass="form-group">' '<label>Textfield</label>' '<inputname="nested2.nested1.text_field"class="form-control"type="text">' '</div>' '</fieldset>' '<divclass="form-group">' '<label>Textfield</label>' '<inputname="nested2.text_field"class="form-control"type="text"value="test">' '</div>' '</fieldset>' ) rendered_packed = ''.join(rendered.split()) assert rendered_packed == expected_packed
def setUp(self): class TestSerializer(serializers.Serializer): test_field = serializers.CharField() self.renderer = HTMLFormRenderer() self.serializer = TestSerializer(data={})
def render_form(serializer, template_pack=None): style = {'template_pack': template_pack} if template_pack else {} renderer = HTMLFormRenderer() return renderer.render(serializer.data, None, {'style': style})
def template_view(self, request, *args, **kwargs): gt_datas_title = [ 'id', 'username' 'email', 'active', 'staff', 'superuser', 'lastlogin ', ] gt_datas_dbtitle = [ 'id', 'username', 'email', 'is_active', 'is_staff', 'is_superuser', "last_login | jalaliDateFromNow:'jYYYY-jMM-jDD hh:mm:ss' ", ] gt_buttons = [ {'type': 'primary fa fa-edit', 'func': 'userEdit(obj.username)', 'is_toggle_func': 's', 'is_toggle': 0}, {'type': 'info fa fa-key', 'func': 'passEdit(obj.username)', 'is_toggle_func': 's', 'is_toggle': 0}, {'type': 'warning fa fa-lock', 'type2': 'success fa fa-unlock', 'is_toggle_func': 'is_active', 'func': 'userPassive(obj.username)', 'title': 'passive', 'is_toggle': 1}, {'type': 'danger fa fa-trash', 'func': 'userDelete(obj.username)', 'is_toggle_func': 's', 'is_toggle': 0} ] gm_user_buttons = [ {'type': 'success fa fa-save', 'func': 'saveUserEdit()', 'title': ''}, {'type': 'danger fa fa-times', 'func': 'cancel()', 'title': ''}, ] gm_pass_buttons = [ {'type': 'success fa fa-save', 'func': 'savePassEdit()', 'title': ''}, {'type': 'danger fa fa-times', 'func': 'cancel()', 'title': ''}, ] gm_aresure_buttons = [ {'type': 'success fa fa-check', 'func': 'yes()', 'title': ''}, {'type': 'danger fa fa-times', 'func': 'no()', 'title': ''}, ] serializer = self.get_serializer() renderer = HTMLFormRenderer() gm_user_form = renderer.render(serializer.data, renderer_context={ 'template': 'forms/amsp-user/EditUsernameEmail.html', 'request': self.request }) gm_pass_form = renderer.render(serializer.data, renderer_context={ 'template': 'forms/amsp-user/EditPass.html', 'request': self.request }) # gt_ means GenericTable # gm_ means GenericModal data = {'gm_items': [{ 'gm_modal_title': 'edituser', 'gm_modal_id': 'GenericModalUserEdit.html', 'gm_form': gm_user_form, 'gm_buttons': gm_user_buttons}, { 'gm_modal_title': 'editpass', 'gm_modal_id': 'GenericModalPassEdit.html', 'gm_form': gm_pass_form, 'gm_buttons': gm_pass_buttons}, { 'gm_modal_title': 'areyuosure', 'gm_modal_id': 'GenericModalAreYouSure.html', 'gm_form': 'areusure', 'gm_buttons': gm_aresure_buttons}, { 'gm_modal_title': 'forbiden', 'gm_modal_id': 'GenericModalPermissionDenied.html', 'gm_form': 'permissiondenied', 'gm_buttons': [{'type': 'success fa fa-check', 'func': 'ok()', 'title': ''}]}], 'gt_table_title': 'userlist', 'gt_object_name': 'user', 'gt_func_col': 'col-md-2', 'gt_search_func': 'searchUsers()', 'gt_datas_title': gt_datas_title, 'gt_datas_dbtitle': gt_datas_dbtitle, 'gt_buttons': gt_buttons, 'user_table_template': 'ani-theme/generic-templates/Table.html', 'user_edit_modal': 'ani-theme/generic-templates/Modal.html', } return render_to_response('ani-theme/views/pages/dashboard/../../../templates/amsp-user/UsersTable.html', data, context_instance=RequestContext(self.request))
def render_field(field, style): renderer = style.get('renderer', HTMLFormRenderer()) return renderer.render_field(field, style)
def setUp(self): self.renderer = HTMLFormRenderer()
def template_view(self, request, *args, **kwargs): gt_datas_title = [ 'id', 'name', ] gt_datas_dbtitle = [ 'id', 'name', ] gt_buttons = [ {'type': 'primary fa fa-edit', 'func': 'groupEdit(obj.name)', 'title': '', 'is_toggle': 0}, {'type': 'danger fa fa-trash', 'func': 'groupDelete(obj.name)', 'title': '', 'is_toggle': 0}, ] gm_group_buttons = [ {'type': 'success fa fa-save', 'func': 'saveGroupEdit(obj.name)', 'title': ''}, {'type': 'danger fa fa-times', 'func': 'cancel()', 'title': ''}, ] gm_group_create_buttons = [ {'type': 'primary fa fa-save', 'func': 'saveGroup()', 'title': ''}, {'type': 'danger fa fa-times', 'func': 'cancel()', 'title': ''}, ] serializer = self.get_serializer() renderer = HTMLFormRenderer() gm_group_form = renderer.render(serializer.data, renderer_context={ 'template': 'forms/amsp-user/EditGroup.html', 'request': self.request }) gm_group_create_form = renderer.render(serializer.data, renderer_context={ 'template': 'forms/amsp-user/CreateGroup.html', 'request': self.request }) gm_aresure_buttons = [ {'type': 'success fa fa-check', 'func': 'yes()', 'title': ''}, {'type': 'danger fa fa-times', 'func': 'no()', 'title': ''}, ] # gt_ means GenericTable # gm_ means GenericModal data = {'gm_items': [{ 'gm_modal_title': 'editgroup', 'gm_modal_id': 'GenericModalGroupEdit.html', 'gm_form': gm_group_form, 'gm_buttons': gm_group_buttons}, { 'gm_modal_title': 'creategroup', 'gm_modal_id': 'GenericModalGroupCreate.html', 'gm_form': gm_group_create_form, 'gm_buttons': gm_group_create_buttons}, { 'gm_modal_title': 'areyuosure', 'gm_modal_id': 'GenericModalAreYouSure.html', 'gm_form': 'areusure', 'gm_buttons': gm_aresure_buttons},{ 'gm_modal_title': 'forbiden', 'gm_modal_id': 'GenericModalPermissionDenied.html', 'gm_form': 'permissiondenied', 'gm_buttons': [{'type': 'success fa fa-check', 'func': 'ok()', 'title': ''}]} ], 'gt_table_title': 'grouplist', 'gt_object_name': 'group', 'gt_func_col': 'col-md-1', 'gt_search_func': 'searchGroup()', 'gt_create_func': 'createGroup()', 'gt_datas_title': gt_datas_title, 'gt_datas_dbtitle': gt_datas_dbtitle, 'gt_buttons': gt_buttons, 'group_table_template': 'ani-theme/generic-templates/Table.html', 'group_edit_modal': 'ani-theme/generic-templates/Modal.html', } return render_to_response('amsp-user/GroupsTable.html', data, context_instance=RequestContext(self.request))
def render_vue_field(field, style=None, template_pack="vue/default/"): style = {} if style is None else style if template_pack: style["template_pack"] = template_pack renderer = style.get("renderer", HTMLFormRenderer()) return renderer.render_field(field, style)
def render_vue_form(serializer, template_pack=None): style = {"template_pack": template_pack or "vue/default"} renderer = HTMLFormRenderer() return renderer.render(serializer.data, None, {"style": style})
def render_field(field, style=None): style = style or {} renderer = style.get('renderer', HTMLFormRenderer()) return renderer.render_field(field, style)