Exemplo n.º 1
0
 def test_user_permissions_form_rendering(self):
     # Test rendering of permissions from list in entity
     u = entitydata_edit_url("edit",
                             "testcoll",
                             layout.USER_TYPEID,
                             "testuser",
                             view_id="User_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(coll_id="testcoll",
                                 type_id=layout.USER_TYPEID,
                                 entity_id="testuser",
                                 tooltip=context_view_field(
                                     r.context, 4, 0)['field_help'])
     formrow5 = """
         <div class="small-12 columns" title="%(tooltip)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Permissions</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_permissions" 
                            placeholder="(user permissions; e.g. &#39;VIEW CREATE UPDATE DELETE CONFIG&#39;)"
                            value="VIEW CREATE UPDATE DELETE CONFIG ADMIN"/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     # log.info(r.content)
     # log.info
     # for i in range(len(r.context['fields'])):
     #     log.info("Field %d: %r"%(i, r.context['fields'][i]))
     self.assertContains(r, formrow5, html=True)
     return
Exemplo n.º 2
0
 def test_bad_user_permissions_form_rendering(self):
     # Test handling of permissions not stored in entity as a list of values
     create_user_permissions(self.testcoll, 
         "baduserperms",
         user_permissions="VIEW CREATE UPDATE DELETE"
         )
     u = entitydata_edit_url(
         "edit", "testcoll", layout.USER_TYPEID, "baduserperms", view_id="User_view"
         )
     with SuppressLogging(logging.WARNING):
         r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="testcoll", type_id=layout.USER_TYPEID, entity_id="baduserperms",
         tooltip=context_view_field(r.context, 4, 0)['field_help']
         )
     formrow5 = """
         <div class="small-12 columns" title="%(tooltip)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Permissions</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_permissions" 
                            placeholder="(user permissions; e.g. &#39;VIEW CREATE UPDATE DELETE CONFIG&#39;)"
                            value="VIEW CREATE UPDATE DELETE"/>
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow5, html=True)
     return
Exemplo n.º 3
0
 def test_user_permissions_form_rendering(self):
     # Test rendering of permissions from list in entity
     u = entitydata_edit_url(
         "edit", "testcoll", layout.USER_TYPEID, "testuser", view_id="User_view"
         )
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="testcoll", type_id=layout.USER_TYPEID, entity_id="testuser",
         tooltip=context_view_field(r.context, 4, 0)['field_help']
         )
     formrow5 = """
         <div class="small-12 columns" title="%(tooltip)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Permissions</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_permissions" 
                            placeholder="(user permissions; e.g. &#39;VIEW CREATE UPDATE DELETE CONFIG&#39;)"
                            value="VIEW CREATE UPDATE DELETE CONFIG ADMIN"/>
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     # log.info(r.content)
     # log.info
     # for i in range(len(r.context['fields'])):
     #     log.info("Field %d: %r"%(i, r.context['fields'][i]))
     self.assertContains(r, formrow5, html=True)
     return
Exemplo n.º 4
0
 def test_user_permissions_form_rendering(self):
     # Test rendering of permissions from list in entity
     u = entitydata_edit_url("edit",
                             "testcoll",
                             "_user",
                             "testuser",
                             view_id="User_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(coll_id="testcoll",
                                 type_id="_user",
                                 entity_id="testuser")
     formrow5 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>Permissions</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_permissions" 
                            placeholder="(user permissions; e.g. &#39;VIEW CREATE UPDATE DELETE&#39;)"
                            value="VIEW CREATE UPDATE DELETE CONFIG ADMIN"/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow5, html=True)
     return
Exemplo n.º 5
0
 def test_bad_user_permissions_form_rendering(self):
     # Test handling of permissions not stored in entity as a list of values
     create_user_permissions(self.testcoll,
                             "baduserperms",
                             user_permissions="VIEW CREATE UPDATE DELETE")
     u = entitydata_edit_url("edit",
                             "testcoll",
                             "_user",
                             "baduserperms",
                             view_id="User_view")
     with SuppressLogging(logging.WARNING):
         r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(coll_id="testcoll",
                                 type_id="_user",
                                 entity_id="baduserperms")
     formrow5 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>Permissions</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_permissions" 
                            placeholder="(user permissions; e.g. &#39;VIEW CREATE UPDATE DELETE&#39;)"
                            value="VIEW CREATE UPDATE DELETE"/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow5, html=True)
     return
 def test_RenderRepeatGroup_view_no_values(self):
     # Create view with repeat-field and repeat-group
     testview = self._create_testview()
     testrepeatfield = self._create_testrepeatfield(
         label_add="Add group", label_delete="Remove group")
     testrepeatgroup = self._create_testrepeatgroup()
     testentity = self._create_testentity()
     # Render view
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testtype",
                             entity_id="testentity",
                             view_id="testview")
     v = entity_url("testcoll", "testtype", entity_id="testentity")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test rendered result
     cont_uri_param = "?continuation_url=" + u
     field_vals = default_fields(
         coll_id="testcoll",
         type_id="testtype",
         entity_id="00000001",
         view_url=v,
         cont_uri_param=cont_uri_param,
         tooltip1="",
         tooltip2="",
     )
     formrow1 = """
         <div class="small-12 medium-6 columns" %(tooltip1)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Id</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(view_url)s%(cont_uri_param)s">testentity</a>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="row">
           <div class="%(group_label_classes)s">
             <span>Test repeat field label</span>
           </div>
           <div class="group-placeholder %(group_row_body_classes)s">
             <span>(None)</span>
           </div>
         </div>
         """ % field_vals(width=12)
     # log.info(r.content) #@@
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     return
 def test_RenderRepeatGroup_view_no_values(self):
     # Create view with repeat-field and repeat-group
     testview        = self._create_testview()
     testrepeatfield = self._create_testrepeatfield(
         label_add="Add group",
         label_delete="Remove group")
     testrepeatgroup = self._create_testrepeatgroup()
     testentity      = self._create_testentity()
     # Render view
     u = entitydata_edit_url(
         "view", "testcoll", "testtype", entity_id="testentity", view_id="testview"
         )
     v = entity_url("testcoll", "testtype", entity_id="testentity")
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test rendered result
     cont_uri_param = "?continuation_url="+u
     field_vals = default_fields(
         coll_id="testcoll", type_id="testtype", entity_id="00000001",
         view_url=v, cont_uri_param=cont_uri_param,
         tooltip1="",
         tooltip2="",
         )
     formrow1 = """
         <div class="small-12 medium-6 columns" %(tooltip1)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Id</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(view_url)s%(cont_uri_param)s">testentity</a>
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow2 = """
         <div class="row">
           <div class="%(group_label_classes)s">
             <span>Test repeat field label</span>
           </div>
           <div class="group-placeholder %(group_row_body_classes)s">
             <span>(None)</span>
           </div>
         </div>
         """%field_vals(width=12)
     # log.info(r.content) #@@
     self.assertContains(r, formrow1,  html=True)
     self.assertContains(r, formrow2, html=True)
     return
Exemplo n.º 8
0
 def test_get_form_rendering_view_bibentry(self):
     u = entitydata_edit_url(
         "edit", "testcoll", layout.VIEW_TYPEID, entity_id="BibEntry_view", 
         view_id="View_view"
         )
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="testcoll", type_id=layout.VIEW_TYPEID, entity_id="BibEntry_view",
         tooltip1=context_view_field(r.context, 0, 0)['field_help'],
         tooltip2=context_view_field(r.context, 1, 0)['field_help'],
         tooltip3=context_view_field(r.context, 2, 0)['field_help'],
         tooltip4=context_view_field(r.context, 4, 0)['field_help'],
         tooltip5=context_view_field(r.context, 5, 0)._field_description['group_field_descs'][0]['field_help']
       )
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>View Id</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="entity_id" 
                      placeholder="(view id)" value="%(entity_id)s"/>
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Label</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="View_label"
                      placeholder="(view label)" 
                      value="Bibliographic metadata"/>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Help</span>
             </div>
             <div class="%(input_classes)s">
               <textarea cols="64" rows="6" name="View_comment" 
                         class="small-rows-4 medium-rows-8"
                         placeholder="(description of record view)">
                   Bibliography entries each contain some subset of standard data entries.
               </textarea>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow4 = """
         <div class="small-12 medium-6 columns" title="%(tooltip4)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Editable view?</span>
             </div>
             <div class="%(input_classes)s">
               <input type="checkbox" name="View_edit_view" value="Yes" checked="checked" />
                <span class="value-placeholder">(edit view from edit entity form)</span>
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow5 = ("""
         <div class="small-12 medium-4 columns" title="%(tooltip5)s">
           <div class="row show-for-small-only">
             <div class="view-label small-12 columns">
               <span>Field id</span>
             </div>
           </div>
           <div class="row view-value-col">
             <div class="view-value small-12 columns">
             """+
               render_select_options(
                 "View_fields__0__Field_id", "Field id",
                 no_selection("(field sel)") + get_site_bibentry_fields_sorted(),
                 layout.FIELD_TYPEID+"/Entity_id",
                 placeholder="(field sel)"
                 )+
             """
             </div>
           </div>
         </div>
         """)%field_vals(width=4)
     formrow6 = """
         <div class="small-1 columns checkbox-in-edit-padding">
           <input type="checkbox" class="select-box right" 
                  name="View_fields__select_fields"
                  value="0" />
         </div>        
         """
     # log.info("*** BibEntry_view content: "+r.content)
     # log.info("*** %r"%(r.context['fields'][5]._field_description['field_help']))
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5, html=True)
     self.assertContains(r, formrow6, html=True)
     return
Exemplo n.º 9
0
    def test_Ref_Multifield_view(self):
        self._create_image_multifield_ref_and_view()

        # Render view of multifield reference
        u = entitydata_edit_url("view",
                                "testcoll",
                                "ref_type",
                                "Test_ref_entity",
                                view_id="Test_refimg_view")
        r = self.client.get(u)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.reason_phrase, "OK")

        # Check render context
        self.assertEqual(r.context['coll_id'], "testcoll")
        self.assertEqual(r.context['type_id'], "ref_type")
        self.assertEqual(r.context['entity_id'], "Test_ref_entity")
        self.assertEqual(r.context['action'], "view")
        # Fields
        # print "@@ field map:\bn"+context_field_map(r.context)
        self.assertEqual(len(r.context['fields']), 1)
        # 1st field - Id
        f0 = context_view_field(r.context, 0, 0)
        self.assertEqual(f0['field_id'], "Entity_id")
        self.assertEqual(f0['field_name'], "entity_id")
        self.assertEqual(f0['field_label'], "Id")
        self.assertEqual(f0['field_value'], "Test_ref_entity")
        # 2nd field - multifield group
        f1 = context_view_field(r.context, 0, 1)
        self.assertEqual(f1['field_id'], "Test_refimg_field")
        self.assertEqual(f1['field_name'], "Test_refimg_field")
        self.assertEqual(f1['field_label'], "Image reference")
        self.assertEqual(f1['field_render_type'], "RefMultifield")
        self.assertEqual(f1['field_value_mode'], "Value_entity")
        self.assertEqual(f1['field_value_type'], "annal:Field_group")
        self.assertEqual(f1['field_group_ref'], "Test_refimg_group")
        self.assertEqual(f1['group_label'], "Image reference")
        self.assertEqual(f1['field_property_uri'], "test:ref_image")
        self.assertEqual(f1['field_value'], "Test_img_entity")

        # Test rendered result
        field_vals = default_fields(
            coll_id="testcoll",
            type_id="ref_type",
            entity_id="Test_ref_entity",
            view_id="Test_refimg_view",
            basepath=TestBasePath,
            cont_uri_param="",
        )
        cont_uri_param = (
            "?continuation_url=%(basepath)s/c/%(coll_id)s/v/%(view_id)s/%(type_id)s/%(entity_id)s/!view"
            % field_vals())

        field_vals = default_fields(
            coll_id="testcoll",
            type_id="ref_type",
            entity_id="Test_ref_entity",
            view_id="Test_refimg_view",
            basepath=TestBasePath,
            cont_uri_param=cont_uri_param,
            # tooltip1=r.context['fields'][0]['field_help'],
        )
        formrow1 = """
            <div class="small-12 medium-6 columns">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                  <a href="%(basepath)s/c/%(coll_id)s/d/%(type_id)s/%(entity_id)s/%(cont_uri_param)s">%(entity_id)s</a>
                </div>
              </div>
            </div>
            """ % field_vals(width=6)

        tgt_field_vals = default_fields(
            coll_id="testcoll",
            type_id="img_type",
            entity_id="Test_img_entity",
            view_id="Test_refimg_view",
            field_id="image_field",
            basepath=TestBasePath,
            ref_image=
            "%s/c/testcoll/d/img_type/Test_img_entity/image_field.jpeg" %
            (TestBasePath, ),
            cont_uri_param=cont_uri_param,
            tooltip2a="",
            tooltip2b="",
        )
        formrow2a = """
            <div class="small-12 medium-6 columns" %(tooltip2a)s>
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>View comment field</span>
                </div>
                <div class="%(input_classes)s">
                  <span class="markdown"><p>Description of image</p></span>
                </div>
              </div>
            </div>
            """ % tgt_field_vals(width=6)
        formrow2b = """
            <div class="small-12 medium-6 columns" %(tooltip2b)s>
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>View image field</span>
                </div>
                <div class="%(input_classes)s">
                  <a href="%(ref_image)s" target="_blank">
                    <img src="%(ref_image)s"
                         alt="Image at '%(ref_image)s'" />
                  </a>
                </div>
              </div>
            </div>
            """ % tgt_field_vals(width=6)
        # log.info(r.content)
        self.assertContains(r, formrow1, html=True)
        self.assertContains(r, formrow2a, html=True)
        self.assertContains(r, formrow2b, html=True)
        return
Exemplo n.º 10
0
    def test_Repeat_Ref_Multifield_edit(self):
        self._create_image_multifield_repeat_ref_and_view()

        # Render view of multifield reference
        u = entitydata_edit_url("edit", "testcoll", "ref_type", "Test_rpt_entity", view_id="Test_rptimg_view")
        response = self.client.get(u)
        self.assertEqual(response.status_code,   200)
        self.assertEqual(response.reason_phrase, "OK")

        # Check render context
        expect_context = self._create_rptref_view_context(
            entity_id="Test_rpt_entity",
            action="edit",
            continuation_url=""
            )
        actual_context = context_bind_fields(response.context)
        self.assertEqual(len(response.context['fields']), 2)
        self.assertDictionaryMatch(actual_context, expect_context)

        f0 = context_view_field(response.context, 0, 0)
        f1 = context_view_field(response.context, 1, 0)

        # Test rendered result
        field_vals    = default_fields(
            coll_id="testcoll", type_id="ref_type", entity_id="Test_rpt_entity", 
            view_id="Test_rptimg_view",
            basepath=TestBasePath,
            tooltip1=f0['field_tooltip'],
            )
        formrow1 = """
            <div class="small-12 medium-6 columns" title="%(tooltip1)s">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                    <input type="text" size="64" name="entity_id"
                           placeholder="(entity id)"
                           value="%(entity_id)s"/>
                </div>
              </div>
            </div>
            """%field_vals(width=6)
        formrow2a = """
            <div class="group-label small-12 medium-2 columns">
              <span>Repeat image reference</span>
            </div>
            """
        formrow2b = """
            <div class="small-12 medium-10 columns hide-for-small-only">
              <div class="row">
                <div class="small-1 columns">
                  &nbsp;
                </div>
                <div class="small-11 columns">
                  <div class="edit-grouprow col-head row">
                    <div class="%(col_head_classes)s">
                      <span>Image reference</span>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """%field_vals(width=6)

        tgt_field_vals = default_fields(
            coll_id="testcoll", type_id="img_type", entity_id="Test_img_entity", 
            view_id="Test_rptimg_view",
            repeat_id="Test_rptref_field",
            field_id="Test_refimg_field",
            tooltip3b=f1._field_description['group_field_descs'][0]['field_tooltip_test']
            )
        formrow3a = """
            <div class="small-12 medium-2 columns hide-for-small-only">
              &nbsp;
            </div>
            """%tgt_field_vals(width=6)
        formrow3b = ("""
            <div class="small-12 medium-10 columns">
              <div class="tbody row select-row">
                <div class="small-1 columns checkbox-in-edit-padding">
                  <input type="checkbox" class="select-box right"
                         name="%(repeat_id)s__select_fields"
                         value="0" />
                </div>
                <div class="small-11 columns">
                  <div class="edit-grouprow row">
                    <div class="%(col_item_classes)s" title="%(tooltip3b)s">
                      <div class="row show-for-small-only">
                        <div class="view-label small-12 columns">
                          <span>Image reference</span>
                        </div>
                      </div>
                      <div class="row view-value-col">
                        <div class="view-value small-12 columns">
                        """+
                        render_select_options(
                            "%(repeat_id)s__0__%(field_id)s", 
                            "Image reference",
                            [FieldChoice("%(type_id)s/%(entity_id)s", label="Label %(entity_id)s")],
                            "%(type_id)s/%(entity_id)s"
                            )+
                        """
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """)%tgt_field_vals(width=6)
        # log.info(r.content)
        self.assertContains(response, formrow1,  html=True)
        self.assertContains(response, formrow2a, html=True)
        self.assertContains(response, formrow2b, html=True)
        self.assertContains(response, formrow3a, html=True)
        self.assertContains(response, formrow3b, html=True)
        return
Exemplo n.º 11
0
    def test_Ref_Multifield_edit(self):
        self._create_image_multifield_ref_and_view()

        # Render edit view of multifield reference
        u = entitydata_edit_url("edit", "testcoll", "ref_type", "Test_ref_entity", view_id="Test_refimg_view")
        response = self.client.get(u)
        self.assertEqual(response.status_code,   200)
        self.assertEqual(response.reason_phrase, "OK")

        # Check render context
        expect_context = self._create_refimg_view_context(
            entity_id="Test_ref_entity",
            entity_ref="Test_img_entity",
            action="edit",
            continuation_url=""
            )
        actual_context = context_bind_fields(response.context)
        self.assertEqual(len(response.context['fields']), 1)
        self.assertDictionaryMatch(actual_context, expect_context)

        # Test rendered result
        f0 = context_view_field(response.context, 0, 0)
        f1 = context_view_field(response.context, 0, 1)
        field_vals    = default_fields(
            coll_id="testcoll", type_id="ref_type", entity_id="Test_ref_entity", 
            view_id="Test_refimg_view",
            basepath=TestBasePath,
            tooltip1=f0['field_tooltip'],
            )
        formrow1 = """
            <div class="small-12 medium-6 columns" title="%(tooltip1)s">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                  <input type="text" size="64" name="entity_id"
                         placeholder="(entity id)"
                         value="%(entity_id)s"/>
                </div>
              </div>
            </div>
            """%field_vals(width=6)

        tgt_field_vals = default_fields(
            coll_id="testcoll", type_id="img_type", entity_id="Test_img_entity",
            view_id="Test_refimg_view",
            field_id="Test_refimg_field",
            basepath=TestBasePath,
            tooltip2=f1['field_tooltip'],
            )
        formrow2 = ("""
            <div class="small-12 medium-6 columns" title="%(tooltip2)s">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Image reference</span>
                </div>
                <div class="%(input_classes)s">
                """+
                render_select_options(
                    "%(field_id)s", 
                    "Image reference",
                    [FieldChoice("%(type_id)s/%(entity_id)s", label="Label %(entity_id)s")],
                    "%(type_id)s/%(entity_id)s"
                    )+
                """
                </div>
              </div>
            </div>
            """)%tgt_field_vals(width=6)
        # log.info(r.content)
        self.assertContains(response, formrow1,  html=True)
        self.assertContains(response, formrow2,  html=True)
        return
Exemplo n.º 12
0
 def test_get_new_user_form_rendering(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             "_user",
                             view_id="User_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     self.assertContains(r, "<title>Collection testcoll</title>")
     self.assertContains(r,
                         "<h3>'_user' data in collection 'testcoll'</h3>")
     field_vals = default_fields(coll_id="testcoll",
                                 type_id="_user",
                                 entity_id="00000001")
     formrow1 = """
         <div class="small-12 medium-6 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>User Id</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="entity_id" 
                            placeholder="(user id)" 
                            value="00000001" />
                 </div>
             </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>User name</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_name" 
                            placeholder="(user name)"
                            value="" />
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>Description</p>
                 </div>
                 <div class="%(input_classes)s">
                     <textarea cols="64" rows="6" name="User_description" 
                               class="small-rows-4 medium-rows-8"
                               placeholder="(user description)"
                               >
                     </textarea>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>URI</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_uri" 
                            placeholder="(User URI - e.g. mailto:[email protected])"
                            value=""/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow5 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>Permissions</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_permissions" 
                            placeholder="(user permissions; e.g. &#39;VIEW CREATE UPDATE DELETE&#39;)"
                            value=""/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow6 = ("""
         <div class="row">
             <div class="%(space_classes)s">
                 <div class="row">
                     <div class="small-12 columns">
                       &nbsp;
                     </div>
                 </div>
             </div>
             <div class="%(button_wide_classes)s">
                 <div class="row">
                     <div class="%(button_left_classes)s">
                         <input type="submit" name="save"          value="Save" />
                         <input type="submit" name="cancel"        value="Cancel" />
                     </div>
                 </div>
             </div>
         </div>
         """) % field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5, html=True)
     self.assertContains(r, formrow6, html=True)
     return
Exemplo n.º 13
0
 def test_get_form_rendering(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             layout.TYPE_TYPEID,
                             view_id="Type_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # log.info(r.content)   #@@
     field_vals = default_fields(
         coll_id="testcoll",
         type_id=layout.TYPE_TYPEID,
         entity_id="00000001",
         default_label="(New type initial values - label)",
         default_comment=context_view_field(r.context, 2, 0)['field_value'],
         default_label_esc="(New type initial values - label)",
         default_comment_esc=context_view_field(r.context, 2,
                                                0)['field_value'],
         tooltip1=context_view_field(r.context, 0, 0)['field_help'],
         tooltip2=context_view_field(r.context, 1, 0)['field_help'],
         tooltip3=context_view_field(r.context, 2, 0)['field_help'],
         tooltip4=context_view_field(r.context, 3, 0)['field_help'],
         button_save_tip="Save values and return to previous view.",
         button_view_tip="Save values and switch to entity view.",
         button_cancel_tip=
         "Discard unsaved changes and return to previous view.",
         button_view_list_tip=
         "Define initial view and list definitions for the current type.  "
         +
         "(View and list type information and URI are taken from the current type; "
         +
         "other fields are taken from the corresponding &#39;_initial_values&#39; record, "
         + "and may be extended or modified later.)")
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type Id</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="entity_id" 
                      placeholder="(type id)" value="00000001"/>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Label</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="Type_label" 
                      placeholder="(label)" 
                      value="%(default_label_esc)s" />
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Comment</span>
             </div>
             <div class="%(input_classes)s">
               <textarea cols="64" rows="6" name="Type_comment" 
                         class="small-rows-4 medium-rows-8"
                         placeholder="(type description)"
                         >
                   %(default_comment_esc)s
               </textarea>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" title="%(tooltip4)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type URI</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="Type_uri" 
                      placeholder="(Type URI)"
                      value=""/>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow5a = """
         <div class="%(space_classes)s">
           <div class="row">
             <div class="small-12 columns">
               &nbsp;
             </div>
           </div>
         </div>
         """ % field_vals(width=2)
     formrow5b = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_left_classes)s">
               <input type="submit" name="save"      value="Save"   title="%(button_save_tip)s"/>
               <input type="submit" name="view"      value="View"   title="%(button_view_tip)s"/>
               <input type="submit" name="cancel"    value="Cancel" title="%(button_cancel_tip)s"/>
             </div>
           </div>
         </div>
         """ % field_vals(width=4)
     formrow5c = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_r_med_up_classes)s">
               <input type="submit" name="Define_view_list" value="Define view+list"
                      title="%(button_view_list_tip)s" />
               <input type="submit" name="customize" value="Customize"
                      title="Open 'Customize' view for collection 'testcoll'." />
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     # log.info(r.content)   #@@
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5a, html=True)
     self.assertContains(r, formrow5b, html=True)
     self.assertContains(r, formrow5c, html=True)
     return
Exemplo n.º 14
0
 def test_get_collection_data_form_rendering(self):
     u = entitydata_edit_url("new",
                             "_annalist_site",
                             "_coll",
                             view_id="Collection_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="_annalist_site",
         type_id="_coll",
         entity_id="00000001",
         sotware_ver=annalist.__version_data__,
         tooltip1a=context_view_field(r.context, 0, 0)['field_help'],
         tooltip1b=context_view_field(r.context, 0, 1)['field_help'],
         tooltip2=context_view_field(r.context, 1, 0)['field_help'],
         tooltip3=context_view_field(r.context, 2, 0)['field_help'],
         tooltip4=context_view_field(r.context, 3, 0)['field_help'],
         tooltip5a=context_view_field(r.context, 4, 0)['field_help'],
         tooltip5b=context_view_field(r.context, 4, 1)['field_help'],
         tooltip6a=context_view_field(r.context, 5, 0)['field_help'],
         tooltip6b=context_view_field(r.context, 5, 1)['field_help'],
         tooltip7=context_view_field(r.context, 6, 0)['field_help'],
     )
     formrow1a = """
         <div class="small-12 medium-6 columns" title="%(tooltip1a)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Id</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="entity_id" 
                                placeholder="(entity id)" 
                                value="00000001" />
                 </div>
             </div>
         </div>
         """ % field_vals(width=6)
     formrow1b = """
         <div class="small-12 medium-6 columns" title="%(tooltip1b)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>S/W version</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Label</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="Entity_label" 
                            placeholder="(label)"
                            value="" />
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Comment</span>
                 </div>
                 <div class="%(input_classes)s">
                     <textarea cols="64" rows="6" name="Entity_comment" 
                               class="small-rows-4 medium-rows-8"
                               placeholder="(description)"
                               >
                     </textarea>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" title="%(tooltip4)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Parent</span>
                 </div>
                 <div class="%(input_classes)s">
                     <select name="Coll_parent">
                         <option value="" selected="selected">(site)</option>
                         <option value="_coll/_annalist_site">Annalist data notebook test site</option>
                         <option value="_coll/coll1">Collection coll1</option>
                         <option value="_coll/coll2">Collection coll2</option>
                         <option value="_coll/coll3">Collection coll3</option>
                         <option value="_coll/testcoll">Collection testcoll</option>
                     </select>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow5a = """
          <div class="small-12 medium-6 columns" title="%(tooltip5a)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Default list</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
        """ % field_vals(width=6)
     formrow5b = """
         <div class="small-12 medium-6 columns" title="%(tooltip5b)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Default view</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
         """ % field_vals(width=6)
     formrow6a = """
          <div class="small-12 medium-6 columns" title="%(tooltip6a)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Default view type</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
        """ % field_vals(width=6)
     formrow6b = """
         <div class="small-12 medium-6 columns" title="%(tooltip6b)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Default view entity</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
         """ % field_vals(width=6)
     formrow7 = """
         <div class="small-12 columns" title="%(tooltip7)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Collection metadata</span>
                 </div>
                 <div class="%(input_classes)s">
                     <textarea cols="64" rows="6" name="Coll_comment" 
                               class="small-rows-4 medium-rows-8" 
                               placeholder="(annal:meta_comment)"
                               >
                     </textarea>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow1a, html=True)
     self.assertContains(r, formrow1b, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5a, html=True)
     self.assertContains(r, formrow5b, html=True)
     self.assertContains(r, formrow6a, html=True)
     self.assertContains(r, formrow6b, html=True)
     self.assertContains(r, formrow7, html=True)
     return
 def test_RenderRepeatGroup(self):
     # Create view with repeat-field and repeat-group
     testview = self._create_testview()
     testrepeatfield = self._create_testrepeatfield(
         label_add="Add group", label_delete="Remove group")
     testrepeatgroup = self._create_testrepeatgroup()
     # Render view
     u = entitydata_edit_url("new",
                             "testcoll",
                             "testtype",
                             view_id="testview")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test rendered values
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], "testtype")
     self.assertEqual(r.context['entity_id'], "00000001")
     self.assertEqual(r.context['action'], "new")
     # Fields
     self.assertEqual(len(r.context['fields']), 2)
     # 1st field - Id
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0['field_id'], 'Entity_id')
     self.assertEqual(f0['field_name'], 'entity_id')
     self.assertEqual(f0['field_label'], 'Id')
     self.assertEqual(f0['field_value'], "00000001")
     # 2nd field - repeat group
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1['field_id'], "testrepeatfield")
     self.assertEqual(f1['field_name'], "testrepeatfield")
     self.assertEqual(f1['field_label'], "Test repeat field label")
     self.assertEqual(f1['field_render_type'], "Group_Seq_Row")
     self.assertEqual(f1['field_value_mode'], "Value_direct")
     self.assertEqual(f1['field_value_type'], "annal:Field_group")
     self.assertEqual(f1['field_group_ref'], "testrepeatgroup")
     self.assertEqual(f1['group_label'], "Test repeat field label")
     self.assertEqual(f1['group_add_label'], "Add group")
     self.assertEqual(f1['group_delete_label'], "Remove group")
     self.assertEqual(f1['field_property_uri'], "test:repeat_fields")
     self.assertEqual(len(f1['field_value']), 0)
     self.assertEqual(f1['field_value'], "")  #@@ Really?
     # Test rendered result
     field_vals = default_fields(
         coll_id="testcoll",
         type_id="testtype",
         entity_id="00000001",
         tooltip1=f0['field_help'],
     )
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Id</span>
             </div>
             <div class="%(input_classes)s">
                 <input type="text" size="64" name="entity_id" 
                        placeholder="(entity id)" value="00000001"/>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow2a = """
         <div class="%(group_label_classes)s">
           <span>Test repeat field label</span>
         </div>
         """ % field_vals(width=12)
     formrow2b = """
         <div class="%(group_row_head_classes)s">
           <div class="row">
             <div class="small-1 columns">
               &nbsp;
             </div>
             <div class="small-11 columns">
               <div class="edit-grouprow col-head row">
                 <div class="%(col_head_classes)s">
                   <span>Comment</span>
                 </div>
               </div>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow2c = """
         <div class="%(group_buttons_classes)s">
           <div class="row">
             <div class="small-1 columns">
               &nbsp;
             </div>
             <div class="small-11 columns">
               <input type="submit" name="testrepeatfield__remove" value="Remove group" />
               <input type="submit" name="testrepeatfield__add"    value="Add group" />
               <input type="submit" name="testrepeatfield__up"     value="Move &#x2b06;" />
               <input type="submit" name="testrepeatfield__down"   value="Move &#x2b07;" />
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2a, html=True)
     self.assertContains(r, formrow2b, html=True)
     self.assertContains(r, formrow2c, html=True)
     return
Exemplo n.º 16
0
 def test_RenderRepeatGroup(self):
     # Create view with repeat-field and repeat-group
     testview        = self._create_testview()
     testrepeatfield = self._create_testrepeatfield(
         label_add="Add group",
         label_delete="Remove group")
     testrepeatgroup = self._create_testrepeatgroup()
     # Render view
     u = entitydata_edit_url("new", "testcoll", "testtype", view_id="testview")
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test rendered values
     self.assertEqual(r.context['coll_id'],          "testcoll")
     self.assertEqual(r.context['type_id'],          "testtype")
     self.assertEqual(r.context['entity_id'],        "00000001")
     self.assertEqual(r.context['action'],           "new")
     # Fields
     self.assertEqual(len(r.context['fields']), 2)
     # 1st field - Id
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0['field_id'], 'Entity_id')
     self.assertEqual(f0['field_name'], 'entity_id')
     self.assertEqual(f0['field_label'], 'Id')
     self.assertEqual(f0['field_value'], "00000001")
     # 2nd field - repeat group
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1['field_id'],           "testrepeatfield")
     self.assertEqual(f1['field_name'],         "testrepeatfield")
     self.assertEqual(f1['field_label'],        "Test repeat field label")
     self.assertEqual(f1['field_render_type'],  "Group_Seq_Row")
     self.assertEqual(f1['field_value_mode'],   "Value_direct")
     self.assertEqual(f1['field_value_type'],  "annal:Field_group")
     self.assertEqual(f1['field_group_ref'],    "testrepeatgroup")
     self.assertEqual(f1['group_label'],        "Test repeat field label")
     self.assertEqual(f1['group_add_label'],    "Add group")
     self.assertEqual(f1['group_delete_label'], "Remove group")
     self.assertEqual(f1['field_property_uri'], "test:repeat_fields")
     self.assertEqual(len(f1['field_value']),   0)
     self.assertEqual(f1['field_value'],        "") #@@ Really?
     # Test rendered result
     field_vals = default_fields(
         coll_id="testcoll", type_id="testtype", entity_id="00000001",
         tooltip1=f0['field_help'],
         )
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Id</span>
             </div>
             <div class="%(input_classes)s">
                 <input type="text" size="64" name="entity_id" 
                        placeholder="(entity id)" value="00000001"/>
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow2a = """
         <div class="%(group_label_classes)s">
           <span>Test repeat field label</span>
         </div>
         """%field_vals(width=12)
     formrow2b = """
         <div class="%(group_row_head_classes)s">
           <div class="row">
             <div class="small-1 columns">
               &nbsp;
             </div>
             <div class="small-11 columns">
               <div class="edit-grouprow col-head row">
                 <div class="%(col_head_classes)s">
                   <span>Comment</span>
                 </div>
               </div>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow2c = """
         <div class="%(group_buttons_classes)s">
           <div class="row">
             <div class="small-1 columns">
               &nbsp;
             </div>
             <div class="small-11 columns">
               <input type="submit" name="testrepeatfield__remove" value="Remove group" />
               <input type="submit" name="testrepeatfield__add"    value="Add group" />
               <input type="submit" name="testrepeatfield__up"     value="Move &#x2b06;" />
               <input type="submit" name="testrepeatfield__down"   value="Move &#x2b07;" />
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow1,  html=True)
     self.assertContains(r, formrow2a, html=True)
     self.assertContains(r, formrow2b, html=True)
     self.assertContains(r, formrow2c, html=True)
     return
Exemplo n.º 17
0
 def test_get_form_rendering(self):
     u = entitydata_edit_url("new", "testcoll", "testtype")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     self.assertContains(r, "Collection testcoll")
     field_vals = default_fields(coll_id="testcoll",
                                 type_id="testtype",
                                 entity_id="00000001")
     formrow1 = """
           <!-- editable text field -->
           <div class="small-12 medium-6 columns">
             <div class="row">
               <div class="%(label_classes)s">
                 <p>
                   Id
                 </p>
               </div>
               <div class="%(input_classes)s">
                 <!-- cf http://stackoverflow.com/questions/1480588/input-size-vs-width -->
                 <input type="text" size="64" name="entity_id" 
                        placeholder="(entity id)" value="00000001">
               </div>
             </div>
           </div>
         """ % field_vals(width=6)
     formrow2 = ("""
           <!-- record type dropdown -->
           <div class="small-12 medium-6 columns">
             <div class="row">
               <div class="%(label_classes)s">
                 <p>
                   Type
                 </p>
               </div>
               <div class="%(input_classes)s">
               """ + render_select_options(
         "entity_type", "Type",
         get_site_types_sorted() + ["testtype"], "testtype") + """
               </div>
             </div>
           </div>
         """) % field_vals(width=6)
     formrow3 = """
           <!-- editable text field -->
           <div class="small-12 columns">
             <div class="row">
               <div class="%(label_classes)s">
                 <p>
                   Label
                 </p>
               </div>
               <div class="%(input_classes)s">
                 <!-- cf http://stackoverflow.com/questions/1480588/input-size-vs-width -->
                 <input type="text" size="64" name="Entity_label" 
                        placeholder="(label)" 
                        value="%(default_label_esc)s">
               </div>
             </div>
           </div>
         """ % field_vals(width=12)
     formrow4 = """
           <!-- editable textarea field -->
           <div class="small-12 columns">
             <div class="row">
               <div class="%(label_classes)s">
                 <p>
                   Comment
                 </p>
               </div>
               <div class="%(input_classes)s">
                 <textarea cols="64" rows="6" name="Entity_comment" 
                           class="small-rows-4 medium-rows-8"
                           placeholder="(description)">
                     %(default_comment_esc)s
                 </textarea>
               </div>
             </div>
           </div>
         """ % field_vals(width=12)
     # log.info("******\n"+r.content)
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     return
Exemplo n.º 18
0
 def test_get_form_rendering(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             "_list",
                             view_id="List_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     self.assertContains(r,
                         "<h3>'_list' data in collection 'testcoll'</h3>")
     field_vals = default_fields(coll_id="testcoll",
                                 type_id="_list",
                                 entity_id="00000001")
     formrow1a = """
         <div class="small-12 medium-6 columns">
           <div class="row">
             <div class="%(label_classes)s">
               <p>Id</p>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="entity_id" 
                      placeholder="(list id)" 
                      value="00000001"/>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow1b = ("""
         <div class="small-12 medium-6 columns">
           <div class="row">
             <div class="%(label_classes)s">
               <p>List display type</p>
             </div>
             <div class="%(input_classes)s">
             """ + render_choice_options(
         "List_type", get_site_list_types_sorted(), "List") + """
             </div>
           </div>
         </div>
         """) % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns">
           <div class="row">
             <div class="%(label_classes)s">
               <p>Label</p>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="List_label" 
                      placeholder="(list label)" 
                      value="%(default_label_esc)s"/>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns">
           <div class="row">
             <div class="%(label_classes)s">
               <p>Help</p>
             </div>
             <div class="%(input_classes)s">
               <textarea cols="64" rows="6" name="List_comment" 
                       class="small-rows-4 medium-rows-8"
                       placeholder="(description of list view)">
                 %(default_comment_esc)s
               </textarea>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = ("""
         <div class="small-6 columns">
           <div class="row">
             <div class="%(label_classes)s">
               <p>Record type</p>
             </div>
             <div class="%(input_classes)s">
             """ + render_select_options(
         "List_default_type", "Record type",
         get_site_types_sorted() + ["testtype"], "Default_type") + """
             </div>
           </div>
         </div>
         """) % field_vals(width=6)
     formrow5 = ("""
         <div class="small-6 columns">
           <div class="row">
             <div class="%(label_classes)s">
               <p>View</p>
             </div>
             <div class="%(input_classes)s">
             """ + render_select_options("List_default_view", "View",
                                         sorted(get_site_views()),
                                         "Default_view") + """
             </div>
           </div>
         </div>
         """) % field_vals(width=6)
     selector_text = ("(entity selector; " + "e.g. &#39;ALL&#39;, " +
                      "&#39;<type> in [@type]&#39;, " +
                      "&#39;[<field>]==<value>&#39;, " + "etc.)")
     formrow6 = """
         <div class="small-12 columns">
           <div class="row">
             <div class="%(label_classes)s">
               <p>Selector</p>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="List_entity_selector" 
                      placeholder="%(selector_text)s"
                      value="ALL"/>
             </div>
           </div>
         </div>
         """ % dict(field_vals(width=12), selector_text=selector_text)
     # log.info(r.content)     #@@
     self.assertContains(r, formrow1a, html=True)
     self.assertContains(r, formrow1b, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5, html=True)
     self.assertContains(r, formrow6, html=True)
     return
Exemplo n.º 19
0
 def test_get_view_form_rendering(self):
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testtype",
                             entity_id="entity1",
                             view_id="Type_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # log.info(r.content)     #@@
     entity_label = """Entity testcoll/testtype/entity1"""
     view_label = """Type definition"""
     permalink = """<a href="./" class="permalink">&#x1F517;</a>"""
     entity_title = "%s - %s - Collection testcoll" % (entity_label,
                                                       view_label)
     self.assertContains(r, "<title>%s</title>" % (entity_title, ))
     self.assertContains(r,
                         '<h2 class="page-heading">%s %s</h2>' %
                         (view_label, permalink),
                         html=True)
     cont_uri = "?continuation_url=%s" % u + "%3Fcontinuation_url=/xyzzy/"
     field_vals = default_fields(
         coll_id="testcoll",
         type_id="testtype",
         entity_id="00000001",
         entity_base="/testsite/c/testcoll/d/testtype/entity1",
         entity_url="/testsite/c/testcoll/d/testtype/entity1/" + cont_uri,
         default_view_url="/testsite/c/testcoll/d/_view/Default_view/" +
         cont_uri,
         default_list_url="/testsite/c/testcoll/d/_list/Default_list/" +
         cont_uri,
         tooltip1="",  # 'title="%s"'%r.context['fields'][0]['field_help'],
         tooltip2="",  # 'title="%s"'%r.context['fields'][1]['field_help'],
         tooltip3="",  # 'title="%s"'%r.context['fields'][2]['field_help'],
         tooltip4="",  # 'title="%s"'%r.context['fields'][3]['field_help'],
         tooltip5="",  # 'title="%s"'%r.context['fields'][4]['field_help'],
         tooltip6="",  # 'title="%s"'%r.context['fields'][5]['field_help'],
         tooltip7="",  # 'title="%s"'%r.context['fields'][6]['field_help'],
         button_subtype_tip="Create a subtype of the current type.  " +
         "(View and list type identifiers are copied from the current type; "
         +
         "the URI of the current type is inserted as a supertype URI of the new type; "
         +
         "other fields are taken from the corresponding '_initial_values' record, "
         + "and may be extended or modified later.)" + "",
     )
     formrow1 = """
         <div class="small-12 medium-6 columns" %(tooltip1)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type Id</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(entity_url)s">entity1</a>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" %(tooltip2)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Label</span>
             </div>
             <div class="%(input_classes)s">
               <span>Entity testcoll/testtype/entity1</span>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" %(tooltip3)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Comment</span>
             </div>
             <div class="%(input_classes)s">
               <span class="markdown">
                 <p>Entity coll testcoll, type testtype, entity entity1</p>
               </span>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" %(tooltip4)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type URI</span>
             </div>
             <div class="%(input_classes)s">
               <span>&nbsp;</span>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow5 = """
         <div class="small-12 columns" %(tooltip5)s>
           <div class="grouprow row">
             <div class="%(group_label_classes)s">
               <span>Supertype URIs</span>
             </div>
             <div class="%(group_placeholder_classes)s">
               <span>(None specified)</span>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow6 = """
         <div class="small-12 medium-6 columns" %(tooltip6)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Default view</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(default_view_url)s">Default record view</a>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow7 = """
         <div class="small-12 medium-6 columns" %(tooltip7)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Default list</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(default_list_url)s">List entities</a>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow8a = """
         <div class="%(space_classes)s">
           <div class="row">
             <div class="small-12 columns">
               &nbsp;
             </div>
           </div>
         </div>
         """ % field_vals(width=2)
     formrow8b = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_left_classes)s">
               <input type="submit" name="edit"  value="Edit"
                      title="Edit entity data." />
               <input type="submit" name="copy"  value="Copy"
                      title="Copy, then edit entity data as new entity." />
               <input type="submit" name="close" value="Close"
                      title="Return to previous page." />
             </div>
           </div>
         </div>
         """ % field_vals(width=4)
     formrow8c = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_r_med_up_classes)s">
               <!-- <input type="submit" name="open_view"    value="View description" /> -->
               <input type="submit" name="Define_subtype" value="Define subtype"
                      title="%(button_subtype_tip)s" />
               <input type="submit" name="default_view" value="Set default view"
                      title="Select this display as the default view for collection 'testcoll'." />
               <input type="submit" name="customize"    value="Customize"
                      title="Open 'Customize' view for collection 'testcoll'." />
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow9a = ("""
         <div class="row view-value-row">
           <div class="%(label_classes)s">
             <span>Choose view</span>
           </div>
           <div class="%(input_classes)s">
             <div class="row">
               <div class="small-9 columns">
               """ + render_choice_options("view_choice", self.view_options,
                                           "_view/Type_view") + """
               </div>
               <div class="small-3 columns">
                 <input type="submit" name="use_view"      value="Show view" />
               </div>
             </div>
           </div>
         </div>
         """) % field_vals(width=6)
     formrow9b = ("""
         <div class="row view-value-row">
           <div class="link-bar small-12 columns">
             <a href="%(entity_base)s/entity_data.ttl" title="Retrieve underlying data as Turtle">
               Turtle
             </a>
             <a href="%(entity_base)s/entity_data.jsonld" title="Retrieve underlying data as JSON-LD">
               JSON-LD
             </a>
             <a href="%(entity_base)s/entity_data.jsonld?type=application/json" title="Display underlying JSON data">
               <img src="/static/images/get_the_data_88x31.png" alt="get_the_data">
             </a>
           </div>
         </div>
         """) % field_vals(width=6)
     formrow10 = """
         <div class="%(button_right_classes)s">
           <div class="row">
             <div class="small-12 columns">
               <input type="submit" name="new_type"      value="New type" />
               <input type="submit" name="new_view"      value="New view" />
               <input type="submit" name="new_field"     value="New field type" />
               <input type="submit" name="new_group"     value="New field group" />
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     # log.info(r.content)     #@@
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5, html=True)
     self.assertContains(r, formrow6, html=True)
     self.assertContains(r, formrow7, html=True)
     self.assertContains(r, formrow8a, html=True)
     self.assertContains(r, formrow8b, html=True)
     self.assertContains(r, formrow8c, html=True)
     self.assertContains(r, formrow9a, html=True)
     self.assertContains(r, formrow9b, html=True)
     # New buttons hidden (for now)
     # self.assertContains(r, formrow10, html=True)
     return
Exemplo n.º 20
0
 def test_get_form_rendering_view_bibentry(self):
     u = entitydata_edit_url("edit",
                             "testcoll",
                             layout.VIEW_TYPEID,
                             entity_id="BibEntry_view",
                             view_id="View_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="testcoll",
         type_id=layout.VIEW_TYPEID,
         entity_id="BibEntry_view",
         tooltip1=context_view_field(r.context, 0, 0)['field_tooltip'],
         tooltip2=context_view_field(r.context, 1, 0)['field_tooltip'],
         tooltip3=context_view_field(r.context, 2, 0)['field_tooltip'],
         tooltip5=context_view_field(r.context, 4, 0)['field_tooltip'],
         tooltip6=context_view_field(
             r.context, 5, 0)._field_description['group_field_descs'][0]
         ['field_tooltip_test'])
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>View Id</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="entity_id" 
                      placeholder="(view id)" value="%(entity_id)s"/>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Label</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="View_label"
                      placeholder="(view label)" 
                      value="Bibliographic metadata"/>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Help</span>
             </div>
             <div class="%(input_classes)s">
               <textarea cols="64" rows="6" name="View_comment" 
                         class="small-rows-4 medium-rows-8"
                         placeholder="(description of record view)">
                   Bibliography entries each contain some subset of standard data entries.
               </textarea>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow5 = """
         <div class="small-12 medium-6 columns" title="%(tooltip5)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Editable view?</span>
             </div>
             <div class="%(input_classes)s">
               <input type="checkbox" name="View_edit_view" value="Yes" checked="checked" />
                <span class="value-placeholder">(edit view from edit entity form)</span>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow6 = ("""
         <div class="small-12 medium-4 columns" title="%(tooltip6)s">
           <div class="row show-for-small-only">
             <div class="view-label small-12 columns">
               <span>Field ref</span>
             </div>
           </div>
           <div class="row view-value-col">
             <div class="view-value small-12 columns">
             """ + render_select_options("View_fields__0__View_field_sel",
                                         "Field ref",
                                         no_selection("(field reference)") +
                                         get_site_bibentry_fields_sorted(),
                                         layout.FIELD_TYPEID + "/Entity_id",
                                         placeholder="(field reference)") +
                 """
             </div>
           </div>
         </div>
         """) % field_vals(width=4)
     formrow7 = """
         <div class="small-1 columns checkbox-in-edit-padding">
           <input type="checkbox" class="select-box right" 
                  name="View_fields__select_fields"
                  value="0" />
         </div>        
         """
     # log.info("*** BibEntry_view content: "+r.content)
     # log.info("*** %r"%(r.context['fields'][5]._field_description['field_help']))
     # log.info("*** %r"%(r.context['fields'][5]._field_description['group_field_descs'][0]['field_tooltip_test']))
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow5, html=True)
     self.assertContains(r, formrow6, html=True)
     self.assertContains(r, formrow7, html=True)
     return
Exemplo n.º 21
0
 def test_get_form_rendering(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             layout.VOCAB_TYPEID,
                             view_id="Vocab_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="testcoll",
         type_id=layout.VOCAB_TYPEID,
         entity_id="00000001",
         default_label="",
         default_comment=context_view_field(r.context, 2, 0)['field_value'],
         default_label_esc="",
         default_comment_esc=context_view_field(r.context, 2,
                                                0)['field_value'],
         tooltip1=context_view_field(r.context, 0, 0)['field_tooltip'],
         tooltip2=context_view_field(r.context, 1, 0)['field_tooltip'],
         tooltip3=context_view_field(r.context, 2, 0)['field_tooltip'],
         tooltip4=context_view_field(r.context, 3, 0)['field_tooltip'],
         button_save_tip="Save values and return to previous view.",
         button_view_tip="Save values and switch to entity view.",
         button_cancel_tip=
         "Discard unsaved changes and return to previous view.",
     )
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Prefix</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="entity_id" 
                      placeholder="(vocabulary id)" value="00000001"/>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Label</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="Entity_label" 
                      placeholder="(label)" 
                      value="%(default_label_esc)s" />
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Comment</span>
             </div>
             <div class="%(input_classes)s">
               <textarea cols="64" rows="6" name="Entity_comment" 
                         class="small-rows-4 medium-rows-8"
                         placeholder="(description)"
                         >
                   %(default_comment_esc)s
               </textarea>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" title="%(tooltip4)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Vocabulary URI</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="Vocab_uri" 
                      placeholder="(Vocabulary namespace URI)"
                      value=""/>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     # log.info(r.content)   #@@
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     return
Exemplo n.º 22
0
    def test_get_view_rendering(self):
        # Test view rendering
        # This checks for namespace prefix expansion in URL links.
        # Add test namespace
        vocab_id = "test_vocab"
        vocab_curie = "annal:test_vocab"
        annal_uri = ANNAL.mk_uri("")
        vocab_entity = RecordVocab.create(
            self.testcoll, vocab_id,
            recordvocab_create_values(vocab_id=vocab_id,
                                      vocab_uri=vocab_curie))
        # View new namespace entity
        u = entitydata_edit_url("view",
                                "testcoll",
                                layout.VOCAB_TYPEID,
                                entity_id=vocab_id,
                                view_id="Vocab_view")
        r = self.client.get(u)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.reason_phrase, "OK")
        default_comment = context_view_field(r.context, 2, 0)['field_value']
        field_vals = default_fields(
            coll_id="testcoll",
            type_id=layout.VOCAB_TYPEID,
            entity_id=vocab_id,
            entity_view_url=u,
            rendered_label=context_view_field(r.context, 1, 0)['field_value'],
            rendered_comment=markdown.markdown(
                apply_substitutions(r.context, default_comment)),
            vocab_id=vocab_id,
            vocab_curie=vocab_curie,
            vocab_uri=annal_uri + vocab_id,
            urie=annal_uri + vocab_id,
        )
        formrow1 = """
            <div class="small-12 medium-6 columns">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Prefix</span>
                </div>
                <div class="%(input_classes)s">
                  <a href="%(default_entity_url)s?continuation_url=%(entity_view_url)s">%(vocab_id)s</a>
                </div>
              </div>
            </div>
            """ % field_vals(width=6)

        #           <div class="small-12 medium-6 columns">
        #   <div class="row view-value-row">
        #     <div class="view-label small-12 medium-4 columns">
        #       <span>Prefix</span>
        #     </div>
        #     <div class="view-value small-12 medium-8 columns">
        # <a href="/testsite/c/testcoll/d/_vocab/test_vocab/
        # ?continuation_url=/testsite/c/testcoll/v/Vocab_view/_vocab/test_vocab/!view">test_vocab</a>
        #     </div>
        #   </div>

        formrow2 = """
            <div class="small-12 columns">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Label</span>
                </div>
                <div class="%(input_classes)s">
                  <span>%(rendered_label)s</span>
                </div>
              </div>
            </div>
            """ % field_vals(width=12)
        formrow3 = """
            <div class="small-12 columns">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Comment</span>
                </div>
                <div class="%(input_classes)s">
                  <span class="markdown">
                    %(rendered_comment)s
                  </span>
                </div>
              </div>
            </div>
            """ % field_vals(width=12)
        formrow4 = """
            <div class="small-12 columns">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Vocabulary URI</span>
                </div>
                <div class="%(input_classes)s">
                  <a href="%(vocab_uri)s" target="_blank">%(vocab_curie)s</a>
                </div>
              </div>
            </div>
            """ % field_vals(width=12)
        # log.info(r.content)   #@@
        self.assertContains(r, formrow1, html=True)
        self.assertContains(r, formrow2, html=True)
        self.assertContains(r, formrow3, html=True)
        self.assertContains(r, formrow4, html=True)
        return
Exemplo n.º 23
0
    def test_Ref_Multifield_view(self):
        self._create_image_multifield_ref_and_view()
        # Render view of multifield imageb reference
        u = entitydata_edit_url(
            "view", "testcoll", "ref_type", "Test_ref_entity", 
            view_id="Test_refimg_view"
            )
        response = self.client.get(u)
        self.assertEqual(response.status_code,   200)
        self.assertEqual(response.reason_phrase, "OK")

        # Check render context
        expect_context = self._create_refimg_view_context(
            entity_id="Test_ref_entity",
            entity_ref="Test_img_entity",
            action="view",
            continuation_url=""
            )
        actual_context = context_bind_fields(response.context)
        self.assertEqual(len(response.context['fields']), 1)
        self.assertDictionaryMatch(actual_context, expect_context)

        # Test rendered result
        field_vals = default_fields(
            coll_id="testcoll", type_id="ref_type", entity_id="Test_ref_entity", 
            view_id="Test_refimg_view",
            basepath=TestBasePath,
            cont_uri_param="",
            )
        cont_uri_param = (
            "?continuation_url=%(basepath)s/c/%(coll_id)s/v/%(view_id)s/%(type_id)s/%(entity_id)s/!view"%
            field_vals()
            )

        field_vals = default_fields(
            coll_id="testcoll", type_id="ref_type", entity_id="Test_ref_entity", 
            view_id="Test_refimg_view",
            basepath=TestBasePath,
            cont_uri_param=cont_uri_param,
            )
        formrow1 = """
            <div class="small-12 medium-6 columns">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                  <a href="%(basepath)s/c/%(coll_id)s/d/%(type_id)s/%(entity_id)s/%(cont_uri_param)s">%(entity_id)s</a>
                </div>
              </div>
            </div>
            """%field_vals(width=6)

        tgt_field_vals = default_fields(
            coll_id="testcoll", type_id="img_type", entity_id="Test_img_entity", 
            view_id="Test_refimg_view",
            field_id="image_field",
            basepath=TestBasePath,
            ref_image="%s/c/testcoll/d/img_type/Test_img_entity/image_field.jpeg"%(TestBasePath,),
            cont_uri_param=cont_uri_param,
            tooltip2a="",
            tooltip2b="",
            )
        formrow2a = """
            <div class="small-12 medium-6 columns" %(tooltip2a)s>
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>View comment field</span>
                </div>
                <div class="%(input_classes)s">
                  <span class="markdown"><p>Description of image</p></span>
                </div>
              </div>
            </div>
            """%tgt_field_vals(width=6)
        formrow2b = """
            <div class="small-12 medium-6 columns" %(tooltip2b)s>
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>View image field</span>
                </div>
                <div class="%(input_classes)s">
                  <a href="%(ref_image)s" target="_blank">
                    <img src="%(ref_image)s"
                         alt="Image at '%(ref_image)s'" />
                  </a>
                </div>
              </div>
            </div>
            """%tgt_field_vals(width=6)
        # log.info(r.content)
        self.assertContains(response, formrow1,  html=True)
        self.assertContains(response, formrow2a, html=True)
        self.assertContains(response, formrow2b, html=True)
        return
Exemplo n.º 24
0
 def test_get_new_user_form_rendering(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             layout.USER_TYPEID,
                             view_id="User_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="testcoll",
         type_id=layout.USER_TYPEID,
         entity_id="00000001",
         tooltip1=context_view_field(r.context, 0, 0)['field_help'],
         tooltip2=context_view_field(r.context, 1, 0)['field_help'],
         tooltip3=context_view_field(r.context, 2, 0)['field_help'],
         tooltip4=context_view_field(r.context, 3, 0)['field_help'],
         tooltip5=context_view_field(r.context, 4, 0)['field_help'])
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>User Id</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="entity_id" 
                                placeholder="(user id)" 
                                value="00000001" />
                 </div>
             </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>User name</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_name" 
                            placeholder="(user name)"
                            value="" />
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Description</span>
                 </div>
                 <div class="%(input_classes)s">
                     <textarea cols="64" rows="6" name="User_description" 
                               class="small-rows-4 medium-rows-8"
                               placeholder="(user description)"
                               >
                     </textarea>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" title="%(tooltip4)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>User URI</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_uri" 
                            placeholder="(User URI - e.g. mailto:[email protected])"
                            value=""/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow5 = """
         <div class="small-12 columns" title="%(tooltip5)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Permissions</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_permissions" 
                            placeholder="(user permissions; e.g. &#39;VIEW CREATE UPDATE DELETE CONFIG&#39;)"
                            value=""/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5, html=True)
     return
Exemplo n.º 25
0
    def test_Repeat_Ref_Multifield_view(self):
        self._create_image_multifield_repeat_ref_and_view()

        # Render view of multifield reference
        u = entitydata_edit_url("view", "testcoll", "ref_type", "Test_rpt_entity", view_id="Test_rptimg_view")
        response = self.client.get(u)
        self.assertEqual(response.status_code,   200)
        self.assertEqual(response.reason_phrase, "OK")

        # Check render context
        expect_context = self._create_rptref_view_context(
            entity_id="Test_rpt_entity",
            action="view",
            continuation_url=""
            )
        actual_context = context_bind_fields(response.context)
        self.assertEqual(len(response.context['fields']), 2)
        self.assertDictionaryMatch(actual_context, expect_context)

        # Test rendered result
        field_vals    = default_fields(
            coll_id="testcoll", type_id="ref_type", entity_id="Test_rpt_entity", 
            view_id="Test_rptimg_view",
            basepath=TestBasePath,
            cont_uri_param=""
            )
        cont_uri_param = (
            "?continuation_url=%(basepath)s/c/%(coll_id)s/v/%(view_id)s/%(type_id)s/%(entity_id)s/!view"%
            field_vals()
            )

        field_vals    = default_fields(
            coll_id="testcoll", type_id="ref_type", entity_id="Test_rpt_entity", 
            view_id="Test_rptimg_view",
            basepath=TestBasePath,
            cont_uri_param=cont_uri_param,
            )
        formrow1 = """
            <div class="small-12 medium-6 columns">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                  <a href="%(basepath)s/c/%(coll_id)s/d/%(type_id)s/%(entity_id)s/%(cont_uri_param)s">%(entity_id)s</a>
                </div>
              </div>
            </div>
            """%field_vals(width=6)
        formrow2a = """
            <div class="group-label small-12 medium-2 columns">
              <span>Repeat image reference</span>
            </div>
            """
        # Note two group wrappers here: one for repeat and one for multifield ref...
        formrow2b = """
            <div class="small-12 medium-10 columns hide-for-small-only">
              <div class="row">
                <div class="small-12 columns">
                  <div class="view-grouprow col-head row">
                    <div class="view-label col-head small-12 medium-6 columns">
                      <div class="view-grouprow col-head row">
                        <div class="%(col_head_classes)s">
                          <span>View comment field</span>
                        </div>
                        <div class="%(col_head_classes)s">
                          <span>View image field</span>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """%field_vals(width=6)

        tgt_field_vals = default_fields(
            coll_id="testcoll", type_id="img_type", entity_id="Test_img_entity", 
            view_id="Test_rptimg_view",
            field_id="image_field",
            basepath=TestBasePath,
            ref_image="%s/c/testcoll/d/img_type/Test_img_entity/image_field.jpeg"%(TestBasePath,),
            cont_uri_param=cont_uri_param,
            )
        formrow3a = """
            <div class="small-12 medium-2 columns">
              &nbsp;
            </div>
            """%tgt_field_vals(width=6)
        formrow3b = ("""
            <div class="small-12 medium-10 columns">
              <div class="row select-row">
                <div class="small-12 columns">
                  <div class="view-grouprow row">
                    <div class="small-12 medium-6 columns">
                      <div class="row show-for-small-only">
                        <div class="view-label small-12 columns">
                          <span>Image reference</span>
                        </div>
                      </div>
                      <div class="row view-value-col">
                        <div class="view-value small-12 columns">
                          <div class="view-grouprow row">
                            <div class="%(col_item_classes)s">
                              <div class="row show-for-small-only">
                                <div class="view-label small-12 columns">
                                  <span>View comment field</span>
                                </div>
                              </div>
                              <div class="row view-value-col">
                                <div class="view-value small-12 columns">
                                  <span class="markdown"><p>Description of image</p></span>
                                </div>
                              </div>
                            </div>
                            <div class="%(col_item_classes)s">
                              <div class="row show-for-small-only">
                                <div class="view-label small-12 columns">
                                  <span>View image field</span>
                                </div>
                              </div>
                              <div class="row view-value-col">
                                <div class="view-value small-12 columns">
                                  <a href="%(ref_image)s" target="_blank">
                                    <img src="%(ref_image)s" alt="Image at '%(ref_image)s'" />
                                  </a>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """)%tgt_field_vals(width=6)
        # log.info(r.content)
        self.assertContains(response, formrow1,  html=True)
        self.assertContains(response, formrow2a, html=True)
        self.assertContains(response, formrow2b, html=True)
        self.assertContains(response, formrow3a, html=True)
        self.assertContains(response, formrow3b, html=True)
        return
Exemplo n.º 26
0
    def test_Repeat_Ref_Multifield_view(self):
        self._create_image_multifield_repeat_ref_and_view()

        # Render view of multifield reference
        u = entitydata_edit_url("view",
                                "testcoll",
                                "ref_type",
                                "Test_rpt_entity",
                                view_id="Test_rptimg_view")
        r = self.client.get(u)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.reason_phrase, "OK")

        # Check render context
        self.assertEqual(r.context['coll_id'], "testcoll")
        self.assertEqual(r.context['type_id'], "ref_type")
        self.assertEqual(r.context['entity_id'], "Test_rpt_entity")
        self.assertEqual(r.context['action'], "view")
        # Fields
        self.assertEqual(len(r.context['fields']), 2)
        # 1st field - Id
        f0 = context_view_field(r.context, 0, 0)
        self.assertEqual(f0['field_id'], "Entity_id")
        self.assertEqual(f0['field_name'], "entity_id")
        self.assertEqual(f0['field_label'], "Id")
        self.assertEqual(f0['field_value'], "Test_rpt_entity")
        # 2nd field - multifield group
        f1 = context_view_field(r.context, 1, 0)
        self.assertEqual(f1['field_id'], "Test_rptref_field")
        self.assertEqual(f1['field_name'], "Test_rptref_field")
        self.assertEqual(f1['field_label'], "Repeat image reference")
        self.assertEqual(f1['field_render_type'], "Group_Seq_Row")
        self.assertEqual(f1['field_value_mode'], "Value_direct")
        self.assertEqual(f1['field_value_type'], "annal:Field_group")
        self.assertEqual(f1['field_group_ref'], "Test_rptref_group")
        self.assertEqual(f1['group_label'], "Repeat image reference")
        self.assertEqual(f1['field_property_uri'], "test:rpt_image")
        self.assertEqual(f1['field_value'][0],
                         {'test:ref_image': 'Test_img_entity'})

        # Test rendered result
        field_vals = default_fields(coll_id="testcoll",
                                    type_id="ref_type",
                                    entity_id="Test_rpt_entity",
                                    view_id="Test_rptimg_view",
                                    basepath=TestBasePath,
                                    cont_uri_param="")
        cont_uri_param = (
            "?continuation_url=%(basepath)s/c/%(coll_id)s/v/%(view_id)s/%(type_id)s/%(entity_id)s/!view"
            % field_vals())

        field_vals = default_fields(
            coll_id="testcoll",
            type_id="ref_type",
            entity_id="Test_rpt_entity",
            view_id="Test_rptimg_view",
            basepath=TestBasePath,
            cont_uri_param=cont_uri_param,
        )
        formrow1 = """
            <div class="small-12 medium-6 columns">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                  <a href="%(basepath)s/c/%(coll_id)s/d/%(type_id)s/%(entity_id)s/%(cont_uri_param)s">%(entity_id)s</a>
                </div>
              </div>
            </div>
            """ % field_vals(width=6)
        formrow2a = """
            <div class="group-label small-12 medium-2 columns">
              <span>Repeat image reference</span>
            </div>
            """
        # Note two grou wrappers here: one for repeat and one for multifield ref...
        formrow2b = """
            <div class="small-12 medium-10 columns hide-for-small-only">
              <div class="row">
                <div class="small-12 columns">
                  <div class="view-grouprow col-head row">
                    <div class="view-label col-head small-12 medium-6 columns">
                      <div class="view-grouprow col-head row">
                        <div class="%(col_head_classes)s">
                          <span>View comment field</span>
                        </div>
                        <div class="%(col_head_classes)s">
                          <span>View image field</span>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """ % field_vals(width=6)

        tgt_field_vals = default_fields(
            coll_id="testcoll",
            type_id="img_type",
            entity_id="Test_img_entity",
            view_id="Test_rptimg_view",
            field_id="image_field",
            basepath=TestBasePath,
            ref_image=
            "%s/c/testcoll/d/img_type/Test_img_entity/image_field.jpeg" %
            (TestBasePath, ),
            cont_uri_param=cont_uri_param,
        )
        formrow3a = """
            <div class="small-12 medium-2 columns">
              &nbsp;
            </div>
            """ % tgt_field_vals(width=6)
        formrow3b = ("""
            <div class="small-12 medium-10 columns">
              <div class="row select-row">
                <div class="small-12 columns">
                  <div class="view-grouprow row">
                    <div class="small-12 medium-6 columns">
                      <div class="row show-for-small-only">
                        <div class="view-label small-12 columns">
                          <span>Image reference</span>
                        </div>
                      </div>
                      <div class="row view-value-col">
                        <div class="view-value small-12 columns">
                          <div class="view-grouprow row">
                            <div class="%(col_item_classes)s">
                              <div class="row show-for-small-only">
                                <div class="view-label small-12 columns">
                                  <span>View comment field</span>
                                </div>
                              </div>
                              <div class="row view-value-col">
                                <div class="view-value small-12 columns">
                                  <span class="markdown"><p>Description of image</p></span>
                                </div>
                              </div>
                            </div>
                            <div class="%(col_item_classes)s">
                              <div class="row show-for-small-only">
                                <div class="view-label small-12 columns">
                                  <span>View image field</span>
                                </div>
                              </div>
                              <div class="row view-value-col">
                                <div class="view-value small-12 columns">
                                  <a href="%(ref_image)s" target="_blank">
                                    <img src="%(ref_image)s" alt="Image at '%(ref_image)s'" />
                                  </a>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """) % tgt_field_vals(width=6)
        # log.info(r.content)
        self.assertContains(r, formrow1, html=True)
        self.assertContains(r, formrow2a, html=True)
        self.assertContains(r, formrow2b, html=True)
        self.assertContains(r, formrow3a, html=True)
        self.assertContains(r, formrow3b, html=True)
        return
Exemplo n.º 27
0
 def test_get_form_rendering(self):
     u = entitydata_edit_url("new", "testcoll", "testtype")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     self.assertContains(r, "Collection testcoll")
     field_vals = default_fields(
         coll_id="testcoll",
         type_id="testtype",
         entity_id="00000001",
         tooltip1=context_view_field(r.context, 0, 0)['field_help'],
         tooltip2=context_view_field(r.context, 0, 1)['field_help'],
         tooltip3=context_view_field(r.context, 1, 0)['field_help'],
         tooltip4=context_view_field(r.context, 2, 0)['field_help'],
     )
     formrow1 = """
           <div class="small-12 medium-6 columns" title="%(tooltip1)s">
             <div class="row view-value-row">
               <div class="%(label_classes)s">
                   <span>Id</span>
               </div>
               <div class="%(input_classes)s">
                 <!-- cf http://stackoverflow.com/questions/1480588/input-size-vs-width -->
                 <input type="text" size="64" name="entity_id" 
                        placeholder="(entity id)" value="00000001">
               </div>
             </div>
           </div>
         """ % field_vals(width=6)
     formrow2 = ("""
           <div class="small-12 medium-6 columns" title="%(tooltip2)s">
             <div class="row view-value-row">
               <div class="%(label_classes)s">
                   <span>Type</span>
               </div>
               <div class="%(input_classes)s">
               """ + render_choice_options("entity_type", self.type_ids,
                                           "_type/testtype") + """
               </div>
             </div>
           </div>
         """) % field_vals(width=6)
     formrow3 = """
           <!-- editable text field -->
           <div class="small-12 columns" title="%(tooltip3)s">
             <div class="row view-value-row">
               <div class="%(label_classes)s">
                   <span>Label</span>
               </div>
               <div class="%(input_classes)s">
                 <input type="text" size="64" name="Entity_label" 
                        placeholder="(label)" 
                        value="%(default_label_esc)s">
               </div>
             </div>
           </div>
         """ % field_vals(width=12)
     formrow4 = """
           <div class="small-12 columns" title="%(tooltip4)s">
             <div class="row view-value-row">
               <div class="%(label_classes)s">
                   <span>Comment</span>
               </div>
               <div class="%(input_classes)s">
                 <textarea cols="64" rows="6" name="Entity_comment" 
                           class="small-rows-4 medium-rows-8"
                           placeholder="(description)">
                     %(default_comment_esc)s
                 </textarea>
               </div>
             </div>
           </div>
         """ % field_vals(width=12)
     # log.info("******\n"+r.content)
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     return
 def test_get_view_form_rendering(self):
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testtype",
                             entity_id="entity1",
                             view_id="Type_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # log.info(r.content)     #@@
     entity_label = "Entity testcoll/testtype/entity1"
     view_label = "Type definition"
     entity_title = "%s - %s - Collection testcoll" % (entity_label,
                                                       view_label)
     self.assertContains(r, "<title>%s</title>" % (entity_title, ))
     self.assertContains(r,
                         '<h2 class="page-heading">%s</h2>' %
                         (view_label, ),
                         html=True)
     cont_uri = "?continuation_url=%s" % u + "%3Fcontinuation_url=/xyzzy/"
     field_vals = default_fields(
         coll_id="testcoll",
         type_id="testtype",
         entity_id="00000001",
         entity_url="/testsite/c/testcoll/d/testtype/entity1/" + cont_uri,
         default_view_url="/testsite/c/testcoll/d/_view/Default_view/" +
         cont_uri,
         default_list_url="/testsite/c/testcoll/d/_list/Default_list/" +
         cont_uri,
         tooltip1="",  # 'title="%s"'%r.context['fields'][0]['field_help'],
         tooltip2="",  # 'title="%s"'%r.context['fields'][1]['field_help'],
         tooltip3="",  # 'title="%s"'%r.context['fields'][2]['field_help'],
         tooltip4="",  # 'title="%s"'%r.context['fields'][3]['field_help'],
         tooltip5="",  # 'title="%s"'%r.context['fields'][4]['field_help'],
         tooltip6="",  # 'title="%s"'%r.context['fields'][5]['field_help'],
         tooltip7="",  # 'title="%s"'%r.context['fields'][6]['field_help'],
     )
     formrow1 = """
         <div class="small-12 medium-6 columns" %(tooltip1)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type Id</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(entity_url)s">entity1</a>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" %(tooltip2)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Label</span>
             </div>
             <div class="%(input_classes)s">
               <span>Entity testcoll/testtype/entity1</span>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" %(tooltip3)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Comment</span>
             </div>
             <div class="%(input_classes)s">
               <span class="markdown">
                 <p>Entity coll testcoll, type testtype, entity entity1</p>
               </span>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" %(tooltip4)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type URI</span>
             </div>
             <div class="%(input_classes)s">
               <span>&nbsp;</span>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow5 = """
         <div class="small-12 columns" %(tooltip5)s>
           <div class="row">
             <div class="%(group_label_classes)s">
               <span>Supertype URIs</span>
             </div>
             <div class="%(group_placeholder_classes)s">
               <span>(None)</span>
             </div>
           </div>
         </div>
         """ % field_vals(width=12)
     formrow6 = """
         <div class="small-12 medium-6 columns" %(tooltip6)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Default view</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(default_view_url)s">Default record view</a>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow7 = """
         <div class="small-12 medium-6 columns" %(tooltip7)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Default list</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(default_list_url)s">List entities</a>
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow8a = """
         <div class="%(space_classes)s">
           <div class="row">
             <div class="small-12 columns">
               &nbsp;
             </div>
           </div>
         </div>
         """ % field_vals(width=2)
     formrow8b = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_left_classes)s">
               <input type="submit" name="edit"  value="Edit"
                      title="Edit entity data." />
               <input type="submit" name="copy"  value="Copy"
                      title="Copy, then edit entity data as new entity." />
               <input type="submit" name="close" value="Close"
                      title="Return to previous page." />
             </div>
           </div>
         </div>
         """ % field_vals(width=4)
     formrow8c = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_r_med_up_classes)s">
               <!-- <input type="submit" name="open_view"    value="View description" /> -->
               <input type="submit" name="default_view" value="Set default view"
                      title="Select this display as the default view for collection 'testcoll'." />
               <input type="submit" name="customize"    value="Customize"
                      title="Open 'Customize' view for collection 'testcoll'." />
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     formrow9 = ("""
         <div class="row view-value-row">
           <div class="%(label_classes)s">
             <span>Choose view</span>
           </div>
           <div class="%(input_classes)s">
             <div class="row">
               <div class="small-9 columns">
               """ + render_choice_options("view_choice", self.view_options,
                                           "_view/Type_view") + """
               </div>
               <div class="small-3 columns">
                 <input type="submit" name="use_view"      value="Show view" />
               </div>
             </div>
           </div>
         </div>
         """) % field_vals(width=6)
     formrow10 = """
         <div class="%(button_right_classes)s">
           <div class="row">
             <div class="small-12 columns">
               <input type="submit" name="new_type"      value="New type" />
               <input type="submit" name="new_view"      value="New view" />
               <input type="submit" name="new_field"     value="New field type" />
               <input type="submit" name="new_group"     value="New field group" />
             </div>
           </div>
         </div>
         """ % field_vals(width=6)
     # log.info(r.content)     #@@
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5, html=True)
     self.assertContains(r, formrow6, html=True)
     self.assertContains(r, formrow7, html=True)
     self.assertContains(r, formrow8a, html=True)
     self.assertContains(r, formrow8b, html=True)
     self.assertContains(r, formrow8c, html=True)
     self.assertContains(r, formrow9, html=True)
     # New buttons hidden (for now)
     # self.assertContains(r, formrow10, html=True)
     return
Exemplo n.º 29
0
    def test_Ref_Multifield_edit(self):
        self._create_image_multifield_ref_and_view()

        # Render view of multifield reference
        u = entitydata_edit_url("edit",
                                "testcoll",
                                "ref_type",
                                "Test_ref_entity",
                                view_id="Test_refimg_view")
        r = self.client.get(u)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.reason_phrase, "OK")

        # Check render context
        self.assertEqual(r.context['coll_id'], "testcoll")
        self.assertEqual(r.context['type_id'], "ref_type")
        self.assertEqual(r.context['entity_id'], "Test_ref_entity")
        self.assertEqual(r.context['action'], "edit")
        # Fields
        self.assertEqual(len(r.context['fields']), 1)
        # 1st field - Id
        f0 = context_view_field(r.context, 0, 0)
        self.assertEqual(f0['field_id'], "Entity_id")
        self.assertEqual(f0['field_name'], "entity_id")
        self.assertEqual(f0['field_label'], "Id")
        self.assertEqual(f0['field_value'], "Test_ref_entity")
        # 2nd field - multifield group
        f1 = context_view_field(r.context, 0, 1)
        self.assertEqual(f1['field_id'], "Test_refimg_field")
        self.assertEqual(f1['field_name'], "Test_refimg_field")
        self.assertEqual(f1['field_label'], "Image reference")
        self.assertEqual(f1['field_render_type'], "RefMultifield")
        self.assertEqual(f1['field_value_mode'], "Value_entity")
        self.assertEqual(f1['field_value_type'], "annal:Field_group")
        self.assertEqual(f1['field_group_ref'], "Test_refimg_group")
        self.assertEqual(f1['group_label'], "Image reference")
        self.assertEqual(f1['field_property_uri'], "test:ref_image")
        self.assertEqual(f1['field_value'], "Test_img_entity")

        # Test rendered result
        field_vals = default_fields(
            coll_id="testcoll",
            type_id="ref_type",
            entity_id="Test_ref_entity",
            view_id="Test_refimg_view",
            basepath=TestBasePath,
            tooltip1=f0['field_help'],
        )
        formrow1 = """
            <div class="small-12 medium-6 columns" title="%(tooltip1)s">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                  <input type="text" size="64" name="entity_id"
                         placeholder="(entity id)"
                         value="%(entity_id)s"/>
                </div>
              </div>
            </div>
            """ % field_vals(width=6)

        tgt_field_vals = default_fields(
            coll_id="testcoll",
            type_id="img_type",
            entity_id="Test_img_entity",
            view_id="Test_refimg_view",
            field_id="Test_refimg_field",
            basepath=TestBasePath,
            tooltip2=f1['field_help'],
        )
        formrow2 = ("""
            <div class="small-12 medium-6 columns" title="%(tooltip2)s">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Image reference</span>
                </div>
                <div class="%(input_classes)s">
                """ +
                    render_select_options("%(field_id)s", "Image reference", [
                        FieldChoice("%(type_id)s/%(entity_id)s",
                                    label="Label %(entity_id)s")
                    ], "%(type_id)s/%(entity_id)s") + """
                </div>
              </div>
            </div>
            """) % tgt_field_vals(width=6)
        # log.info(r.content)
        self.assertContains(r, formrow1, html=True)
        self.assertContains(r, formrow2, html=True)
        return
Exemplo n.º 30
0
    def test_RenderRepeatGroup(self):
        # Create view with repeat-field and repeat-group
        testview        = self._create_testview()
        testrepeatfield = self._create_testrepeatfield(
            label_add="Add group",
            label_delete="Remove group")

        # Render view
        u = entitydata_edit_url("new", "testcoll", "testtype", view_id="testview")
        response = self.client.get(u)
        self.assertEqual(response.status_code,   200)
        self.assertEqual(response.reason_phrase, "OK")

        # Check render context
        expect_context = self._create_repeat_group_view_context(
            entity_id="00000001",
            action="new",
            label_add="Add group",
            label_delete="Remove group",
            field_value="",
            continuation_url=""
            )
        actual_context = context_bind_fields(response.context)
        self.assertEqual(len(response.context['fields']), 2)
        self.assertDictionaryMatch(actual_context, expect_context)

        # Test rendered result
        f0 = context_view_field(response.context, 0, 0)
        f1 = context_view_field(response.context, 1, 0)
        field_vals = default_fields(
            coll_id="testcoll", type_id="testtype", entity_id="00000001",
            tooltip1=f0['field_tooltip'],
            )
        formrow1 = """
            <div class="small-12 medium-6 columns" title="%(tooltip1)s">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                    <input type="text" size="64" name="entity_id" 
                           placeholder="(entity id)" value="00000001"/>
                </div>
              </div>
            </div>
            """%field_vals(width=6)
        formrow2a = """
            <div class="%(group_label_classes)s">
              <span>Test repeat field label</span>
            </div>
            """%field_vals(width=12)
        formrow2b = """
            <div class="%(group_row_head_classes)s">
              <div class="row">
                <div class="small-1 columns">
                  &nbsp;
                </div>
                <div class="small-11 columns">
                  <div class="edit-grouprow col-head row">
                    <div class="%(col_head_classes)s">
                      <span>Comment</span>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """%field_vals(width=12)
        formrow2c = """
            <div class="%(group_buttons_classes)s">
              <div class="row">
                <div class="small-1 columns">
                  &nbsp;
                </div>
                <div class="small-11 columns">
                  <input type="submit" name="Test_repeat_field__remove" value="Remove group" />
                  <input type="submit" name="Test_repeat_field__add"    value="Add group" />
                  <input type="submit" name="Test_repeat_field__up"     value="Move &#x2b06;" />
                  <input type="submit" name="Test_repeat_field__down"   value="Move &#x2b07;" />
                </div>
              </div>
            </div>
            """%field_vals(width=12)
        # log.info(r.content)
        self.assertContains(response, formrow1,  html=True)
        self.assertContains(response, formrow2a, html=True)
        self.assertContains(response, formrow2b, html=True)
        self.assertContains(response, formrow2c, html=True)
        return
Exemplo n.º 31
0
    def test_Repeat_Ref_Multifield_edit(self):
        self._create_image_multifield_repeat_ref_and_view()

        # Render view of multifield reference
        u = entitydata_edit_url("edit",
                                "testcoll",
                                "ref_type",
                                "Test_rpt_entity",
                                view_id="Test_rptimg_view")
        r = self.client.get(u)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.reason_phrase, "OK")

        # Check render context
        self.assertEqual(r.context['coll_id'], "testcoll")
        self.assertEqual(r.context['type_id'], "ref_type")
        self.assertEqual(r.context['entity_id'], "Test_rpt_entity")
        self.assertEqual(r.context['action'], "edit")
        # Fields
        self.assertEqual(len(r.context['fields']), 2)
        # 1st field - Id
        f0 = context_view_field(r.context, 0, 0)
        self.assertEqual(f0['field_id'], "Entity_id")
        self.assertEqual(f0['field_name'], "entity_id")
        self.assertEqual(f0['field_label'], "Id")
        self.assertEqual(f0['field_value'], "Test_rpt_entity")
        # 2nd field - multifield group
        f1 = context_view_field(r.context, 1, 0)
        self.assertEqual(f1['field_id'], "Test_rptref_field")
        self.assertEqual(f1['field_name'], "Test_rptref_field")
        self.assertEqual(f1['field_label'], "Repeat image reference")
        self.assertEqual(f1['field_render_type'], "Group_Seq_Row")
        self.assertEqual(f1['field_value_mode'], "Value_direct")
        self.assertEqual(f1['field_value_type'], "annal:Field_group")
        self.assertEqual(f1['field_group_ref'], "Test_rptref_group")
        self.assertEqual(f1['group_label'], "Repeat image reference")
        self.assertEqual(f1['field_property_uri'], "test:rpt_image")
        self.assertEqual(f1['field_value'][0],
                         {'test:ref_image': 'Test_img_entity'})

        # Test rendered result
        field_vals = default_fields(
            coll_id="testcoll",
            type_id="ref_type",
            entity_id="Test_rpt_entity",
            view_id="Test_rptimg_view",
            basepath=TestBasePath,
            tooltip1=f0['field_help'],
        )
        formrow1 = """
            <div class="small-12 medium-6 columns" title="%(tooltip1)s">
              <div class="row view-value-row">
                <div class="%(label_classes)s">
                  <span>Id</span>
                </div>
                <div class="%(input_classes)s">
                    <input type="text" size="64" name="entity_id"
                           placeholder="(entity id)"
                           value="%(entity_id)s"/>
                </div>
              </div>
            </div>
            """ % field_vals(width=6)
        formrow2a = """
            <div class="group-label small-12 medium-2 columns">
              <span>Repeat image reference</span>
            </div>
            """
        formrow2b = """
            <div class="small-12 medium-10 columns hide-for-small-only">
              <div class="row">
                <div class="small-1 columns">
                  &nbsp;
                </div>
                <div class="small-11 columns">
                  <div class="edit-grouprow col-head row">
                    <div class="%(col_head_classes)s">
                      <span>Image reference</span>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """ % field_vals(width=6)

        tgt_field_vals = default_fields(
            coll_id="testcoll",
            type_id="img_type",
            entity_id="Test_img_entity",
            view_id="Test_rptimg_view",
            repeat_id="Test_rptref_field",
            field_id="Test_refimg_field",
            tooltip3b=f1._field_description['group_field_descs'][0]
            ['field_help'])
        formrow3a = """
            <div class="small-12 medium-2 columns hide-for-small-only">
              &nbsp;
            </div>
            """ % tgt_field_vals(width=6)
        formrow3b = ("""
            <div class="small-12 medium-10 columns">
              <div class="tbody row select-row">
                <div class="small-1 columns checkbox-in-edit-padding">
                  <input type="checkbox" class="select-box right"
                         name="%(repeat_id)s__select_fields"
                         value="0" />
                </div>
                <div class="small-11 columns">
                  <div class="edit-grouprow row">
                    <div class="%(col_item_classes)s" title="%(tooltip3b)s">
                      <div class="row show-for-small-only">
                        <div class="view-label small-12 columns">
                          <span>Image reference</span>
                        </div>
                      </div>
                      <div class="row view-value-col">
                        <div class="view-value small-12 columns">
                        """ + render_select_options(
            "%(repeat_id)s__0__%(field_id)s", "Image reference", [
                FieldChoice("%(type_id)s/%(entity_id)s",
                            label="Label %(entity_id)s")
            ], "%(type_id)s/%(entity_id)s") + """
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            """) % tgt_field_vals(width=6)
        # log.info(r.content)
        self.assertContains(r, formrow1, html=True)
        self.assertContains(r, formrow2a, html=True)
        self.assertContains(r, formrow2b, html=True)
        self.assertContains(r, formrow3a, html=True)
        self.assertContains(r, formrow3b, html=True)
        return
Exemplo n.º 32
0
 def test_get_collection_data_form_rendering(self):
     u = entitydata_edit_url("new", "_annalist_site", "_coll", view_id="Collection_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="_annalist_site", 
         type_id="_coll", 
         entity_id="00000001", 
         sotware_ver=annalist.__version_data__,
         tooltip1a=context_view_field(r.context, 0, 0)['field_help'],
         tooltip1b=context_view_field(r.context, 0, 1)['field_help'],
         tooltip2 =context_view_field(r.context, 1, 0)['field_help'],
         tooltip3 =context_view_field(r.context, 2, 0)['field_help'],
         tooltip4 =context_view_field(r.context, 3, 0)['field_help'],
         tooltip5a=context_view_field(r.context, 4, 0)['field_help'],
         tooltip5b=context_view_field(r.context, 4, 1)['field_help'],
         tooltip6a=context_view_field(r.context, 5, 0)['field_help'],
         tooltip6b=context_view_field(r.context, 5, 1)['field_help'],
         tooltip7 =context_view_field(r.context, 6, 0)['field_help'],
         )
     formrow1a = """
         <div class="small-12 medium-6 columns" title="%(tooltip1a)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Id</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="entity_id" 
                                placeholder="(entity id)" 
                                value="00000001" />
                 </div>
             </div>
         </div>
         """%field_vals(width=6)
     formrow1b = """
         <div class="small-12 medium-6 columns" title="%(tooltip1b)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>S/W version</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
         """%field_vals(width=6)            
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Label</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="Entity_label" 
                            placeholder="(label)"
                            value="" />
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Comment</span>
                 </div>
                 <div class="%(input_classes)s">
                     <textarea cols="64" rows="6" name="Entity_comment" 
                               class="small-rows-4 medium-rows-8"
                               placeholder="(description)"
                               >
                     </textarea>
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" title="%(tooltip4)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Parent</span>
                 </div>
                 <div class="%(input_classes)s">
                     <select name="Coll_parent">
                         <option value="" selected="selected">(site)</option>
                         <option value="_coll/_annalist_site">Annalist data notebook test site</option>
                         <option value="_coll/coll1">Collection coll1</option>
                         <option value="_coll/coll2">Collection coll2</option>
                         <option value="_coll/coll3">Collection coll3</option>
                         <option value="_coll/testcoll">Collection testcoll</option>
                     </select>
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     formrow5a = """
          <div class="small-12 medium-6 columns" title="%(tooltip5a)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Default list</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
        """%field_vals(width=6)
     formrow5b = """
         <div class="small-12 medium-6 columns" title="%(tooltip5b)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Default view</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
         """%field_vals(width=6)            
     formrow6a = """
          <div class="small-12 medium-6 columns" title="%(tooltip6a)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Default view type</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
        """%field_vals(width=6)
     formrow6b = """
         <div class="small-12 medium-6 columns" title="%(tooltip6b)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Default view entity</span>
                 </div>
                 <div class="%(input_classes)s">
                     <span>&nbsp;</span>
                 </div>
             </div>
         </div>
         """%field_vals(width=6)            
     formrow7 = """
         <div class="small-12 columns" title="%(tooltip7)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Collection metadata</span>
                 </div>
                 <div class="%(input_classes)s">
                     <textarea cols="64" rows="6" name="Coll_comment" 
                               class="small-rows-4 medium-rows-8" 
                               placeholder="(annal:meta_comment)"
                               >
                     </textarea>
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow1a, html=True)
     self.assertContains(r, formrow1b, html=True)
     self.assertContains(r, formrow2,  html=True)
     self.assertContains(r, formrow3,  html=True)
     self.assertContains(r, formrow4,  html=True)
     self.assertContains(r, formrow5a, html=True)
     self.assertContains(r, formrow5b, html=True)
     self.assertContains(r, formrow6a, html=True)
     self.assertContains(r, formrow6b, html=True)
     self.assertContains(r, formrow7,  html=True)
     return
Exemplo n.º 33
0
 def test_get_new_user_form_rendering(self):
     u = entitydata_edit_url("new", "testcoll", layout.USER_TYPEID, view_id="User_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     field_vals = default_fields(
         coll_id="testcoll", type_id=layout.USER_TYPEID, entity_id="00000001",
         tooltip1=context_view_field(r.context, 0, 0)['field_help'],
         tooltip2=context_view_field(r.context, 1, 0)['field_help'],
         tooltip3=context_view_field(r.context, 2, 0)['field_help'],
         tooltip4=context_view_field(r.context, 3, 0)['field_help'],
         tooltip5=context_view_field(r.context, 4, 0)['field_help']
         )
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>User Id</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="entity_id" 
                                placeholder="(user id)" 
                                value="00000001" />
                 </div>
             </div>
         </div>
         """%field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>User name</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_name" 
                            placeholder="(user name)"
                            value="" />
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Description</span>
                 </div>
                 <div class="%(input_classes)s">
                     <textarea cols="64" rows="6" name="User_description" 
                               class="small-rows-4 medium-rows-8"
                               placeholder="(user description)"
                               >
                     </textarea>
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" title="%(tooltip4)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>User URI</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_uri" 
                            placeholder="(User URI - e.g. mailto:[email protected])"
                            value=""/>
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     formrow5 = """
         <div class="small-12 columns" title="%(tooltip5)s">
             <div class="row view-value-row">
                 <div class="%(label_classes)s">
                     <span>Permissions</span>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="User_permissions" 
                            placeholder="(user permissions; e.g. &#39;VIEW CREATE UPDATE DELETE CONFIG&#39;)"
                            value=""/>
                 </div>
             </div>
         </div>
         """%field_vals(width=12)
     # log.info(r.content)
     self.assertContains(r, formrow1,  html=True)
     self.assertContains(r, formrow2,  html=True)
     self.assertContains(r, formrow3,  html=True)
     self.assertContains(r, formrow4,  html=True)
     self.assertContains(r, formrow5,  html=True)
     return
Exemplo n.º 34
0
 def test_get_form_rendering(self):
     u = entitydata_edit_url("new", "testcoll", layout.TYPE_TYPEID, view_id="Type_view")
     r = self.client.get(u+"?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # log.info(r.content)   #@@
     field_vals = default_fields(
         coll_id="testcoll", type_id=layout.TYPE_TYPEID, entity_id="00000001",
         default_label="(New type initial values - label)",
         default_comment=context_view_field(r.context, 2, 0)['field_value'],
         default_label_esc="(New type initial values - label)",
         default_comment_esc=context_view_field(r.context, 2, 0)['field_value'],
         tooltip1=context_view_field(r.context, 0, 0)['field_help'],
         tooltip2=context_view_field(r.context, 1, 0)['field_help'],
         tooltip3=context_view_field(r.context, 2, 0)['field_help'],
         tooltip4=context_view_field(r.context, 3, 0)['field_help'],
         button_save_tip="Save values and return to previous view.",
         button_view_tip="Save values and switch to entity view.",
         button_cancel_tip="Discard unsaved changes and return to previous view.",
         button_view_list_tip=
             "Define initial view and list definitions for the current type.  "+
             "(View and list type information and URI are taken from the current type; "+
             "other fields are taken from the corresponding &#39;_initial_values&#39; record, "+
             "and may be extended or modified later.)"
         )
     formrow1 = """
         <div class="small-12 medium-6 columns" title="%(tooltip1)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type Id</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="entity_id" 
                      placeholder="(type id)" value="00000001"/>
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" title="%(tooltip2)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Label</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="Type_label" 
                      placeholder="(label)" 
                      value="%(default_label_esc)s" />
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" title="%(tooltip3)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Comment</span>
             </div>
             <div class="%(input_classes)s">
               <textarea cols="64" rows="6" name="Type_comment" 
                         class="small-rows-4 medium-rows-8"
                         placeholder="(type description)"
                         >
                   %(default_comment_esc)s
               </textarea>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" title="%(tooltip4)s">
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type URI</span>
             </div>
             <div class="%(input_classes)s">
               <input type="text" size="64" name="Type_uri" 
                      placeholder="(Type URI)"
                      value=""/>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow5a = """
         <div class="%(space_classes)s">
           <div class="row">
             <div class="small-12 columns">
               &nbsp;
             </div>
           </div>
         </div>
         """%field_vals(width=2)
     formrow5b = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_left_classes)s">
               <input type="submit" name="save"      value="Save"   title="%(button_save_tip)s"/>
               <input type="submit" name="view"      value="View"   title="%(button_view_tip)s"/>
               <input type="submit" name="cancel"    value="Cancel" title="%(button_cancel_tip)s"/>
             </div>
           </div>
         </div>
         """%field_vals(width=4)
     formrow5c = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_r_med_up_classes)s">
               <input type="submit" name="Define_view_list" value="Define view+list"
                      title="%(button_view_list_tip)s" />
               <input type="submit" name="customize" value="Customize"
                      title="Open 'Customize' view for collection 'testcoll'." />
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     # log.info(r.content)   #@@
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5a, html=True)
     self.assertContains(r, formrow5b, html=True)
     self.assertContains(r, formrow5c, html=True)
     return
Exemplo n.º 35
0
 def test_get_form_rendering(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             "_type",
                             view_id="Type_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # log.info(r.content)
     self.assertContains(r, "<title>Collection testcoll</title>")
     self.assertContains(r,
                         "<h3>'_type' data in collection 'testcoll'</h3>")
     field_vals = default_fields(coll_id="testcoll",
                                 type_id="_type",
                                 entity_id="00000001")
     formrow1 = """
         <div class="small-12 medium-6 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>Id</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="entity_id" 
                            placeholder="(type id)" value="00000001"/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>Label</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="Type_label" 
                            placeholder="(label)" 
                            value="%(default_label_esc)s" />
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>Comment</p>
                 </div>
                 <div class="%(input_classes)s">
                     <textarea cols="64" rows="6" name="Type_comment" 
                               class="small-rows-4 medium-rows-8"
                               placeholder="(type description)"
                               >
                         %(default_comment_esc)s
                     </textarea>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns">
             <div class="row">
                 <div class="%(label_classes)s">
                     <p>URI</p>
                 </div>
                 <div class="%(input_classes)s">
                     <input type="text" size="64" name="Type_uri" 
                            placeholder="(URI)"
                            value=""/>
                 </div>
             </div>
         </div>
         """ % field_vals(width=12)
     formrow5 = ("""
         <div class="row">
             <div class="%(space_classes)s">
                 <div class="row">
                     <div class="small-12 columns">
                       &nbsp;
                     </div>
                 </div>
             </div>
             <div class="%(button_wide_classes)s">
                 <div class="row">
                     <div class="%(button_left_classes)s">
                         <input type="submit" name="save"          value="Save" />
                         <input type="submit" name="cancel"        value="Cancel" />
                     </div>
                 </div>
             </div>
         </div>
         """) % field_vals(width=12)
     self.assertContains(r, formrow1, html=True)
     self.assertContains(r, formrow2, html=True)
     self.assertContains(r, formrow3, html=True)
     self.assertContains(r, formrow4, html=True)
     self.assertContains(r, formrow5, html=True)
     return
Exemplo n.º 36
0
 def test_get_view_form_rendering(self):
     u = entitydata_edit_url("view", "testcoll", "testtype", entity_id="entity1", view_id="Type_view")
     r = self.client.get(u+"?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # log.info(r.content)     #@@
     entity_label = "Entity testcoll/testtype/entity1"
     view_label   = "Type definition"
     entity_title = "%s - %s - Collection testcoll"%(entity_label, view_label)
     self.assertContains(r, "<title>%s</title>"%(entity_title,))
     self.assertContains(r, '<h2 class="page-heading">%s</h2>'%(view_label,), html=True)
     cont_uri = "?continuation_url=%s"%u + "%3Fcontinuation_url=/xyzzy/"
     field_vals = default_fields(
         coll_id="testcoll", type_id="testtype", entity_id="00000001",
         entity_url       = "/testsite/c/testcoll/d/testtype/entity1/" + cont_uri,
         default_view_url = "/testsite/c/testcoll/d/_view/Default_view/" + cont_uri,
         default_list_url = "/testsite/c/testcoll/d/_list/Default_list/" + cont_uri,
         tooltip1="", # 'title="%s"'%r.context['fields'][0]['field_help'],
         tooltip2="", # 'title="%s"'%r.context['fields'][1]['field_help'],
         tooltip3="", # 'title="%s"'%r.context['fields'][2]['field_help'],
         tooltip4="", # 'title="%s"'%r.context['fields'][3]['field_help'],
         tooltip5="", # 'title="%s"'%r.context['fields'][4]['field_help'],
         tooltip6="", # 'title="%s"'%r.context['fields'][5]['field_help'],
         tooltip7="", # 'title="%s"'%r.context['fields'][6]['field_help'],
         )
     formrow1 = """
         <div class="small-12 medium-6 columns" %(tooltip1)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type Id</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(entity_url)s">entity1</a>
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow2 = """
         <div class="small-12 columns" %(tooltip2)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Label</span>
             </div>
             <div class="%(input_classes)s">
               <span>Entity testcoll/testtype/entity1</span>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow3 = """
         <div class="small-12 columns" %(tooltip3)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Comment</span>
             </div>
             <div class="%(input_classes)s">
               <span class="markdown">
                 <p>Entity coll testcoll, type testtype, entity entity1</p>
               </span>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow4 = """
         <div class="small-12 columns" %(tooltip4)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Type URI</span>
             </div>
             <div class="%(input_classes)s">
               <span>&nbsp;</span>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow5 = """
         <div class="small-12 columns" %(tooltip5)s>
           <div class="row">
             <div class="%(group_label_classes)s">
               <span>Supertype URIs</span>
             </div>
             <div class="%(group_placeholder_classes)s">
               <span>(None)</span>
             </div>
           </div>
         </div>
         """%field_vals(width=12)
     formrow6 = """
         <div class="small-12 medium-6 columns" %(tooltip6)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Default view</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(default_view_url)s">Default record view</a>
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow7 = """
         <div class="small-12 medium-6 columns" %(tooltip7)s>
           <div class="row view-value-row">
             <div class="%(label_classes)s">
               <span>Default list</span>
             </div>
             <div class="%(input_classes)s">
               <a href="%(default_list_url)s">List entities</a>
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow8a = """
         <div class="%(space_classes)s">
           <div class="row">
             <div class="small-12 columns">
               &nbsp;
             </div>
           </div>
         </div>
         """%field_vals(width=2)
     formrow8b = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_left_classes)s">
               <input type="submit" name="edit"  value="Edit"
                      title="Edit entity data." />
               <input type="submit" name="copy"  value="Copy"
                      title="Copy, then edit entity data as new entity." />
               <input type="submit" name="close" value="Close"
                      title="Return to previous page." />
             </div>
           </div>
         </div>
         """%field_vals(width=4)
     formrow8c = """
         <div class="%(button_wide_classes)s">
           <div class="row">
             <div class="%(button_r_med_up_classes)s">
               <!-- <input type="submit" name="open_view"    value="View description" /> -->
               <input type="submit" name="default_view" value="Set default view"
                      title="Select this display as the default view for collection 'testcoll'." />
               <input type="submit" name="customize"    value="Customize"
                      title="Open 'Customize' view for collection 'testcoll'." />
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     formrow9 = ("""
         <div class="row view-value-row">
           <div class="%(label_classes)s">
             <span>Choose view</span>
           </div>
           <div class="%(input_classes)s">
             <div class="row">
               <div class="small-9 columns">
               """+
                 render_choice_options(
                   "view_choice",
                   self.view_options,
                   "_view/Type_view")+
               """
               </div>
               <div class="small-3 columns">
                 <input type="submit" name="use_view"      value="Show view" />
               </div>
             </div>
           </div>
         </div>
         """)%field_vals(width=6)
     formrow10 = """
         <div class="%(button_right_classes)s">
           <div class="row">
             <div class="small-12 columns">
               <input type="submit" name="new_type"      value="New type" />
               <input type="submit" name="new_view"      value="New view" />
               <input type="submit" name="new_field"     value="New field type" />
               <input type="submit" name="new_group"     value="New field group" />
             </div>
           </div>
         </div>
         """%field_vals(width=6)
     # log.info(r.content)     #@@
     self.assertContains(r, formrow1,  html=True)
     self.assertContains(r, formrow2,  html=True)
     self.assertContains(r, formrow3,  html=True)
     self.assertContains(r, formrow4,  html=True)
     self.assertContains(r, formrow5,  html=True)
     self.assertContains(r, formrow6,  html=True)
     self.assertContains(r, formrow7,  html=True)
     self.assertContains(r, formrow8a, html=True)
     self.assertContains(r, formrow8b, html=True)
     self.assertContains(r, formrow8c, html=True)
     self.assertContains(r, formrow9,  html=True)
     # New buttons hidden (for now)
     # self.assertContains(r, formrow10, html=True)
     return