from ipaddr import *
from django.core.urlresolvers import reverse
from django.contrib.auth.models import User
-from django.db.models import Avg, Max, Min, Count
+import datetime
+
class RouteForm(forms.ModelForm):
return self.cleaned_data["destination"]
except Exception:
raise forms.ValidationError('Invalid network address format')
+
+ def clean_expires(self):
+ date = self.cleaned_data['expires']
+ if date:
+ range_days = (date - datetime.date.today()).days
+ if range_days > 0 and range_days < 11:
+ return self.cleaned_data["expires"]
+ else:
+ raise forms.ValidationError('Invalid date range')
def clean(self):
name = self.cleaned_data.get('name', None)
status = models.CharField(max_length=20, choices=ROUTE_STATES, blank=True, null=True, verbose_name="Status", default="PENDING")
# is_online = models.BooleanField(default=False)
# is_active = models.BooleanField(default=False)
- expires = models.DateField(default=days_offset, blank=True, null=True,)
+ expires = models.DateField(default=days_offset)
response = models.CharField(max_length=512, blank=True, null=True)
comments = models.TextField(null=True, blank=True, verbose_name="Comments")
@login_required
@never_cache
-def add_then(request):
- applier = request.user.pk
- if request.method == "GET":
- form = RouteForm()
- return render_to_response('apply.html', {'form': form, 'applier': applier},
- context_instance=RequestContext(request))
-
- else:
- form = RouteForm(request.POST)
- if form.is_valid():
- route=form.save(commit=False)
- route.applier = request.user
- route.expires = days_offset()
- route.save()
- form.save_m2m()
- route.commit_add()
- return HttpResponseRedirect(reverse("group-routes"))
- else:
- return render_to_response('apply.html', {'form': form, 'applier':applier},
- context_instance=RequestContext(request))
-
-@login_required
-@never_cache
def edit_route(request, route_slug):
applier = request.user.pk
applier_peer = request.user.get_profile().peer
$("#id_port").css('width', '100px').attr('size', '5');
$("#id_destinationport").css('width', '100px').attr('size', '5');
$('#id_then').attr("multiple", "");
+ $( "#id_expires" ).datepicker({ dateFormat: 'yy-mm-dd' , maxDate: '+10d', minDate: '+1d', changeMonth: false, changeYear: false }).datepicker( $.datepicker.regional[ "el" ] );
$('#then_diag').dialog({
height: 220,
width: 340,
</table>
</fieldset>
<fieldset>
+<legend>{% trans "Expiration" %}</legend>
+<table>
+<tr><th>{{ form.expires.label_tag }}</th><td>{{ form.expires }}<span class="error">{{ form.expires.errors|join:", " }}</span></td></tr>
+</table>
+</fieldset>
+<fieldset>
<legend>{% trans "Use/Comments" %}</legend>
{% blocktrans %}
<p>Give a short description of the intended use of this rule, that justifies the parameter selection above. Feel free to include any additional comments.</p>