mirror of
https://github.com/OpenBankProject/API-Manager.git
synced 2026-02-06 19:26:53 +00:00
Fix the "/consumers" api again
Set the consumer_id to a hidden input in the Consumers detail view
This commit is contained in:
parent
264b9a085c
commit
339ce1359d
@ -5,18 +5,11 @@ Forms of consumers app
|
||||
|
||||
from django import forms
|
||||
|
||||
|
||||
|
||||
class ApiConsumersForm(forms.Form):
|
||||
|
||||
consumer_id = forms.CharField(
|
||||
label='Consumer ID',
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
widget=forms.HiddenInput(),
|
||||
required=True,
|
||||
)
|
||||
|
||||
per_minute_call_limit = forms.IntegerField(
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
<h2>Params</h2>
|
||||
<form action="" method="post">
|
||||
{% csrf_token %}
|
||||
{{ form.consumer_id }}
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
{{ form.non_field_errors }}
|
||||
@ -21,56 +22,44 @@
|
||||
{% endif %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="col-xs-2 col-sm-2">
|
||||
{% if form.per_minute_call_limit.errors %}<div class="alert alert-danger">{{ form.per_minute_call_limit.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.per_minute_call_limit.label_tag }}
|
||||
{{ form.per_minute_call_limit }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="col-xs-2 col-sm-2">
|
||||
{% if form.per_hour_call_limit.errors %}<div class="alert alert-danger">{{ form.per_hour_call_limit.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.per_hour_call_limit.label_tag }}
|
||||
{{ form.per_hour_call_limit }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="col-xs-2 col-sm-2">
|
||||
{% if form.per_day_call_limit.errors %}<div class="alert alert-danger">{{ form.per_day_call_limit.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.per_day_call_limit.label_tag }}
|
||||
{{ form.per_day_call_limit }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="col-xs-2 col-sm-2">
|
||||
{% if form.per_week_call_limit.errors %}<div class="alert alert-danger">{{ form.per_week_call_limit.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.per_week_call_limit.label_tag }}
|
||||
{{ form.per_week_call_limit }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-sm-6">
|
||||
<div class="col-xs-2 col-sm-2">
|
||||
{% if form.per_month_call_limit.errors %}<div class="alert alert-danger">{{ form.per_month_call_limit.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.per_month_call_limit.label_tag }}
|
||||
{{ form.per_month_call_limit }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-6">
|
||||
{% if form.consumer_id.errors %}<div class="alert alert-danger">{{ form.consumer_id.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.consumer_id.label_tag }}
|
||||
{{ form.consumer_id }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">Update Consumer</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@ -16,6 +16,9 @@ from base.filters import BaseFilter, FilterTime
|
||||
|
||||
from .forms import ApiConsumersForm
|
||||
|
||||
# import logging
|
||||
# logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class FilterAppType(BaseFilter):
|
||||
"""Filter consumers by application type"""
|
||||
@ -71,7 +74,7 @@ class IndexView(LoginRequiredMixin, TemplateView):
|
||||
urlpath = '/management/consumers'
|
||||
consumers = api.get(urlpath)
|
||||
consumers = FilterEnabled(context, self.request.GET)\
|
||||
.apply(consumers['consumers'])
|
||||
.apply(consumers['list'])
|
||||
consumers = FilterAppType(context, self.request.GET)\
|
||||
.apply(consumers)
|
||||
consumers = FilterTime(context, self.request.GET, 'created')\
|
||||
@ -98,36 +101,20 @@ class DetailView(LoginRequiredMixin, FormView):
|
||||
self.api = API(request.session.get('obp'))
|
||||
return super(DetailView, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_form(self):
|
||||
"""
|
||||
Get bound form either from request.GET or initials
|
||||
We need a bound form because we already send a request to the API
|
||||
without user intervention on initial request
|
||||
"""
|
||||
if self.request.GET:
|
||||
data = self.request.GET
|
||||
|
||||
else:
|
||||
fields = self.form_class.declared_fields
|
||||
data = {}
|
||||
for name, field in fields.items():
|
||||
if field.initial:
|
||||
data[name] = field.initial
|
||||
form = self.form_class(data)
|
||||
def get_form(self, *args, **kwargs):
|
||||
form = super(DetailView, self).get_form(*args, **kwargs)
|
||||
form.fields['consumer_id'].initial = self.kwargs['consumer_id']
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
|
||||
"""Put limits data to API"""
|
||||
try:
|
||||
|
||||
|
||||
data = ''
|
||||
form = ApiConsumersForm(self.request.POST)
|
||||
if form.is_valid():
|
||||
data = form.cleaned_data
|
||||
|
||||
|
||||
urlpath = '/management/consumers/{}/consumer/calls_limit'.format(data['consumer_id'])
|
||||
|
||||
payload = {
|
||||
@ -151,7 +138,6 @@ class DetailView(LoginRequiredMixin, FormView):
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(DetailView, self).get_context_data(**kwargs)
|
||||
api = API(self.request.session.get('obp'))
|
||||
|
||||
try:
|
||||
urlpath = '/management/consumers/{}'.format(self.kwargs['consumer_id'])
|
||||
consumer = api.get(urlpath)
|
||||
@ -161,8 +147,7 @@ class DetailView(LoginRequiredMixin, FormView):
|
||||
messages.error(self.request, err)
|
||||
|
||||
context.update({
|
||||
'consumer': consumer,
|
||||
'form': self.get_form()
|
||||
'consumer': consumer
|
||||
})
|
||||
return context
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user