# -*- coding: utf-8 -*- import re import datetime from django.shortcuts import get_object_or_404 from django.core.cache import cache from accounts.models import User from emencia.django.newsletter.models import Contact def get_referer(request, default=None): referer = request.META.get('HTTP_REFERER') if not referer: return default # remove the protocol and split the url at the slashes referer = re.sub('^https?:\/\/', '', referer).split('/') # add the slash at the relative path's view and finished referer = u'/' + u'/'.join(referer[1:]) return referer def split_params(st): st = st.split('/') params = [] for item in st: n = item.find('-') if n != -1: params.append({'type': item[:n], 'url':item[n+1:]}) return params def dates_range(date1, date2): delta = date2 - date1 dates = [] for i in range(delta.days + 1): dates.append(date1 + datetime.timedelta(days=i)) return dates def get_user(url): try: url = int(url) user = get_object_or_404(User, id=url) except ValueError: user = get_object_or_404(User, url=url) return user def get_subscribers_count(): key = 'contact_count' count = cache.get(key) if count is None: count = Contact.objects.valid_subscribers().filter(from_users=False).count() cache.set(key, count, datetime.timedelta(days=1).total_seconds()) return count