Removes and simplifies GBPUI templates

Removes unused templates and simplifies remaining templates and views by extracting common logic
in the same way as the previous partial patch for this bug did.

Change-Id: I832a7ab88e99103b9e6abdfd8be44fcd8bee1a11
Closes-Bug: 1710852
Co-Authored-By: viktor.krivak@ultimum.io
This commit is contained in:
Marek Lycka 2017-09-08 15:02:43 +02:00
parent f14de1c22a
commit f3048c76ec
44 changed files with 310 additions and 1093 deletions

View File

@ -31,3 +31,10 @@ class ReversingModalFormView(forms.ModalFormView):
submit_params = self.get_submit_url_params(**kwargs) submit_params = self.get_submit_url_params(**kwargs)
submit_url = reverse(self.submit_url, kwargs=submit_params) submit_url = reverse(self.submit_url, kwargs=submit_params)
return submit_url return submit_url
class HelpTextModalMixin(object):
def get_context_data(self, **kwargs):
context = super(HelpTextModalMixin, self).get_context_data(**kwargs)
context["help_text"] = self.help_text
return context

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}add_policy_action_form{% endblock %}
{% block form_action %}{% url "horizon:project:application_policy:addpolicyaction" %}{% endblock %}
{% block modal_id %}add_policy_action_modal{% endblock %}
{% block modal-header %}{% trans "Create Policy Action" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description" %}:</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Create Policy Action" %}" />
<a href="{% url "horizon:project:application_policy:index" %}" class="btn btn-default secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,30 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}add_policy_classifier_form{% endblock %}
{% block form_action %}{% url "horizon:project:application_policy:addpolicyclassifier" %}{% endblock %}
{% block modal_id %}add_policy_classifier_modal{% endblock %}
{% block modal-header %}{% trans "Create Policy Classifier" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description" %}:</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Create Policy Classifier" %}" />
<a href="{% url "horizon:project:application_policy:index" %}" class="btn btn-default secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}
{% block modal-js %}
<script src='{{ STATIC_URL }}dashboard/js/horizon.protocolmap.js' type="text/javascript"></script>
{% endblock %}

View File

@ -16,7 +16,7 @@
<dt>{% trans "Project ID" %}</dt> <dt>{% trans "Project ID" %}</dt>
<dd>{{ policyaction.tenant_id }}</dd> <dd>{{ policyaction.tenant_id }}</dd>
<dt>{% trans "Action Value" %}</dt> <dt>{% trans "Action Value" %}</dt>
<dd>{{ policyaction.action_value|default:_("-") }}</dd> <dd>{{ policyaction.action_value|default:_("-") }}</dd>
<dt>{% trans "Action Type" %}</dt> <dt>{% trans "Action Type" %}</dt>

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_policy_action_form{% endblock %}
{% block form_action %}{% url "horizon:project:application_policy:updatepolicyaction" policyaction_id %}{% endblock %}
{% block modal_id %}update_policy_action_modal{% endblock %}
{% block modal-header %}{% trans "Edit Policy Action" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description" %}:</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Update Policy Action" %}" />
<a href="{% url "horizon:project:application_policy:index" %}" class="btn btn-default secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,29 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_policy_classifier_form{% endblock %}
{% block form_action %}{% url "horizon:project:application_policy:updatepolicyclassifier" policyclassifier_id %}{% endblock %}
{% block modal_id %}update_policy_classifier_modal{% endblock %}
{% block modal-header %}{% trans "Edit Policy Classifier" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description" %}:</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Update Policy Classifier" %}" />
<a href="{% url "horizon:project:application_policy:index" %}" class="btn btn-default secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}
{% block modal-js %}
<script src='{{ STATIC_URL }}dashboard/js/horizon.protocolmap.js' type="text/javascript"></script>
{% endblock %}

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_policy_rule_form{% endblock %}
{% block form_action %}{% url "horizon:project:application_policy:updatepolicyrule" policyrule_id %}{% endblock %}
{% block modal_id %}update_policy_rule_modal{% endblock %}
{% block modal-header %}{% trans "Edit Policy Rule" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description" %}:</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Update Policy Rule" %}" />
<a href="{% url "horizon:project:application_policy:index" %}" class="btn btn-default secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,26 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_policy_rule_set_form{% endblock %}
{% block form_action %}{% url "horizon:project:application_policy:updatepolicy_rule_set" policy_rule_set_id %}{% endblock %}
{% block modal_id %}update_policy_rule_set_modal{% endblock %}
{% block modal-header %}{% trans "Edit Policy Rule Set" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description" %}:</h3>
<p>{% trans "Select one or multiple rules by pressing Ctrl" %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Update Policy Rule Set" %}" />
<a href="{% url "horizon:project:application_policy:index" %}" class="btn btn-default secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,11 +0,0 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Create Policy Rule Set" %}{% endblock %}
{% block page_header %}
{% include "horizon/common/_page_header.html" with title=_("Create Policy Rule Set") %}
{% endblock page_header %}
{% block main %}
{% include 'horizon/common/_workflow.html' %}
{% endblock %}

View File

@ -1,11 +0,0 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Create New Action" %}{% endblock %}
{% block page_header %}
{% include "horizon/common/_page_header.html" with title=_("Create New Action") %}
{% endblock page_header %}
{% block main %}
{% include 'horizon/common/_workflow.html' %}
{% endblock %}

View File

@ -1,11 +0,0 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Create New Classifier" %}{% endblock %}
{% block page_header %}
{% include "horizon/common/_page_header.html" with title=_("Create New Classifier") %}
{% endblock page_header %}
{% block main %}
{% include 'horizon/common/_workflow.html' %}
{% endblock %}

View File

@ -1,11 +0,0 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Create New Policy Rule Set" %}{% endblock %}
{% block page_header %}
{% include "horizon/common/_page_header.html" with title=_("Create New Policy Rule Set") %}
{% endblock page_header %}
{% block main %}
{% include 'horizon/common/_workflow.html' %}
{% endblock %}

View File

@ -1,15 +0,0 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Application Policies" %}{% endblock %}
{% block page_header %}
{% include "horizon/common/_page_header.html" with title=_("Application Policies") %}
{% endblock page_header %}
{% block main %}
<div class="row">
<div class="col-sm-12">
{{ tab_group.render }}
</div>
</div>
{% endblock %}

View File

@ -11,7 +11,6 @@
# under the License. # under the License.
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from horizon import forms
from horizon import tabs from horizon import tabs
from horizon import workflows from horizon import workflows
@ -19,6 +18,9 @@ import forms as policy_rule_set_forms
import tabs as policy_rule_set_tabs import tabs as policy_rule_set_tabs
import workflows as policy_rule_set_workflows import workflows as policy_rule_set_workflows
from django.utils.translation import ugettext_lazy as _
from gbpui.common import forms as gbforms
PolicyRuleSetTabs = policy_rule_set_tabs.ApplicationPoliciesTabs PolicyRuleSetTabs = policy_rule_set_tabs.ApplicationPoliciesTabs
PolicyRuleSetDetailsTabs = policy_rule_set_tabs.PolicyRuleSetDetailsTabs PolicyRuleSetDetailsTabs = policy_rule_set_tabs.PolicyRuleSetDetailsTabs
PolicyRuleDetailsTabs = policy_rule_set_tabs.PolicyRuleDetailsTabs PolicyRuleDetailsTabs = policy_rule_set_tabs.PolicyRuleDetailsTabs
@ -31,26 +33,26 @@ AddPolicyClassifier = policy_rule_set_workflows.AddPolicyClassifier
class IndexView(tabs.TabbedTableView): class IndexView(tabs.TabbedTableView):
tab_group_class = (PolicyRuleSetTabs) tab_group_class = (PolicyRuleSetTabs)
template_name = 'project/application_policy/details_tabs.html' template_name = "gbpui/details_tabs.html"
page_title = _("Application Policies")
class AddPolicyRuleSetView(workflows.WorkflowView): class AddPolicyRuleSetView(workflows.WorkflowView):
workflow_class = AddPolicyRuleSet workflow_class = AddPolicyRuleSet
template_name = "project/application_policy/addpolicy_rule_set.html"
def get_object_id(self, policy_rule_set):
return [policy_rule_set.id]
class UpdatePolicyRuleSetView(forms.ModalFormView): class UpdatePolicyRuleSetView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_rule_set_forms.UpdatePolicyRuleSetForm form_class = policy_rule_set_forms.UpdatePolicyRuleSetForm
template_name = 'project/application_policy/update_policy_rule_set.html' modal_header = _("Edit Policy Rule Set")
submit_label = _("Update Policy Rule Set")
submit_url = "horizon:project:application_policy:updatepolicy_rule_set"
template_name = "gbpui/form_with_description.html"
page_title = _("Update Rule Set")
help_text = _("Update Rule Set.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super( return {"policy_rule_set_id": self.kwargs['policy_rule_set_id']}
UpdatePolicyRuleSetView, self).get_context_data(**kwargs)
context['policy_rule_set_id'] = self.kwargs['policy_rule_set_id']
return context
def get_initial(self): def get_initial(self):
return {'policy_rule_set_id': self.kwargs['policy_rule_set_id']} return {'policy_rule_set_id': self.kwargs['policy_rule_set_id']}
@ -58,15 +60,17 @@ class UpdatePolicyRuleSetView(forms.ModalFormView):
class AddPolicyRuleView(workflows.WorkflowView): class AddPolicyRuleView(workflows.WorkflowView):
workflow_class = AddPolicyRule workflow_class = AddPolicyRule
template_name = "project/application_policy/addpolicyrule.html"
def get_object_id(self, rule):
return [rule.id]
class AddPolicyClassifierView(forms.ModalFormView): class AddPolicyClassifierView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_rule_set_forms.AddPolicyClassifierForm form_class = policy_rule_set_forms.AddPolicyClassifierForm
template_name = "project/application_policy/add_policy_classifier.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:application_policy:addpolicyclassifier"
modal_header = _("Create Policy Classifier")
page_title = _("Create Policy Classifier")
help_text = _("Create Policy Classifier.")
submit_label = _("Save Changes")
def get_success_url(self): def get_success_url(self):
return reverse('horizon:project:application_policy:index') return reverse('horizon:project:application_policy:index')
@ -75,26 +79,32 @@ class AddPolicyClassifierView(forms.ModalFormView):
return [classifier.id] return [classifier.id]
class AddPolicyActionView(forms.ModalFormView): class AddPolicyActionView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_rule_set_forms.AddPolicyActionForm form_class = policy_rule_set_forms.AddPolicyActionForm
template_name = "project/application_policy/add_policy_action.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:application_policy:addpolicyaction"
modal_header = _("Create Policy Action")
page_title = _("Create Policy Action")
submit_label = _("Create")
help_text = _("Create Policy Action.")
def get_success_url(self): def get_success_url(self):
return reverse('horizon:project:application_policy:index') return reverse('horizon:project:application_policy:index')
def get_object_id(self, policyaction):
return [policyaction.id]
class UpdatePolicyActionView(gbforms.HelpTextModalMixin,
class UpdatePolicyActionView(forms.ModalFormView): gbforms.ReversingModalFormView):
form_class = policy_rule_set_forms.UpdatePolicyActionForm form_class = policy_rule_set_forms.UpdatePolicyActionForm
template_name = "project/application_policy/update_policy_action.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:application_policy:updatepolicyaction"
modal_header = _("Edit Policy Action")
page_title = _("Edit Policy Action")
submit_label = _("Save Changes")
help_text = _("Edit Policy Action.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super( return {"policyaction_id": self.kwargs['policyaction_id']}
UpdatePolicyActionView, self).get_context_data(**kwargs)
context['policyaction_id'] = self.kwargs['policyaction_id']
return context
def get_initial(self): def get_initial(self):
return {'policyaction_id': self.kwargs['policyaction_id']} return {'policyaction_id': self.kwargs['policyaction_id']}
@ -102,22 +112,29 @@ class UpdatePolicyActionView(forms.ModalFormView):
class PolicyRuleSetDetailsView(tabs.TabView): class PolicyRuleSetDetailsView(tabs.TabView):
tab_group_class = (PolicyRuleSetDetailsTabs) tab_group_class = (PolicyRuleSetDetailsTabs)
template_name = 'project/application_policy/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Policy Rule Set Details")
class PolicyRuleDetailsView(tabs.TabView): class PolicyRuleDetailsView(tabs.TabView):
tab_group_class = (PolicyRuleDetailsTabs) tab_group_class = (PolicyRuleDetailsTabs)
template_name = 'project/application_policy/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Policy Rule Details")
class UpdatePolicyRuleView(forms.ModalFormView): class UpdatePolicyRuleView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_rule_set_forms.UpdatePolicyRuleForm form_class = policy_rule_set_forms.UpdatePolicyRuleForm
template_name = "project/application_policy/update_policy_rule.html"
def get_context_data(self, **kwargs): modal_header = _("Edit Policy Rule")
context = super(UpdatePolicyRuleView, self).get_context_data(**kwargs) submit_label = _("Update Policy Rule")
context['policyrule_id'] = self.kwargs['policyrule_id'] submit_url = "horizon:project:application_policy:updatepolicyrule"
return context template_name = "gbpui/form_with_description.html"
page_title = _("Edit Policy Rule")
help_text = _("Edit Policy Rule.")
def get_submit_url_params(self, **kwargs):
return {"policyrule_id": self.kwargs['policyrule_id']}
def get_initial(self): def get_initial(self):
return {'policyrule_id': self.kwargs['policyrule_id']} return {'policyrule_id': self.kwargs['policyrule_id']}
@ -125,18 +142,22 @@ class UpdatePolicyRuleView(forms.ModalFormView):
class PolicyClassifierDetailsView(tabs.TabView): class PolicyClassifierDetailsView(tabs.TabView):
tab_group_class = (PolicyClassifierDetailsTabs) tab_group_class = (PolicyClassifierDetailsTabs)
template_name = 'project/application_policy/details_tabs.html' template_name = "gbpui/details_tabs.html"
page_title = _("Policy Classifier Details")
class UpdatePolicyClassifierView(forms.ModalFormView): class UpdatePolicyClassifierView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_rule_set_forms.UpdatePolicyClassifierForm form_class = policy_rule_set_forms.UpdatePolicyClassifierForm
template_name = "project/application_policy/update_policy_classifier.html" modal_header = _("Edit Policy Classifier")
submit_label = _("Update Policy Classifier")
submit_url = "horizon:project:application_policy:updatepolicyclassifier"
template_name = "gbpui/form_with_description.html"
page_title = _("Edit Policy Classifier")
help_text = _("Edit Policy Classifier.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super( return {"policyclassifier_id": self.kwargs['policyclassifier_id']}
UpdatePolicyClassifierView, self).get_context_data(**kwargs)
context['policyclassifier_id'] = self.kwargs['policyclassifier_id']
return context
def get_initial(self): def get_initial(self):
return {'policyclassifier_id': self.kwargs['policyclassifier_id']} return {'policyclassifier_id': self.kwargs['policyclassifier_id']}
@ -144,4 +165,5 @@ class UpdatePolicyClassifierView(forms.ModalFormView):
class PolicyActionDetailsView(tabs.TabView): class PolicyActionDetailsView(tabs.TabView):
tab_group_class = (PolicyActionDetailsTabs) tab_group_class = (PolicyActionDetailsTabs)
template_name = 'project/application_policy/details_tabs.html' template_name = "gbpui/details_tabs.html"
page_title = _("Policy Action Details")

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}add_l2policy_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:addl2policy' %}{% endblock %}
{% block modal-header %}{% trans "Add L2Policy" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Add L2 Policy." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save Changes" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,45 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}add_l3policy_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:addl3policy' %}{% endblock %}
{% block modal-header %}{% trans "Add L3Policy" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Add L3 Policy." %}</p>
</div>
{% endblock %}
{% block modal-js %}
<script>
$(function(){
if($('#id_external_segments>option:selected').val() == ''){
$('#id_segment_ip').parent().parent().hide();
}
$('#id_external_segments').on('change',function(){
if($('#id_external_segments>option:selected').val() == ''){
$('#id_segment_ip').parent().parent().hide();
}else{
$('#id_segment_ip').parent().parent().show();
}
});
});
</script>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save Changes" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,24 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}create_external_connectivity{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:create_external_connectivity' %}{% endblock %}
{% block modal-header %}{% trans "Create External Connectivity" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Create" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,24 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}add_external_route_param_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:add_external_route_param' %}{% endblock %}
{% block modal-header %}{% trans "Add External Route Parameter" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Create" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,24 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}add_external_segment_param_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:add_external_segment_param' %}{% endblock %}
{% block modal-header %}{% trans "Add External Segment Parameter" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Create" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,24 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}create_nat_pool{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:create_nat_pool' %}{% endblock %}
{% block modal-header %}{% trans "Create NAT Pool" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Create" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,24 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}add_network_service_param_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:add_network_service_param' %}{% endblock %}
{% block modal-header %}{% trans "Add Network Service Parameter" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Create" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}create_service_policy_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:create_servicepolicy' %}{% endblock %}
{% block modal-header %}{% trans "Create Service Policy" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Create Service Policy." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Create" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_external_connectivity_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:update_externalconnectivity' external_connectivity_id %}{% endblock %}
{% block modal-header %}{% trans "Update External Connectivity" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Update Service Policy." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Update" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_l2policy_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:update_l2policy' l2policy_id %}{% endblock %}
{% block modal-header %}{% trans "Update L2Policy" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Update L2 Policy." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save Changes" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,44 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_l3policy_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:update_l3policy' l3policy_id %}{% endblock %}
{% block modal-header %}{% trans "Update L3Policy" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Update L3 Policy." %}</p>
</div>
{% endblock %}
{% block modal-js %}
<script>
$(function(){
if($('#id_external_segments>option:selected').val() == ''){
$('#id_segment_ip').parent().parent().hide();
}
$('#id_external_segments').on('change',function(){
if($('#id_external_segments>option:selected').val() == ''){
$('#id_segment_ip').parent().parent().hide();
}else{
$('#id_segment_ip').parent().parent().show();
}
});
});
</script>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save Changes" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_nat_pool_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:update_natpool' nat_pool_id %}{% endblock %}
{% block modal-header %}{% trans "Update NAT Pool" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Update NAT Pool." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Update" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_service_policy_form{% endblock %}
{% block form_action %}{% url 'horizon:project:network_policy:update_service_policy' service_policy_id %}{% endblock %}
{% block modal-header %}{% trans "Update Service Policy" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Update Service Policy." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Update" %}" />
<a href="{% url 'horizon:project:network_policy:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,15 +0,0 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Network and Services' Policies" %}{% endblock %}
{% block page_header %}
{% include "horizon/common/_page_header.html" with title=_("Network and Services' Policies") %}
{% endblock page_header %}
{% block main %}
<div class="row">
<div class="col-sm-12">
{{ tab_group.render }}
</div>
</div>
{% endblock %}

View File

@ -13,11 +13,11 @@ from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from horizon import exceptions from horizon import exceptions
from horizon import forms
from horizon import tables from horizon import tables
from horizon import tabs from horizon import tabs
from gbpui import client from gbpui import client
from gbpui.common import forms as gbforms
import forms as np_forms import forms as np_forms
import tables as np_tables import tables as np_tables
@ -26,29 +26,37 @@ import tabs as np_tabs
class IndexView(tabs.TabbedTableView): class IndexView(tabs.TabbedTableView):
tab_group_class = (np_tabs.L3PolicyTabs) tab_group_class = (np_tabs.L3PolicyTabs)
template_name = 'project/network_policy/details_tabs.html' template_name = "gbpui/details_tabs.html"
page_title = _("Network and Services' Policies")
class AddL3policyView(forms.ModalFormView): class AddL3policyView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.AddL3PolicyForm form_class = np_forms.AddL3PolicyForm
template_name = "project/network_policy/add_l3policy.html"
def get_context_data(self, **kwargs): template_name = "gbpui/form_with_description.html"
context = super(AddL3policyView, self).get_context_data(**kwargs) submit_url = "horizon:project:network_policy:addl3policy"
return context modal_header = _("Add L3Policy")
submit_label = _("Create")
page_title = _("Add L3Policy")
help_text = _("Add L3 Policy.")
def get_initial(self): def get_initial(self):
return self.kwargs return self.kwargs
class L3PolicyUpdateView(forms.ModalFormView): class L3PolicyUpdateView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.UpdateL3PolicyForm form_class = np_forms.UpdateL3PolicyForm
template_name = "project/network_policy/update_l3policy.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:update_l3policy"
modal_header = _("Update L3Policy")
submit_label = _("Save Changes")
page_title = _("Update L3Policy")
help_text = _("Update L3Policy.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super(L3PolicyUpdateView, self).get_context_data(**kwargs) return {"l3policy_id": self.kwargs["l3policy_id"]}
context['l3policy_id'] = self.kwargs['l3policy_id']
return context
def get_initial(self): def get_initial(self):
return self.kwargs return self.kwargs
@ -76,26 +84,29 @@ class L3PolicyDetailsView(tables.MultiTableView):
return context return context
class AddL2policyView(forms.ModalFormView): class AddL2policyView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.AddL2PolicyForm form_class = np_forms.AddL2PolicyForm
template_name = "project/network_policy/add_l2policy.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:addl2policy"
def get_context_data(self, **kwargs): modal_header = _("Add L2Policy")
context = super(AddL2policyView, self).get_context_data(**kwargs) submit_label = _("Save Changes")
return context page_title = _("Add L2Policy")
help_text = _("Add L2Policy.")
def get_initial(self):
return self.kwargs
class L2PolicyUpdateView(forms.ModalFormView): class L2PolicyUpdateView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.UpdateL2PolicyForm form_class = np_forms.UpdateL2PolicyForm
template_name = "project/network_policy/update_l2policy.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:update_l2policy"
modal_header = _("Update L2Policy")
submit_label = _("Save Changes")
page_title = _("Update L2Policy")
help_text = _("Update L2Policy.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super(L2PolicyUpdateView, self).get_context_data(**kwargs) return {"l2policy_id": self.kwargs["l2policy_id"]}
context['l2policy_id'] = self.kwargs['l2policy_id']
return context
def get_initial(self): def get_initial(self):
return self.kwargs return self.kwargs
@ -103,81 +114,112 @@ class L2PolicyUpdateView(forms.ModalFormView):
class L2PolicyDetailsView(tabs.TabView): class L2PolicyDetailsView(tabs.TabView):
tab_group_class = (np_tabs.L2PolicyDetailsTabs) tab_group_class = (np_tabs.L2PolicyDetailsTabs)
template_name = 'project/network_policy/details_tabs.html' template_name = "gbpui/details_tabs.html"
page_title = _("L2 Policy Details")
class CreateServicePolicyView(forms.ModalFormView): class CreateServicePolicyView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.CreateServicePolicyForm form_class = np_forms.CreateServicePolicyForm
template_name = "project/network_policy/create_service_policy.html"
def get_context_data(self, **kwargs): template_name = "gbpui/form_with_description.html"
context = super( submit_url = "horizon:project:network_policy:create_servicepolicy"
CreateServicePolicyView, self).get_context_data(**kwargs) modal_header = _("Create Service Policy")
return context submit_label = _("Create")
page_title = _("Create Service Policy")
help_text = _("Create Service Policy.")
class AddExternalSegmentParamView(forms.ModalFormView): class AddExternalSegmentParamView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.CreateExternalSegmentParamForm form_class = np_forms.CreateExternalSegmentParamForm
template_name = "project/network_policy/create_external_segment_param.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:add_external_segment_param"
modal_header = _("Add External Segment Parameter")
submit_label = _("Create")
page_title = _("Add External Segment Parameter")
help_text = _("Add External Segment Parameter.")
def get_object_id(self, params): def get_object_id(self, params):
return params.name return params.name
class AddNetworkServiceParamView(forms.ModalFormView): class AddNetworkServiceParamView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.CreateNetworkServiceParamForm form_class = np_forms.CreateNetworkServiceParamForm
template_name = "project/network_policy/create_network_service_param.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:add_network_service_param"
modal_header = _("Add Network Service Parameter")
submit_label = _("Create")
page_title = _("Add Network Service Parameter")
help_text = _("Add Network Service Parameter.")
def get_object_id(self, params): def get_object_id(self, params):
return params.name return params.name
class AddExternalRouteParamView(forms.ModalFormView): class AddExternalRouteParamView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.CreateExternalRouteParamForm form_class = np_forms.CreateExternalRouteParamForm
template_name = "project/network_policy/create_external_route_param.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:add_external_route_param"
modal_header = _("Add External Route Parameter")
submit_label = _("Create")
page_title = _("Add External Route Parameter")
help_text = _("Add External Route Parameter.")
def get_object_id(self, params): def get_object_id(self, params):
return params.name return params.name
class UpdateNATPoolView(forms.ModalFormView): class UpdateNATPoolView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.UpdateNATPoolForm form_class = np_forms.UpdateNATPoolForm
template_name = "project/network_policy/update_nat_pool.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:update_natpool"
modal_header = _("Update NAT Pool")
submit_label = _("Save Changes")
page_title = _("Update NAT Pool")
help_text = _("Update NAT Pool.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super( return {"nat_pool_id": self.kwargs["nat_pool_id"]}
UpdateNATPoolView, self).get_context_data(**kwargs)
context['nat_pool_id'] = self.kwargs['nat_pool_id']
return context
def get_initial(self): def get_initial(self):
return self.kwargs return self.kwargs
class UpdateExternalConnectivityView(forms.ModalFormView): class UpdateExternalConnectivityView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.UpdateExternalConnectivityForm form_class = np_forms.UpdateExternalConnectivityForm
template_name = "project/network_policy/update_external_connectivity.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:update_externalconnectivity"
modal_header = _("Update External Connectivity")
submit_label = _("Save Changes")
page_title = _("Update External Connectivity")
help_text = _("Update External Connectivity.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super( return {
UpdateExternalConnectivityView, self).get_context_data(**kwargs) "external_connectivity_id": self.kwargs["external_connectivity_id"]
context['external_connectivity_id'] = \ }
self.kwargs['external_connectivity_id']
return context
def get_initial(self): def get_initial(self):
return self.kwargs return self.kwargs
class UpdateServicePolicyView(forms.ModalFormView): class UpdateServicePolicyView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.UpdateServicePolicyForm form_class = np_forms.UpdateServicePolicyForm
template_name = "project/network_policy/update_service_policy.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:update_service_policy"
modal_header = _("Update Service Policy")
submit_label = _("Save Changes")
page_title = _("Update Service Policy")
help_text = _("Update Service Policy.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super( return {"service_policy_id": self.kwargs["service_policy_id"]}
UpdateServicePolicyView, self).get_context_data(**kwargs)
context['service_policy_id'] = self.kwargs['service_policy_id']
return context
def get_initial(self): def get_initial(self):
return self.kwargs return self.kwargs
@ -185,40 +227,45 @@ class UpdateServicePolicyView(forms.ModalFormView):
class ServicePolicyDetailsView(tabs.TabView): class ServicePolicyDetailsView(tabs.TabView):
tab_group_class = (np_tabs.ServicePolicyDetailsTabs) tab_group_class = (np_tabs.ServicePolicyDetailsTabs)
template_name = 'project/network_policy/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Service Policy Details")
class CreateExternalConnectivityView(forms.ModalFormView): class CreateExternalConnectivityView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.CreateExternalConnectivityForm form_class = np_forms.CreateExternalConnectivityForm
template_name = "project/network_policy/create_external_connectivity.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:create_external_connectivity"
def get_context_data(self, **kwargs): modal_header = _("Create External Connectivity")
context = super( submit_label = _("Save Changes")
CreateExternalConnectivityView, self).get_context_data(**kwargs) page_title = _("Create External Connectivity")
return context help_text = _("Create External Connectivity.")
def get_success_url(self): def get_success_url(self):
return reverse('horizon:project:network_policy:index') return reverse('horizon:project:network_policy:index')
def get_object_id(self, external_segment):
return [external_segment.id]
class ExternalConnectivityDetailsView(tabs.TabView): class ExternalConnectivityDetailsView(tabs.TabView):
tab_group_class = (np_tabs.ExternalConnectivityDetailsTabs) tab_group_class = (np_tabs.ExternalConnectivityDetailsTabs)
template_name = 'project/network_policy/details_tabs.html' template_name = "gbpui/details_tabs.html"
page_title = _("External Connectivity Details")
class CreateNATPoolView(forms.ModalFormView): class CreateNATPoolView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = np_forms.CreateNATPoolForm form_class = np_forms.CreateNATPoolForm
template_name = "project/network_policy/create_nat_pool.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_policy:create_nat_pool"
modal_header = _("Create NAT Pool")
submit_label = _("Create")
page_title = _("Create NAT Pool")
help_text = _("Create NAT Pool.")
def get_context_data(self, **kwargs): def get_success_url(self):
context = super( return reverse('horizon:project:application_policy:index')
CreateNATPoolView, self).get_context_data(**kwargs)
return context
class NATPoolDetailsView(tabs.TabView): class NATPoolDetailsView(tabs.TabView):
tab_group_class = (np_tabs.NATPoolDetailsTabs) tab_group_class = (np_tabs.NATPoolDetailsTabs)
template_name = 'project/network_policy/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("NAT Pool Details")

View File

@ -298,91 +298,3 @@ class UpdateServiceChainSpecForm(CreateServiceChainSpecForm, BaseUpdateForm):
msg = _("Failed to update Service Chain Spec. %s") % (str(e)) msg = _("Failed to update Service Chain Spec. %s") % (str(e))
LOG.error(msg) LOG.error(msg)
exceptions.handle(request, msg, redirect=shortcuts.redirect) exceptions.handle(request, msg, redirect=shortcuts.redirect)
class CreateServiceChainInstanceForm(forms.SelfHandlingForm):
name = forms.CharField(max_length=80, label=_("Name"))
description = forms.CharField(
max_length=80, label=_("Description"), required=False)
servicechain_spec = forms.ChoiceField(label=_("ServiceChain Spec"))
provider_ptg = forms.ChoiceField(label=_("Provider PTG"))
consumer_ptg = forms.ChoiceField(label=_("Consumer PTG"))
classifier = forms.ChoiceField(label=_("Classifier"))
def __init__(self, request, *args, **kwargs):
super(CreateServiceChainInstanceForm, self).__init__(
request, *args, **kwargs)
try:
sc_specs = client.servicechainspec_list(request,
tenant_id=request.user.tenant_id)
ptgs = client.policy_target_list(request,
tenant_id=request.user.tenant_id)
ptgs = [(item.id, item.name) for item in ptgs]
classifiers = client.policyclassifier_list(request,
tenant_id=request.user.tenant_id)
self.fields['servicechain_spec'].choices = [
(item.id, item.name) for item in sc_specs]
self.fields['provider_ptg'].choices = ptgs
self.fields['consumer_ptg'].choices = ptgs
self.fields['classifier'].choices = [
(item.id, item.name) for item in classifiers]
except Exception:
msg = _("Failed to retrive policy targets")
LOG.error(msg)
def handle(self, request, context):
url = reverse("horizon:project:network_services:index")
try:
if context.get('name'):
context['name'] = html.escape(context['name'])
if context.get('description'):
context['description'] = html.escape(context['description'])
client.create_servicechain_instance(request, **context)
msg = _("Service Chain Instance Created Successfully!")
LOG.debug(msg)
return http.HttpResponseRedirect(url)
except Exception as e:
msg = _("Failed to create Service Chain Instance. %s") % (str(e))
LOG.error(msg)
exceptions.handle(request, msg, redirect=shortcuts.redirect)
class UpdateServiceChainInstanceForm(forms.SelfHandlingForm):
name = forms.CharField(max_length=80, label=_("Name"))
description = forms.CharField(
max_length=80, label=_("Description"), required=False)
servicechain_spec = forms.ChoiceField(label=_("ServiceChain Spec"))
def __init__(self, request, *args, **kwargs):
super(UpdateServiceChainInstanceForm, self).__init__(
request, *args, **kwargs)
try:
scinstance_id = self.initial['scinstance_id']
sc_specs = client.servicechainspec_list(request,
tenant_id=request.user.tenant_id)
self.fields['servicechain_spec'].choices = [
(item.id, item.name) for item in sc_specs]
scinstance = client.get_servicechain_instance(
request, scinstance_id)
for attr in ['name', 'description', 'servicechain_spec']:
self.fields[attr].initial = getattr(scinstance, attr)
except Exception:
pass
def handle(self, request, context):
url = reverse("horizon:project:network_services:index")
try:
scinstance_id = self.initial['scinstance_id']
if context.get('name'):
context['name'] = html.escape(context['name'])
if context.get('description'):
context['description'] = html.escape(context['description'])
client.update_servicechain_instance(
request, scinstance_id, **context)
msg = _("Service Chain Instance Created Successfully!")
LOG.debug(msg)
return http.HttpResponseRedirect(url)
except Exception as e:
msg = _("Failed to create Service Chain Instance. %s") % (str(e))
LOG.error(msg)
exceptions.handle(request, msg, redirect=shortcuts.redirect)

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}create_service_chain_instance{% endblock %}
{% block form_action %}{% url 'horizon:project:network_services:create_sc_instance' %}{% endblock %}
{% block modal-header %}{% trans "Create Service Chain Instance" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Create Service Chain Instance." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save Changes" %}" />
<a href="{% url 'horizon:project:network_services:create_sc_instance' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,26 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}create_service_chain_node{% endblock %}
{% block form_action %}{% url 'horizon:project:network_services:create_sc_node' %}{% endblock %}
{% block form_attrs %}enctype="multipart/form-data"{% endblock %}
{% block modal-header %}{% trans "Create Service Chain Node" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Create Service Chain Node." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save Changes" %}" />
<a href="{% url 'horizon:project:network_services:create_sc_node' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,26 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}create_service_profile_form{% endblock %}
{% block form_action %}{% url "horizon:project:network_services:create_service_profile" %}{% endblock %}
{% block modal_id %}create_service_profile_modal{% endblock %}
{% block modal-header %}{% trans "Create Service Profile" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description" %}:</h3>
<p>{% trans "Create Service Profile." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save changes" %}" />
<a href="{% url "horizon:project:network_services:index" %}" class="btn btn-default secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -4,7 +4,7 @@
<div class="info row detail"> <div class="info row detail">
<hr class="header_rule"> <hr class="header_rule">
<dl> <dl>
<dt>{% trans "Name" %}</dt> <dt>{% trans "Name" %}</dt>
<dd>{{ scspec.name|default:_("-") }}</dd> <dd>{{ scspec.name|default:_("-") }}</dd>
<dt>{% trans "Description" %}</dt> <dt>{% trans "Description" %}</dt>
@ -16,35 +16,35 @@
<dt>{% trans "Shared" %}</dt> <dt>{% trans "Shared" %}</dt>
<dd>{{ scspec.shared }}</dd> <dd>{{ scspec.shared }}</dd>
</dl> </dl>
{% if scspec.nodes %} {% if scspec.nodes %}
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading">Nodes</div> <div class="panel-heading">Nodes</div>
<div class="panel-body"> <div class="panel-body">
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
<th>Name</th> <th>Name</th>
<th>Service Profile</th> <th>Service Profile</th>
<th>Config</th> <th>Config</th>
</tr> </tr>
</thead> </thead>
{% for node in scspec.nodes %} {% for node in scspec.nodes %}
<tr> <tr>
<td> <td>
<a href="{% url 'horizon:project:network_services:sc_node_details' scnode_id=node.id %}"> <a href="{% url 'horizon:project:network_services:sc_node_details' scnode_id=node.id %}">
{{node.name}}</a> {{node.name}}</a>
</td> </td>
<td> <td>
<a href="{% url 'horizon:project:network_services:service_profile_details' sp_id=node.service_profile_id %}"> <a href="{% url 'horizon:project:network_services:service_profile_details' sp_id=node.service_profile_id %}">
{{ node.service_profile_id }}</a> {{ node.service_profile_id }}</a>
</td> </td>
<td> <td>
<div style ="white-space:pre;overflow-y: scroll;height:300px;background-color:#EEEEEE">{{node.config}}</div> <div style ="white-space:pre;overflow-y: scroll;height:300px;background-color:#EEEEEE">{{node.config}}</div>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>
</div> </div>
</div> </div>
{% endif %} {% endif %}
</div> </div>

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_service_chain_instance{% endblock %}
{% block form_action %}{% url 'horizon:project:network_services:update_sc_instance' scinstance_id %}{% endblock %}
{% block modal-header %}{% trans "Update Service Chain Instance" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Update Service Chain Instance." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save Changes" %}" />
<a href="{% url 'horizon:project:network_services:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,25 +0,0 @@
{% extends "horizon/common/_modal_form.html" %}
{% load i18n %}
{% load url from future %}
{% block form_id %}update_service_chain_node{% endblock %}
{% block form_action %}{% url 'horizon:project:network_services:update_sc_node' scnode_id %}{% endblock %}
{% block modal-header %}{% trans "Update Service Chain Node" %}{% endblock %}
{% block modal-body %}
<div class="left">
<fieldset>
{% include "horizon/common/_form_fields.html" %}
</fieldset>
</div>
<div class="right">
<h3>{% trans "Description:" %}</h3>
<p>{% trans "Update Service Chain Node." %}</p>
</div>
{% endblock %}
{% block modal-footer %}
<input class="btn btn-primary pull-right" type="submit" value="{% trans "Save Changes" %}" />
<a href="{% url 'horizon:project:network_services:index' %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>
{% endblock %}

View File

@ -1,15 +0,0 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Network Services" %}{% endblock %}
{% block page_header %}
{% include "horizon/common/_page_header.html" with title=_("Network Services") %}
{% endblock page_header %}
{% block main %}
<div class="row">
<div class="col-sm-12">
{{ tab_group.render }}
</div>
</div>
{% endblock %}

View File

@ -10,7 +10,6 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from django.conf.urls import url # noqa from django.conf.urls import url # noqa
import views import views
@ -41,12 +40,6 @@ urlpatterns = [
url(r'^sc_spec/(?P<scspec_id>[^/]+)/$', url(r'^sc_spec/(?P<scspec_id>[^/]+)/$',
views.ServiceChainSpecDetailsView.as_view(), views.ServiceChainSpecDetailsView.as_view(),
name='sc_spec_details'), name='sc_spec_details'),
url(r'^create_sc_instance$',
views.CreateServiceChainInstanceView.as_view(),
name='create_sc_instance'),
url(r'^update_sc_instance/(?P<scinstance_id>[^/]+)/$',
views.UpdateServiceChainInstanceView.as_view(),
name='update_sc_instance'),
url(r'^sc_instance/(?P<scinstance_id>[^/]+)/$', url(r'^sc_instance/(?P<scinstance_id>[^/]+)/$',
views.ServiceChainInstanceDetailsView.as_view(), views.ServiceChainInstanceDetailsView.as_view(),
name='sc_instance_details'), name='sc_instance_details'),

View File

@ -15,46 +15,56 @@ from horizon import tabs
import forms as ns_forms import forms as ns_forms
import tabs as ns_tabs import tabs as ns_tabs
from django.utils.translation import ugettext_lazy as _
from gbpui.common import forms as gbforms
class IndexView(tabs.TabbedTableView): class IndexView(tabs.TabbedTableView):
tab_group_class = (ns_tabs.ServiceChainTabs) tab_group_class = (ns_tabs.ServiceChainTabs)
template_name = 'project/network_services/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Network Services")
class ServiceProfileDetailsView(tabs.TabView): class ServiceProfileDetailsView(tabs.TabView):
tab_group_class = (ns_tabs.ServiceProfileDetailsTabGroup) tab_group_class = (ns_tabs.ServiceProfileDetailsTabGroup)
template_name = 'project/network_services/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Service Profile Details")
class CreateServiceProfileView(forms.ModalFormView): class CreateServiceProfileView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = ns_forms.CreateServiceProfileForm form_class = ns_forms.CreateServiceProfileForm
template_name = "project/network_services/create_service_profile.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_services:create_service_profile"
def get_context_data(self, **kwargs): modal_header = _("Create Service Profile")
context = super( submit_label = _("Create")
CreateServiceProfileView, self).get_context_data(**kwargs) page_title = _("Create Service Profile")
return context help_text = _("Create Service Profile.")
class CreateServiceChainNodeView(forms.ModalFormView): class CreateServiceChainNodeView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = ns_forms.CreateServiceChainNodeForm form_class = ns_forms.CreateServiceChainNodeForm
template_name = "project/network_services/create_service_chain_node.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_services:create_sc_node"
def get_context_data(self, **kwargs): modal_header = _("Create Service Chain Node")
context = super( submit_label = _("Create")
CreateServiceChainNodeView, self).get_context_data(**kwargs) page_title = _("Create Service Chain Node")
return context help_text = _("Create Service Chain Node.")
class UpdateServiceChainNodeView(forms.ModalFormView): class UpdateServiceChainNodeView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = ns_forms.UpdateServiceChainNodeForm form_class = ns_forms.UpdateServiceChainNodeForm
template_name = "project/network_services/update_service_chain_node.html" template_name = "gbpui/form_with_description.html"
submit_url = "horizon:project:network_services:update_sc_node"
modal_header = _("Update Service Chain Node")
submit_label = _("Save Changes")
page_title = _("Update Service Chain Node")
help_text = _("Update Service Chain Node.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super( return {"scnode_id": self.kwargs['scnode_id']}
UpdateServiceChainNodeView, self).get_context_data(**kwargs)
context['scnode_id'] = self.kwargs['scnode_id']
return context
def get_initial(self): def get_initial(self):
return self.kwargs return self.kwargs
@ -62,7 +72,8 @@ class UpdateServiceChainNodeView(forms.ModalFormView):
class ServiceChainNodeDetailsView(tabs.TabView): class ServiceChainNodeDetailsView(tabs.TabView):
tab_group_class = (ns_tabs.SCNodeDetailsTabGroup) tab_group_class = (ns_tabs.SCNodeDetailsTabGroup)
template_name = 'project/network_services/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Service Chain Node Details")
class CreateServiceChainSpecView(forms.ModalFormView): class CreateServiceChainSpecView(forms.ModalFormView):
@ -91,35 +102,11 @@ class UpdateServiceChainSpecView(forms.ModalFormView):
class ServiceChainSpecDetailsView(tabs.TabView): class ServiceChainSpecDetailsView(tabs.TabView):
tab_group_class = (ns_tabs.SCSpecDetailsTabGroup) tab_group_class = (ns_tabs.SCSpecDetailsTabGroup)
template_name = 'project/network_services/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Service Chain Spec Details")
class CreateServiceChainInstanceView(forms.ModalFormView):
form_class = ns_forms.CreateServiceChainInstanceForm
template_name = "project/network_services/" \
"create_service_chain_instance.html"
def get_context_data(self, **kwargs):
context = super(
CreateServiceChainInstanceView, self).get_context_data(**kwargs)
return context
class UpdateServiceChainInstanceView(forms.ModalFormView):
form_class = ns_forms.UpdateServiceChainInstanceForm
template_name = "project/network_services/" \
"update_service_chain_instance.html"
def get_context_data(self, **kwargs):
context = super(
UpdateServiceChainInstanceView, self).get_context_data(**kwargs)
context['scinstance_id'] = self.kwargs['scinstance_id']
return context
def get_initial(self):
return self.kwargs
class ServiceChainInstanceDetailsView(tabs.TabView): class ServiceChainInstanceDetailsView(tabs.TabView):
tab_group_class = (ns_tabs.SCInstanceDetailsTabGroup) tab_group_class = (ns_tabs.SCInstanceDetailsTabGroup)
template_name = 'project/network_services/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Service Chain Instance Details")

View File

@ -1,11 +0,0 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "Groups Details" %}{% endblock %}
{% block main %}
<div class="row">
<div class="col-sm-12">
{{ tab_group.render }}
</div>
</div>
{% endblock %}

View File

@ -12,13 +12,11 @@
import json import json
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse_lazy from django.core.urlresolvers import reverse_lazy
from django.http import HttpResponse # noqa from django.http import HttpResponse # noqa
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from horizon import exceptions from horizon import exceptions
from horizon import forms
from horizon import tabs from horizon import tabs
from horizon.utils import memoized from horizon.utils import memoized
from horizon import workflows from horizon import workflows
@ -45,7 +43,7 @@ AddExternalPTG = policy_target_workflows.AddExternalPTG
class IndexView(tabs.TabbedTableView): class IndexView(tabs.TabbedTableView):
tab_group_class = (PTGTabs) tab_group_class = (PTGTabs)
template_name = 'project/policytargets/details_tabs.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Groups") page_title = _("Groups")
@ -59,7 +57,7 @@ class AddExternalPTGView(workflows.WorkflowView):
class PTGDetailsView(tabs.TabbedTableView): class PTGDetailsView(tabs.TabbedTableView):
tab_group_class = (policy_target_tabs.PTGMemberTabs) tab_group_class = (policy_target_tabs.PTGMemberTabs)
template_name = 'project/policytargets/group_details.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Group: {{ policy_target.name }}") page_title = _("Group: {{ policy_target.name }}")
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
@ -75,7 +73,7 @@ class PTGDetailsView(tabs.TabbedTableView):
class ExternalPTGDetailsView(tabs.TabbedTableView): class ExternalPTGDetailsView(tabs.TabbedTableView):
tab_group_class = (policy_target_tabs.ExternalPTGMemberTabs) tab_group_class = (policy_target_tabs.ExternalPTGMemberTabs)
template_name = 'project/policytargets/group_details.html' template_name = 'gbpui/details_tabs.html'
page_title = _("Group: {{ policy_target.name }}") page_title = _("Group: {{ policy_target.name }}")
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
@ -92,7 +90,6 @@ class ExternalPTGDetailsView(tabs.TabbedTableView):
class LaunchVMView(workflows.WorkflowView): class LaunchVMView(workflows.WorkflowView):
workflow_class = policy_target_workflows.LaunchInstance workflow_class = policy_target_workflows.LaunchInstance
template_name = "project/policytargets/add_vm.html"
def get_initial(self): def get_initial(self):
initial = super(LaunchVMView, self).get_initial() initial = super(LaunchVMView, self).get_initial()
@ -101,7 +98,8 @@ class LaunchVMView(workflows.WorkflowView):
return initial return initial
class UpdatePTGView(forms.ModalFormView): class UpdatePTGView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.UpdatePolicyTargetForm form_class = policy_target_forms.UpdatePolicyTargetForm
form_id = "update_policy_target_form" form_id = "update_policy_target_form"
modal_header = _("Edit Group") modal_header = _("Edit Group")
@ -113,16 +111,10 @@ class UpdatePTGView(forms.ModalFormView):
page_title = _("Edit Group") page_title = _("Edit Group")
help_text = _("You may update group details here.") help_text = _("You may update group details here.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super(UpdatePTGView, self).get_context_data(**kwargs) return {
obj_id = self.kwargs['policy_target_id'] "policy_target_id": self.kwargs["policy_target_id"]
context["policy_target_id"] = obj_id }
obj = self._get_object()
if obj:
context['name'] = obj.name
context["submit_url"] = reverse(self.submit_url, args=(obj_id,))
context["help_text"] = self.help_text
return context
@memoized.memoized_method @memoized.memoized_method
def _get_object(self, *args, **kwargs): def _get_object(self, *args, **kwargs):
@ -141,7 +133,8 @@ class UpdatePTGView(forms.ModalFormView):
return self.kwargs return self.kwargs
class UpdateExternalPTGView(forms.ModalFormView): class UpdateExternalPTGView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.UpdateExternalPolicyTargetForm form_class = policy_target_forms.UpdateExternalPolicyTargetForm
form_id = "update_policy_target_form" form_id = "update_policy_target_form"
modal_header = _("Edit Group") modal_header = _("Edit Group")
@ -153,16 +146,10 @@ class UpdateExternalPTGView(forms.ModalFormView):
page_title = _("Edit Group") page_title = _("Edit Group")
help_text = _("You may update external policy details here.") help_text = _("You may update external policy details here.")
def get_context_data(self, **kwargs): def get_submit_url_params(self, **kwargs):
context = super(UpdateExternalPTGView, self).get_context_data(**kwargs) return {
obj_id = self.kwargs['ext_policy_target_id'] "ext_policy_target_id": self.kwargs["ext_policy_target_id"]
context["ext_policy_target_id"] = obj_id }
obj = self._get_object()
if obj:
context['name'] = obj.name
context["submit_url"] = reverse(self.submit_url, args=(obj_id,))
context["help_text"] = self.help_text
return context
@memoized.memoized_method @memoized.memoized_method
def _get_object(self, *args, **kwargs): def _get_object(self, *args, **kwargs):
@ -181,7 +168,8 @@ class UpdateExternalPTGView(forms.ModalFormView):
return self.kwargs return self.kwargs
class ExtAddProvidedPRSView(gbforms.ReversingModalFormView): class ExtAddProvidedPRSView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.ExtAddProvidedPRSForm form_class = policy_target_forms.ExtAddProvidedPRSForm
form_id = "ext_add_provided_form" form_id = "ext_add_provided_form"
modal_header = _("Add Provided PRS") modal_header = _("Add Provided PRS")
@ -202,7 +190,8 @@ class ExtAddProvidedPRSView(gbforms.ReversingModalFormView):
return self.kwargs return self.kwargs
class ExtRemoveProvidedPRSView(gbforms.ReversingModalFormView): class ExtRemoveProvidedPRSView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.ExtRemoveProvidedPRSForm form_class = policy_target_forms.ExtRemoveProvidedPRSForm
form_id = "ext_remove_provided_form" form_id = "ext_remove_provided_form"
modal_header = _("Remove Provided PRS") modal_header = _("Remove Provided PRS")
@ -223,7 +212,8 @@ class ExtRemoveProvidedPRSView(gbforms.ReversingModalFormView):
return self.kwargs return self.kwargs
class AddProvidedPRSView(gbforms.ReversingModalFormView): class AddProvidedPRSView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.AddProvidedPRSForm form_class = policy_target_forms.AddProvidedPRSForm
form_id = "add_provided_form" form_id = "add_provided_form"
modal_header = _("Add Provided PRS") modal_header = _("Add Provided PRS")
@ -244,7 +234,8 @@ class AddProvidedPRSView(gbforms.ReversingModalFormView):
return self.kwargs return self.kwargs
class RemoveProvidedPRSView(gbforms.ReversingModalFormView): class RemoveProvidedPRSView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.RemoveProvidedPRSForm form_class = policy_target_forms.RemoveProvidedPRSForm
form_id = "remove_provided_form" form_id = "remove_provided_form"
modal_header = _("Remove Provided PRS") modal_header = _("Remove Provided PRS")
@ -265,7 +256,8 @@ class RemoveProvidedPRSView(gbforms.ReversingModalFormView):
return self.kwargs return self.kwargs
class ExtAddConsumedPRSView(gbforms.ReversingModalFormView): class ExtAddConsumedPRSView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.ExtAddConsumedPRSForm form_class = policy_target_forms.ExtAddConsumedPRSForm
form_id = "ext_add_consumed_form" form_id = "ext_add_consumed_form"
modal_header = _("Add Policy Rule Set") modal_header = _("Add Policy Rule Set")
@ -286,7 +278,8 @@ class ExtAddConsumedPRSView(gbforms.ReversingModalFormView):
return self.kwargs return self.kwargs
class ExtRemoveConsumedPRSView(gbforms.ReversingModalFormView): class ExtRemoveConsumedPRSView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.ExtRemoveConsumedPRSForm form_class = policy_target_forms.ExtRemoveConsumedPRSForm
form_id = "remove_contract_form" form_id = "remove_contract_form"
modal_header = _("Remove Policy Rule Set") modal_header = _("Remove Policy Rule Set")
@ -307,7 +300,8 @@ class ExtRemoveConsumedPRSView(gbforms.ReversingModalFormView):
return self.kwargs return self.kwargs
class AddConsumedPRSView(gbforms.ReversingModalFormView): class AddConsumedPRSView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.AddConsumedPRSForm form_class = policy_target_forms.AddConsumedPRSForm
form_id = "add_consumed_form" form_id = "add_consumed_form"
modal_header = _("Add ") modal_header = _("Add ")
@ -328,7 +322,8 @@ class AddConsumedPRSView(gbforms.ReversingModalFormView):
return self.kwargs return self.kwargs
class RemoveConsumedPRSView(gbforms.ReversingModalFormView): class RemoveConsumedPRSView(gbforms.HelpTextModalMixin,
gbforms.ReversingModalFormView):
form_class = policy_target_forms.RemoveConsumedPRSForm form_class = policy_target_forms.RemoveConsumedPRSForm
form_id = "remove_contract_form" form_id = "remove_contract_form"
modal_header = _("Remove Policy Rule Set") modal_header = _("Remove Policy Rule Set")

View File

@ -1,6 +1,6 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% load i18n %} {% load i18n %}
{% block title %}{% trans "Groups" %}{% endblock %} {% block title %}{{ page_title }}{% endblock %}
{% block main %} {% block main %}
<div class="row"> <div class="row">