You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

54 lines
1.4 KiB

# -*- 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