Browse Source

Create date filter in dialing app

devel
bashmak 8 years ago
parent
commit
564a83b4af
  1. 4
      dialing_app/models.py
  2. 22
      dialing_app/templates/index.html
  3. 27
      dialing_app/views.py

4
dialing_app/models.py

@ -1,4 +1,5 @@
from django.db import models
from datetime import datetime
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
@ -60,7 +61,8 @@ class AsteriskCDR(models.Model):
return "%s/monitor" % path
def url(self):
return "%s/%s-%s-%s.wav" % ( self.path_to_media(), self.calldate.strftime('%Y/%m/%d/%H_%M'), self.src, self.dst )
if type(self.calldate) is datetime:
return "%s/%s-%s-%s.wav" % (self.path_to_media(), self.calldate.strftime('%Y/%m/%d/%H_%M'), self.src, self.dst)
class Meta:
db_table = 'cdr'

22
dialing_app/templates/index.html

@ -31,6 +31,24 @@
</div>
</div>
</div>
<div class="form-group">
<label class="sr-only" for="dialtime">{% trans 'Find by dates' %}</label>
<div class="input-group input-group-sm">
<input type="text" class="form-control" id="dialtime" placeholder="{% trans 'calldate' %}" name="sd"{% if sd %} value="{{ sd }}"{% endif %}>
<script type="text/javascript">
$(function () {
$('#dialtime').datetimepicker({
format: 'YYYY-MM-DD'
});
});
</script>
<div class="input-group-btn">
<button class="btn btn-default" type="submit">
<span class="glyphicon glyphicon-search"></span>
</button>
</div>
</div>
</div>
</form>
</th>
</tr>
@ -42,9 +60,9 @@
<td class="btn-group btn-group-xs btn-group-justify">
<button class="btn btn-default player-btn disabled">
<span class="glyphicon glyphicon-play"></span>
<audio preload="metadata" src="{{ lurl }}"></audio>
<audio preload="metadata" src="{{ lurl|default:'#' }}"></audio>
</button>
<a href="{{ lurl }}" class="btn btn-default disabled" target="_blank" title="{% trans 'Download' %}">
<a href="{{ lurl|default:'#' }}" class="btn btn-default disabled" target="_blank" title="{% trans 'Download' %}">
<span class="glyphicon glyphicon-download-alt"></span>
</a>
</td>

27
dialing_app/views.py

@ -1,3 +1,4 @@
from datetime import datetime
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.shortcuts import render, redirect
@ -66,12 +67,30 @@ def vmail_report(request):
@login_required
@only_admins
def vfilter(request):
cdr_q = None
sd = request.GET.get('sd')
s = request.GET.get('s')
cdr_q = Q(src__icontains=s) | Q(dst__icontains=s)
cdr = AsteriskCDR.objects.filter(cdr_q)
if s:
cdr_q = Q(src__icontains=s) | Q(dst__icontains=s)
try:
if sd:
sd_date = datetime.strptime(sd, '%Y-%m-%d')
if cdr_q:
cdr_q |= Q(calldate__date=sd_date)
else:
cdr_q = Q(calldate__date=sd_date)
except ValueError:
messages.error(request, _('Make sure that your date format is correct'))
if cdr_q is None:
cdr = AsteriskCDR.objects.all()
else:
cdr = AsteriskCDR.objects.filter(cdr_q)
cdr = pag_mn(request, cdr)
return render(request, 'index.html', {
'logs': cdr,
'title': _('Find dials'),
's': s
's': s,
'sd': sd
})
Loading…
Cancel
Save