0001-wcs-include-drafts-or-not-in-current-forms-cell-2023.patch
combo/apps/wcs/forms.py | ||
---|---|---|
86 | 86 |
class WcsCurrentFormsCellForm(forms.ModelForm): |
87 | 87 |
class Meta: |
88 | 88 |
model = WcsCurrentFormsCell |
89 |
fields = ['wcs_site', 'categories', 'current_forms', 'done_forms'] |
|
89 |
fields = ['wcs_site', 'categories', 'current_forms', 'done_forms', 'include_drafts']
|
|
90 | 90 | |
91 | 91 |
def __init__(self, *args, **kwargs): |
92 | 92 |
super(WcsCurrentFormsCellForm, self).__init__(*args, **kwargs) |
combo/apps/wcs/migrations/0018_wcscurrentformscell_include_drafts.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
from __future__ import unicode_literals |
|
3 | ||
4 |
from django.db import migrations, models |
|
5 | ||
6 | ||
7 |
class Migration(migrations.Migration): |
|
8 | ||
9 |
dependencies = [ |
|
10 |
('wcs', '0017_wcscareformscell'), |
|
11 |
] |
|
12 | ||
13 |
operations = [ |
|
14 |
migrations.AddField( |
|
15 |
model_name='wcscurrentformscell', |
|
16 |
name='include_drafts', |
|
17 |
field=models.BooleanField(default=False, verbose_name='Include drafts'), |
|
18 |
), |
|
19 |
] |
combo/apps/wcs/models.py | ||
---|---|---|
307 | 307 |
categories = JSONField(_('Categories'), blank=True) |
308 | 308 |
current_forms = models.BooleanField(_('Current Forms'), default=True) |
309 | 309 |
done_forms = models.BooleanField(_('Done Forms'), default=False) |
310 |
include_drafts = models.BooleanField(_('Include drafts'), default=False) |
|
310 | 311 | |
311 | 312 |
class Meta: |
312 | 313 |
verbose_name = _('User Forms') |
... | ... | |
317 | 318 | |
318 | 319 |
def get_api_url(self, context): |
319 | 320 |
user = self.get_concerned_user(context) |
321 |
base_url = '/api/user/forms' |
|
320 | 322 |
if user: |
321 | 323 |
user_name_id = user.get_name_id() |
322 | 324 |
if user_name_id: |
323 |
return '/api/users/%s/forms?limit=100&sort=desc' % user_name_id |
|
324 |
return '/api/user/forms?limit=100&sort=desc' |
|
325 |
base_url = '/api/users/%s/forms' % user_name_id |
|
326 |
url = base_url + '?limit=100&sort=desc' |
|
327 |
if self.include_drafts: |
|
328 |
url += '&include-drafts=on' |
|
329 |
return url |
|
325 | 330 | |
326 | 331 |
@property |
327 | 332 |
def template_name(self): |
... | ... | |
339 | 344 |
label = _('Done Forms') |
340 | 345 |
else: |
341 | 346 |
label = _('Current Forms') |
347 |
if self.include_drafts: |
|
348 |
label = '%s %s' % (label, _('and drafts')) |
|
342 | 349 |
if initial_label: |
343 | 350 |
return '%s - %s' % (initial_label, label) |
344 | 351 |
return label |
combo/apps/wcs/templates/combo/wcs/list_of_forms.html | ||
---|---|---|
1 |
{% load combo %} |
|
1 | 2 |
{% block cell-content %} |
2 | 3 |
{% if forms %} |
3 | 4 |
<ul> |
... | ... | |
5 | 6 |
{% if data.url and data.title %} |
6 | 7 |
<li class="{{data.status_css_class}} {% if data.form_status_is_endpoint %}done{% endif %}"><a |
7 | 8 |
{% if data.readable %}href="{{ data.url }}"{% endif %}><span class="form-title">{{data.name}}</span> |
9 |
{% if data.draft %} |
|
10 |
<span class="form-number">{{data.datetime|strptime:"%Y-%m-%d %H:%M:%S"}}</span> |
|
11 |
{% else %} |
|
8 | 12 |
<span class="form-number">{{data.form_number}} |
9 | 13 |
{% if data.form_digest %}<span class="form-digest">({{data.form_digest}})</span>{% endif %} |
10 | 14 |
</span> |
15 |
{% endif %} |
|
11 | 16 |
<span class="form-status">{{data.status}}</span></a></li> |
12 | 17 |
{% endif %} |
13 | 18 |
{% endfor %} |
tests/test_wcs.py | ||
---|---|---|
387 | 387 |
# done forms |
388 | 388 |
cell.current_forms = False |
389 | 389 |
cell.done_forms = True |
390 |
cell.include_drafts = False |
|
390 | 391 |
cell.save() |
391 | 392 |
result = cell.render(context) |
392 | 393 |
assert not 'http://127.0.0.1:8999/form-title/1/' in result |
... | ... | |
422 | 423 |
extra_context = cell.get_cell_extra_context(context) |
423 | 424 |
assert len(extra_context['forms']) == 0 |
424 | 425 | |
426 |
# check include drafts |
|
427 |
cell.include_drafts = False |
|
428 |
with mock.patch('combo.apps.wcs.models.requests.get') as requests_get: |
|
429 |
cell.get_cell_extra_context(context) |
|
430 |
assert requests_get.call_args_list[0][0][0] == '/api/user/forms?limit=100&sort=desc' |
|
431 | ||
432 |
cell.include_drafts = True |
|
433 |
with mock.patch('combo.apps.wcs.models.requests.get') as requests_get: |
|
434 |
cell.get_cell_extra_context(context) |
|
435 |
assert requests_get.call_args_list[0][0][0] == '/api/user/forms?limit=100&sort=desc&include-drafts=on' |
|
436 | ||
437 | ||
425 | 438 |
@wcs_present |
426 | 439 |
def test_current_forms_cell_render_single_site(context): |
427 | 440 |
page = Page(title='xxx', slug='test_current_forms_cell_render', template_name='standard') |
428 |
- |