0002-views-flag-connectors-with-open-access-on-homepage-4.patch
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 |
- |