Add Upload_file for known data_type in ManageService View
Change-Id: Ia7cf163a8df52f41596ea87cad67ed0f73f2005d
This commit is contained in:
parent
8d7403edb2
commit
b1e38556f9
|
@ -53,28 +53,37 @@ class UploadFileKnownTypeForm(SelfHandlingForm):
|
|||
error_messages=
|
||||
{'required': _('There is no file to upload')})
|
||||
|
||||
def __init__(self, request, data_type=None, *args, **kwargs):
|
||||
def __init__(self, request,
|
||||
data_type=None,
|
||||
full_service_name=None,
|
||||
*args, **kwargs):
|
||||
self.data_type = data_type
|
||||
self.service_id = full_service_name
|
||||
super(UploadFileKnownTypeForm, self).__init__(request, *args, **kwargs)
|
||||
|
||||
def handle(self, request, data):
|
||||
log.debug('Uploading file to metadata repository {0}'.format(data))
|
||||
filename = data['file'].name
|
||||
data_type = getattr(self, 'data_type', data['data_type'])
|
||||
log.debug('Uploading file to metadata repository {0} and assiging'
|
||||
' it to {1} service'.format(filename, self.service_id))
|
||||
try:
|
||||
result = metadataclient(request).metadata_admin.upload_file(
|
||||
data_type, data['file'], filename)
|
||||
result = metadataclient(request).metadata_admin.\
|
||||
upload_file_to_service(self.data_type,
|
||||
data['file'],
|
||||
filename,
|
||||
self.service_id)
|
||||
messages.success(request,
|
||||
_("File '{filename}' uploaded".format(
|
||||
filename=filename)))
|
||||
return result
|
||||
except HTTPException as e:
|
||||
redirect = reverse('horizon:murano:service_catalog:manage_files')
|
||||
redirect = reverse('horizon:murano:service_catalog:manage_service',
|
||||
args=(self.service_id,))
|
||||
log.exception(e)
|
||||
exceptions.handle(request,
|
||||
_("Unable to upload {0} file of '{1}' "
|
||||
"type".format(filename, data['data_type'])),
|
||||
redirect=redirect)
|
||||
msg = _("Unable to upload {0} file of '{1}' type."
|
||||
" Error code: {2}".format(filename,
|
||||
self.data_type,
|
||||
e.code))
|
||||
exceptions.handle(request, msg, redirect=redirect)
|
||||
|
||||
def clean_file(self):
|
||||
file = self.cleaned_data.get('file')
|
||||
|
@ -96,3 +105,23 @@ class UploadFileForm(UploadFileKnownTypeForm):
|
|||
|
||||
data_type = forms.ChoiceField(label=_('File data type'),
|
||||
choices=(supported_data_types.items()))
|
||||
|
||||
def handle(self, request, data):
|
||||
log.debug('Uploading file to metadata repository {0}'.format(data))
|
||||
filename = data['file'].name
|
||||
data_type = data['data_type']
|
||||
try:
|
||||
result = metadataclient(request).metadata_admin.\
|
||||
upload_file(data_type, data['file'], filename)
|
||||
messages.success(request,
|
||||
_("File '{filename}' uploaded".format(
|
||||
filename=filename)))
|
||||
return result
|
||||
except HTTPException as e:
|
||||
redirect = reverse('horizon:murano:service_catalog:manage_files')
|
||||
log.exception(e)
|
||||
msg = _("Unable to upload {0} file of '{1}' type."
|
||||
" Error code: {2}".format(filename,
|
||||
self.data_type,
|
||||
e.code))
|
||||
exceptions.handle(request, msg, redirect=redirect)
|
||||
|
|
|
@ -30,14 +30,14 @@ urlpatterns = patterns(
|
|||
url(r'^upload_service$', UploadServiceView.as_view(),
|
||||
name='upload_service'),
|
||||
|
||||
url(r'^upload_file/(?P<data_type>[^/]+)$',
|
||||
url(r'^upload_file/(?P<data_type>[^/]+)/(?P<full_service_name>[^/]+)$',
|
||||
UploadFileView2.as_view(),
|
||||
name='upload_file2'),
|
||||
|
||||
url(r'^manage_files/upload_file$', UploadFileView.as_view(),
|
||||
name='upload_file'),
|
||||
#This should goes first
|
||||
url(r'^manage_files/(?P<full_service_name>[^/]+)?$',
|
||||
url(r'^manage_service/(?P<full_service_name>[^/]+)?$',
|
||||
ManageServiceView.as_view(),
|
||||
name='manage_service'),
|
||||
|
||||
|
|
|
@ -43,8 +43,7 @@ def define_tables(table_name, step_verbose_name):
|
|||
class UploadFileDataType(tables.LinkAction):
|
||||
name = 'upload_file2'
|
||||
verbose_name = step_verbose_name
|
||||
url = reverse('horizon:murano:service_catalog:upload_file2',
|
||||
args=(table_name,))
|
||||
url = None
|
||||
classes = ('ajax-modal', 'btn-create')
|
||||
|
||||
class ObjectsTable(tables.DataTable):
|
||||
|
|
|
@ -137,15 +137,25 @@ class ComposeServiceView(WorkflowView):
|
|||
|
||||
|
||||
class UploadFileView2(ModalFormView):
|
||||
template_name = 'service_catalog/upload_file.html'
|
||||
template_name = 'service_catalog/upload_file2.html'
|
||||
form_class = UploadFileKnownTypeForm
|
||||
success_url = reverse_lazy('horizon:murano:service_catalog:index')
|
||||
success_url = 'horizon:murano:service_catalog:manage_service'
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse(self.success_url,
|
||||
args=(self.kwargs['full_service_name'],))
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super(UploadFileView2, self).get_form_kwargs()
|
||||
kwargs.update(self.kwargs)
|
||||
return kwargs
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(UploadFileView2, self).get_context_data(**kwargs)
|
||||
context['data_type'] = self.kwargs['data_type']
|
||||
context['service_id'] = self.kwargs['full_service_name']
|
||||
return context
|
||||
|
||||
|
||||
class UploadFileView(ModalFormView):
|
||||
form_class = UploadFileForm
|
||||
|
@ -158,6 +168,17 @@ class ManageServiceView(tables.MultiTableView):
|
|||
template_name = 'service_catalog/service_files.html'
|
||||
failure_url = reverse_lazy('horizon:murano:service_catalog:index')
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
service_id = kwargs['full_service_name']
|
||||
for table in self.table_classes:
|
||||
data_type = table._meta.name
|
||||
table.base_actions['upload_file2'].url = \
|
||||
reverse('horizon:murano:service_catalog:upload_file2',
|
||||
args=(data_type, service_id,))
|
||||
return super(ManageServiceView, self).dispatch(request,
|
||||
*args,
|
||||
**kwargs)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
# here we should move table_classes assignment into __init__ method
|
||||
# because otherwise reverse() call inside define_tables() won't work
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
</div>
|
||||
<div class='right'>
|
||||
<h3>{% trans 'Description:' %}</h3>
|
||||
<p>{% blocktrans %} Select one of supported metadata type{% endblocktrans %}</p>
|
||||
<p>{% blocktrans %} Choose file to upload{% endblocktrans %}</p>
|
||||
<p>{% blocktrans %} Select one of supported metadata type{% endblocktrans %}</p>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
{% extends 'common/_modal_form.html' %}
|
||||
{% load i18n %}
|
||||
{% load url from future %}
|
||||
|
||||
{% block form_id %}upload_file_form2{% endblock %}
|
||||
{% block form_attrs %}enctype='multipart/form-data'{% endblock %}
|
||||
{% block form_action %}{% url 'horizon:murano:service_catalog:upload_file2' data_type service_id%}{% endblock %}
|
||||
|
||||
{% block modal-header %}{% trans 'Upload File To Metadata Repository' %}{% endblock %}
|
||||
{% block modal_id %}upload_file_modal{% endblock %}
|
||||
{% block modal-body %}
|
||||
|
||||
<div class='left'>
|
||||
<fieldset>
|
||||
{% include 'horizon/common/_form_fields.html' %}
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class='right'>
|
||||
<h3>{% trans 'Description:' %}</h3>
|
||||
<p>{% blocktrans %} Choose file to upload. {% endblocktrans %}</p>
|
||||
<p>It will be added to {{ data_type }} files to the particular service</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-footer %}
|
||||
<input class='btn btn-primary pull-right' type='submit' value='{% trans 'Upload' %}' />
|
||||
<a href="{% url 'horizon:murano:service_catalog:upload_file2' data_type service_id%}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans 'Upload File To Murano Repository' %}{% endblock %}
|
||||
|
||||
{% block page_header %}
|
||||
{% include 'horizon/common/_page_header.html' with title=_('Upload File To Murano Repository') %}
|
||||
{% endblock page_header %}
|
||||
|
||||
{% block main %}
|
||||
{% include 'service_catalog/_upload_file2.html' %}
|
||||
{% endblock %}
|
Loading…
Reference in New Issue