Projet

Général

Profil

0002-views-flag-connectors-with-open-access-on-homepage-4.patch

Valentin Deniaud, 09 juin 2020 17:17

Télécharger (3,75 ko)

Voir les différences:

Subject: [PATCH 2/2] views: flag connectors with open access on homepage
 (#42123)

 passerelle/base/models.py                   |  8 +++++++
 passerelle/static/css/style.css             |  9 ++++++++
 passerelle/templates/passerelle/manage.html | 10 ++++++---
 tests/test_manager.py                       | 23 +++++++++++++++++++++
 4 files changed, 47 insertions(+), 3 deletions(-)
passerelle/base/models.py
597 597
            exception_to_text(exc_value),
598 598
            exc_info=exc_info)
599 599

  
600
    @property
601
    def has_open_access_right(self):
602
        return AccessRight.objects.filter(
603
            resource_type=ContentType.objects.get_for_model(self),
604
            resource_pk=self.pk,
605
            apiuser__key=''
606
        ).exists()
607

  
600 608

  
601 609
@six.python_2_unicode_compatible
602 610
class AccessRight(models.Model):
passerelle/static/css/style.css
70 70
	width: 100%;
71 71
}
72 72

  
73
li span.connector-open {
74
	display: block;
75
	font-size: 85%;
76
	opacity: 0.9;
77
	position: absolute;
78
	bottom: 5ex;
79
	width: 100%;
80
}
81

  
73 82
ul.connectors {
74 83
	clear: both;
75 84
}
passerelle/templates/passerelle/manage.html
19 19
<div>
20 20
  <ul class="objects-list single-links connectors">
21 21
    {% for a in apps %}
22
    <li class="connector {{ a.get_css_class_name }} status-{{ a.get_availability_status.status }}"
23
        ><a href="{{ a.get_absolute_url }}"><span class="connector-name">{{ a.title }}</span>
24
                    <span class="connector-type">({{ a.get_verbose_name }})</span></a></li>
22
    <li class="connector {{ a.get_css_class_name }} status-{{ a.get_availability_status.status }}">
23
      <a href="{{ a.get_absolute_url }}">
24
        <span class="connector-name">{{ a.title }}</span>
25
        <span class="connector-type">({{ a.get_verbose_name }})</span>
26
        {% if a.has_open_access_right %}<span class="connector-open">{% trans "Open access" %}</span>{% endif %}
27
      </a>
28
    </li>
25 29
    {% endfor %}
26 30
  </ul>
27 31
</div>
tests/test_manager.py
490 490
    resp.form['confirm_open_access'] = True
491 491
    resp.form.submit().follow()
492 492
    assert AccessRight.objects.count() == 2
493

  
494

  
495
def test_manager_open_access_flag(app, admin_user):
496
    csv = CsvDataSource.objects.create(csv_file=File(StringIO('1;t\n'), 't.csv'), slug='t', title='t')
497
    api = ApiUser.objects.create(username='test', fullname='test', keytype='', key='test')
498

  
499
    app = login(app)
500
    resp = app.get('/manage/', status=200)
501
    assert len(resp.pyquery('li.connector')) == 1
502
    assert not 'Open access' in resp.text
503

  
504
    obj_type = ContentType.objects.get_for_model(csv)
505
    AccessRight.objects.create(codename='can_access', apiuser=api, resource_type=obj_type,
506
                               resource_pk=csv.pk)
507

  
508
    resp = app.get('/manage/', status=200)
509
    assert not 'Open access' in resp.text
510

  
511
    api.key = ''
512
    api.save()
513

  
514
    resp = app.get('/manage/', status=200)
515
    assert 'Open access' in resp.text
493
-