Browse Source

refactoring ip_address field, and make one template for abon viewing

devel
Dmitry 8 years ago
parent
commit
ceea3e45a6
  1. 7
      abonapp/forms.py
  2. 65
      abonapp/templates/abonapp/editAbon.html
  3. 78
      abonapp/templates/abonapp/viewAbon.html

7
abonapp/forms.py

@ -36,14 +36,17 @@ def generate_random_password():
class AbonForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(AbonForm, self).__init__(*args, **kwargs)
if self.instance is not None and self.instance.group is not None:
abon_group_queryset = models.AbonStreet.objects.filter(group=self.instance.group)
instance = getattr(self, 'instance')
if instance is not None and instance.group is not None:
abon_group_queryset = models.AbonStreet.objects.filter(group=instance.group)
elif 'group' in self.initial.keys() and self.initial['group'] is not None:
abon_group_queryset = models.AbonStreet.objects.filter(group=self.initial['group'])
else:
abon_group_queryset = None
if abon_group_queryset is not None:
self.fields['street'].queryset = abon_group_queryset
if instance is not None and instance.is_dynamic_ip:
self.fields['ip_address'].widget.attrs['readonly'] = True
username = forms.CharField(max_length=127, required=False, initial=generate_random_username,
widget=forms.TextInput(attrs={

65
abonapp/templates/abonapp/editAbon.html

@ -10,7 +10,12 @@
<h3 class="panel-title">{% trans 'Change subscriber' %}</h3>
</div>
<div class="panel-body">
<form autocomplete="off" class="form-horizontal" action="{% url 'abonapp:abon_home' group.pk abon.username %}" method="post">{% csrf_token %}
{% if perms.abonapp.change_abon %}
{% url 'abonapp:abon_home' group.pk abon.username as ahlink %}
{% endif %}
<form autocomplete="off" class="form-horizontal" action="{{ ahlink|default:'#' }}" method="post">{% csrf_token %}
{% bootstrap_field form.username label_class='col-sm-4' field_class='col-sm-8' form_group_class='form-group-sm' %}
{% bootstrap_field form.fio label_class='col-sm-4' field_class='col-sm-8' form_group_class='form-group-sm' %}
@ -35,19 +40,19 @@
</div>
</div>
<div class="form-group-sm{% if is_bad_ip %} has-error{% endif %}">
<label for="id_ip" class="col-sm-4 control-label">{% trans 'Ip Address' %}</label>
<div class="col-sm-8">
<div class="input-group input-group-sm">
<input type="text" value="{{ ip|default:'' }}" class="form-control" name="ip" placeholder="{% trans 'Not assigned' %}" id="ipfield" pattern="^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"{% if abon.is_dynamic_ip %} disabled{% endif %}/>
<span class="input-group-btn">
<a href="{% url 'abonapp:reset_ip' group.pk abon.username %}" class="btn btn-default btn-cmd" data-toggle="tooltip" title="{% trans 'Reset ip' %}" onclick="$('#ipfield').val('');">
<span class="glyphicon glyphicon-refresh"></span>
</a>
</span>
</div>
</div>
</div>
{# Ip address field #}
{% trans 'Reset ip' as tx %}
{% url 'abonapp:reset_ip' group.pk abon.username as url %}
{% bootstrap_button '' button_type='link' icon='refresh' button_class='btn-default btn-cmd' id='iprefreshbtn' href=url size='sm' title=tx as bt %}
{% bootstrap_field form.ip_address label_class='col-sm-4' field_class='col-sm-8' form_group_class='form-group-sm' addon_after_class='input-group-btn' addon_after=bt %}
<script type="text/javascript">
$(function () {
$("#iprefreshbtn").on('click', function(){
$("#{{ form.ip_address.id_for_label }}").val('');
});
});
</script>
{% bootstrap_field form.street label_class='col-sm-4' field_class='col-sm-8' form_group_class='form-group-sm' %}
{% bootstrap_field form.house label_class='col-sm-4' field_class='col-sm-8' form_group_class='form-group-sm' %}
@ -74,11 +79,21 @@
<div class="col-sm-offset-4 col-sm-8 btn-group btn-group-sm">
{% trans 'Save' as tx %}
{% bootstrap_button tx button_type='submit' icon='floppy-disk' button_class='btn-primary' %}
{% if perms.abonapp.change_abon %}
{% bootstrap_button tx button_type='submit' icon='floppy-disk' button_class='btn-primary' %}
{% else %}
{% bootstrap_button tx button_type='button' icon='floppy-disk' button_class='btn-primary disabled' %}
{% endif %}
{% if perms.taskapp.add_task %}
<a href="{% url 'taskapp:add' %}?uid={{ abon.username }}" class="btn btn-success" title="{% trans 'Add new task' %}">
<span class="glyphicon glyphicon-plus"></span> <span class="hidden-xs">{% trans 'Add new task' %}</span>
<span class="glyphicon glyphicon-plus"></span>
<span class="hidden-xs">{% trans 'Add new task' %}</span>
</a>
{% else %}
<a href="#" class="btn btn-success disabled" title="{% trans 'Permission denied' %}">
<span class="glyphicon glyphicon-plus"></span>
<span class="hidden-xs">{% trans 'Add new task' %}</span>
</a>
{% endif %}
</div>
@ -86,10 +101,16 @@
<div class="form-group-sm">
<div class="col-sm-offset-4 col-sm-8 btn-group btn-group-sm">
{% if ip and perms.abonapp.can_ping %}
<a href="{% url 'abonapp:ping' %}" class="btn btn-default btn-cmd" title="Ping" data-param="{{ ip }}">
<span class="glyphicon glyphicon-flash"></span> Ping
</a>
{% if form.ip_address.value %}
{% if perms.abonapp.can_ping %}
<a href="{% url 'abonapp:ping' %}" class="btn btn-default btn-cmd" title="Ping" data-param="{{ form.ip_address.value }}">
<span class="glyphicon glyphicon-flash"></span> Ping
</a>
{% else %}
<a href="#" class="btn btn-default disabled" title="{% trans 'Permission denied' %}">
<span class="glyphicon glyphicon-flash"></span> Ping
</a>
{% endif %}
{% else %}
<a href="#" class="btn btn-default disabled">
<span class="glyphicon glyphicon-flash"></span> {% trans 'No have ip' %}
@ -100,6 +121,10 @@
<a href="{% url 'dialapp:send_sms' %}?path={{ request.path|urlencode }}&dst={{ form.telephone.value|urlencode }}" class="btn btn-default btn-modal">
<span class="glyphicon glyphicon-envelope"></span> {% trans 'Send sms' %}
</a>
{% else %}
<a href="#" class="btn btn-default disabled" title="{% trans 'Permission denied' %}">
<span class="glyphicon glyphicon-envelope"></span> {% trans 'Send sms' %}
</a>
{% endif %}
</div>
</div>

78
abonapp/templates/abonapp/viewAbon.html

@ -1,78 +0,0 @@
{% extends request.is_ajax|yesno:'nullcont.htm,abonapp/ext.htm' %}
{% load i18n %}
{% block content %}
<div class="row">
<div class="col-sm-6">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{% trans 'View the subscriber' %}</h3>
</div>
<div class="panel-body">
<table class="table borderbot">
<tbody>
<tr>
<td>{% trans 'User group' %}</td>
<td>
<i>{{ abon.group|default:_('Not assigned') }}</i>
</td>
</tr>
<tr>
<td>{% trans 'Is active' %}</td>
<td>
<i>{{ abon.is_active|yesno:_('yes,no') }}</i>
</td>
</tr>
<tr>
<td>{% trans 'login' %}</td>
<td><i>{{ abon.username|default:_('Not assigned') }}</i></td>
</tr>
<tr>
<td>{% trans 'fio' %}</td>
<td><i>{{ abon.fio|default:_('Not assigned') }}</i></td>
</tr>
<tr>
<td>{% trans 'Telephone' %}</td>
<td><i>{{ abon.telephone|default:_('Not assigned') }}</i></td>
</tr>
<tr>
<td>{% trans 'Street' %}</td>
<td>
<i>{{ abon.street|default:_('Not assigned') }}</i>
</td>
</tr>
<tr>
<td>{% trans 'House' %}</td>
<td><i>{{ abon.house|default:_('Not assigned') }}</i></td>
</tr>
<tr>
<td>{% trans 'Ip Address' %}</td>
<td><i>{{ abon.ip_address|default:_('Not assigned') }}</i></td>
</tr>
<tr>
<td>{% trans 'Password' %}</td>
<td><i>{{ passw }}</i></td>
</tr>
</tbody>
</table>
{% if abon.description %}<p>{{ abon.description }}</p>{% endif %}
</div>
</div>
</div>
<div class="col-sm-6">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{% trans 'User flags' %}</h3>
</div>
<div class="panel-body">
{% for user_icon in abon.get_flag_icons %}
<span class="m-icon {{ user_icon }}"></span>
{% endfor %}
</div>
</div>
</div>
</div>
{% endblock %}
Loading…
Cancel
Save