예제 #1
0
 def test_get_mamy2many_from(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     sp = my.Userspec.objects.create(project=pr, naam="testspec")
     aw = my.Userwijz.objects.create(project=pr, nummer='testwijz', gereed=False)
     gt = my.Gebrtaak.objects.create(project=pr, naam="testtaak")  #, spec=sp)
     gt.rfc.add(aw)
     fp = my.Funcproc.objects.create(project=pr, naam="testproc", spec=sp)
     fp.rfc.add(aw)
     testobj = funcs.GetRelations(aw, 'userwijz')
     result = testobj.get_many2many_from()
     assert result[0] == ['gebrtaak', 'funcproc', 'entiteit']
     assert result[1][0]['text'] == 'Raakt gebruikerstaak'
     assert result[1][0]['btn'] == funcs.BTNTXT.format(pr.id, 'userwijz', aw.id, 'rel',
                                                      'gebrtaak', funcs.ADD_TEXT)
     assert result[1][0]['links'] == [funcs.RELTXT.format(pr.id, 'gebrtaak', gt.id,
                                                       gt.naam + ': ') + ' ' +
                                      funcs.BTNTXT.format(pr.id, 'gebrtaak', gt.id,
                                                          'unrel/naar/userwijz', aw.id,
                                                          funcs.REMOVE_TEXT)]
     assert result[1][1]['text'] == 'Raakt functioneel proces'
     assert result[1][1]['btn'] == funcs.BTNTXT.format(pr.id, 'userwijz', aw.id, 'rel',
                                                      'funcproc', funcs.ADD_TEXT)
     assert result[1][1]['links'] == [funcs.RELTXT.format(pr.id, 'funcproc', fp.id,
                                                       fp.naam + ': ') + ' ' +
                                      funcs.BTNTXT.format(pr.id, 'funcproc', fp.id,
                                                          'unrel/naar/userwijz', aw.id,
                                                          funcs.REMOVE_TEXT)]
     assert result[1][2]['text'] == 'Raakt entiteit'
     assert result[1][2]['btn'] == funcs.BTNTXT.format(pr.id, 'userwijz', aw.id, 'rel',
                                                      'entiteit', funcs.ADD_TEXT)
     assert result[1][2]['links'] == []
예제 #2
0
 def test_get_foreignkeys_from_1(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     sp = my.Userspec.objects.create(project=pr, naam="testspec")
     gt = my.Gebrtaak.objects.create(project=pr, naam="testtaak", spec=sp)
     fp = my.Funcproc.objects.create(project=pr, naam="testproc", spec=sp)
     testobj = funcs.GetRelations(sp, 'userspec')
     result = testobj.get_foreignkeys_from()
     assert result[0] == ['gebrtaak', 'funcproc']
     assert result[1][0]['text'] == 'Betrokken gebruikerstaak'
     assert result[1][0]['btn'] == funcs.BTNTXT.format(pr.id, 'userspec', sp.id, 'rel',
                                                       'gebrtaak', funcs.ADD_TEXT)
     assert result[1][0]['links'] == [funcs.RELTXT.format(pr.id, 'gebrtaak', gt.id,
                                                          gt.naam + ': ') + ' ' +
                                      funcs.BTNTXT.format(pr.id, 'gebrtaak', gt.id,
                                                          'unrel/naar/userspec', sp.id,
                                                          funcs.REMOVE_TEXT)]
     assert result[1][1]['text'] == 'Betrokken functioneel proces'
     assert result[1][1]['btn'] == funcs.BTNTXT.format(pr.id, 'userspec', sp.id, 'rel',
                                                       'funcproc', funcs.ADD_TEXT)
     assert result[1][1]['links'] == [funcs.RELTXT.format(pr.id, 'funcproc', fp.id,
                                                          fp.naam + ': ') + ' ' +
                                      funcs.BTNTXT.format(pr.id, 'funcproc', fp.id,
                                                          'unrel/naar/userspec', sp.id,
                                                          funcs.REMOVE_TEXT)]
     assert testobj.get_foreignkeys_from()[2:] == ([], [])
예제 #3
0
def view_document(request,
                  proj,
                  edit='',
                  soort='',
                  id='',
                  srt='',
                  verw='',
                  meld=''):
    """toon/wijzig document
    """
    info_dict = funcs.init_infodict_for_detail(proj, soort, edit, meld)

    margins = funcs.get_margins_for_type(soort)
    info_dict["leftw"], info_dict["rightw"], info_dict["rightm"] = margins
    info_dict["lengte"] = funcs.get_fieldlengths(soort)

    info_dict['form_addr'] = '/docs' + funcs.get_update_url(
        proj, edit, soort, id, srt, verw)

    owner_proj = funcs.get_object('project', proj)
    info_dict["ar_proj"] = owner_proj.actiereg
    info_dict["ar_user"] = owner_proj.aruser

    if id:  # existing item
        obj = funcs.get_object(soort, id=id)
        info_dict['data'] = obj
        all_items = funcs.get_ordered_objectlist(proj, soort)
        info_dict["prev"], info_dict["next"] = funcs.determine_adjacent(
            all_items, obj)
        relations = funcs.GetRelations(obj, soort)  # , srt)
        info_dict['fkeys_to'] = relations.get_foreignkeys_to()
        info_dict['m2ms_to'] = relations.get_many2many_to()
        # button_lijst = [] # of button_lijst = my.rectypes[soort].from_titles.keys()
        result = relations.get_foreignkeys_from()
        buttons, info_dict['fkeys_from'], info_dict['andere'], info_dict[
            'attrs'] = result
        more_buttons, info_dict['m2ms_from'] = relations.get_many2many_from()
        button_lijst = buttons + more_buttons
        info_dict["sect"] = '/'.join((soort, str(id)))
        if edit == 'view':
            info_dict["buttons"] = funcs.get_relation_buttons(
                proj, soort, id, button_lijst)
    else:
        obj = None
        info_dict['nummer'] = funcs.get_new_numberkey_for_soort(
            owner_proj, soort)

    info_dict['title'] = "Project {} - {}".format(
        owner_proj.naam, funcs.get_detail_title(soort, edit, obj))

    naam_ev, naam_mv, sect = funcs.get_names_for_type(soort)
    if srt != '':
        info_dict['ref'] = (soort, naam_mv, verw)
    else:
        info_dict['lijstsoort'] = soort
        info_dict['lijstvan'] = naam_mv
    info_dict["sctn"] = sect

    return render(request, '{}.html'.format(soort), info_dict)
예제 #4
0
 def test_get_foreignkeys_from_3(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     itm = my.Dataitem.objects.create(project=pr, naam="testitem")
     ele = my.Dataelement.objects.create(sleutel=1, naam="testelement", hoort_bij=itm)
     testobj = funcs.GetRelations(itm, 'dataitem')
     result = testobj.get_foreignkeys_from()
     assert result[:3] == ([], [], [])
     assert [x for x in result[3]] == [ele]
예제 #5
0
 def test_get_foreignkeys_from_2(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     ent = my.Entiteit.objects.create(project=pr, naam="testentiteit")
     att = my.Attribuut.objects.create(primarykey=1, naam="testattr", hoort_bij=ent)
     testobj = funcs.GetRelations(ent, 'entiteit')
     result = testobj.get_foreignkeys_from()
     assert result[:3] == ([], [], [])
     assert [x for x in result[3]] == [att]
예제 #6
0
 def test_init(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     gt = my.Gebrtaak.objects.create(project=pr, naam="testtaak")
     testobj = funcs.GetRelations(gt, 'gebrtaak')  # , 'userspec')
     assert testobj.obj == gt
     assert testobj.soort == 'gebrtaak'
     # assert testobj.srt == 'userspec'
     assert testobj.opts == my.Gebrtaak._meta
예제 #7
0
 def test_get_mamy2many_to_1(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     gt = my.Gebrtaak.objects.create(project=pr, naam="testtaak")  #, spec=sp)
     testobj = funcs.GetRelations(gt, 'gebrtaak')
     result = testobj.get_many2many_to()
     assert result[0]['text'] == 'Is geraakt door aanvraag wijziging'
     assert result[0]['btn'] == funcs.BTNTXT.format(pr.id, 'userwijz', 'rel', 'gebrtaak', gt.id,
                                funcs.ADD_TEXT)
     assert result[0]['links'] == []
예제 #8
0
 def test_get_foreignkeys_to_1(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     gt = my.Gebrtaak.objects.create(project=pr, naam="testtaak")  #, spec=sp)
     testobj = funcs.GetRelations(gt, 'gebrtaak')
     result = testobj.get_foreignkeys_to()
     assert result[0]['btn'] == funcs.BTNTXT.format(pr.id, 'userspec', 'rel', 'gebrtaak', gt.id,
                                funcs.ADD_TEXT)
     assert result[0]['text'] == 'Hoort bij gebruikersspecificatie'
     assert result[0]['links'] == []
예제 #9
0
 def test_get_foreignkeys_to_2(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     sp = my.Userspec.objects.create(project=pr, naam="testproc")
     gt = my.Gebrtaak.objects.create(project=pr, naam="testtaak", spec=sp)
     testobj = funcs.GetRelations(gt, 'gebrtaak')
     result = testobj.get_foreignkeys_to()
     assert result[0]['text'] == 'Hoort bij gebruikersspecificatie'
     assert result[0]['links'] == [funcs.RELTXT.format(pr.id, 'userspec', sp.id,
                                                       sp.naam + ': ') + ' ' +
                                   funcs.BTNTXT.format(pr.id, 'gebrtaak', gt.id,
                                                       'unrel/van/userspec', sp.id,
                                                       funcs.REMOVE_TEXT)]
     assert 'btn' not in result[0]
예제 #10
0
 def test_get_mamy2many_to_2(self):
     pr = my.Project.objects.create(naam="test", kort="test project")
     aw = my.Userwijz.objects.create(project=pr, nummer='testwijz', gereed=False)
     gt = my.Gebrtaak.objects.create(project=pr, naam="testtaak")  #, spec=sp)
     gt.rfc.add(aw)
     testobj = funcs.GetRelations(gt, 'gebrtaak')
     result = testobj.get_many2many_to()
     assert result[0]['text'] == 'Is geraakt door aanvraag wijziging'
     assert result[0]['btn'] == funcs.BTNTXT.format(pr.id, 'userwijz', 'rel', 'gebrtaak', gt.id,
                                funcs.ADD_TEXT)
     assert result[0]['links'] == [funcs.RELTXT.format(pr.id, 'userwijz', aw.id,
                                                       aw.nummer + ':  ') + ' ' +
                                   funcs.BTNTXT.format(pr.id, 'gebrtaak', gt.id,
                                                       'unrel/van/userwijz', aw.id,
                                                       funcs.REMOVE_TEXT)]