From 689ea1ee3568621bf51e69112b024c4db042077a Mon Sep 17 00:00:00 2001 From: "luxagraf@c63593aa-01b0-44d9-8516-4b9c7e931d7f" Date: Sat, 19 Jun 2010 18:22:28 +0000 Subject: added mobile middleware and templates --- lib/mobile_middleware/__init__.py | 0 lib/mobile_middleware/mobile_detect.py | 31 ++++++++++++ settings_mobile.py | 22 ++++++++ templates/mobile/archives/homepage.html | 1 + templates/mobile/base.html | 89 +++++++++++++++++++++++++++++++++ 5 files changed, 143 insertions(+) create mode 100644 lib/mobile_middleware/__init__.py create mode 100644 lib/mobile_middleware/mobile_detect.py create mode 100644 settings_mobile.py create mode 100644 templates/mobile/archives/homepage.html create mode 100644 templates/mobile/base.html diff --git a/lib/mobile_middleware/__init__.py b/lib/mobile_middleware/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/mobile_middleware/mobile_detect.py b/lib/mobile_middleware/mobile_detect.py new file mode 100644 index 0000000..6f5b998 --- /dev/null +++ b/lib/mobile_middleware/mobile_detect.py @@ -0,0 +1,31 @@ +from django.http import HttpResponseRedirect +import re +mobile_url = 'http://m.luxagraf.net/' +agents_list = [ + 'Nokia','bMOT','^LGE?b','SonyEricsson', + 'Ericsson','BlackBerry','DoCoMo','Symbian', + 'Windows CE','NetFront','Klondike','PalmOS', + 'PalmSource','portalmm','S[CG]H-','bSAGEM', + 'SEC-','jBrowser-WAP','Mitsu','Panasonic-', + 'SAMSUNG-','Samsung-','Sendo','SHARP-', + 'Vodaphone','BenQ','iPAQ','AvantGo', + 'Go.Web','Sanyo-','AUDIOVOX','PG-', + 'CDM[-d]','^KDDI-','^SIE-','TSM[-d]', + '^KWC-','WAP','^KGT [NC]','iPhone', +] +def is_mobile(user_agent): + for agent in agents_list: + if re.search(agent, user_agent): + return True + return False + +class MobileRedirect(object): + def process_request(self, request): + if not request.session.get('checked_ua', False): + if is_mobile(request.META['HTTP_USER_AGENT']): + request.session['checked_ua'] = True + return HttpResponseRedirect(mobile_url) + else: + # Make sure it doesn't try this again + request.session['checked_ua'] = True + return None \ No newline at end of file diff --git a/settings_mobile.py b/settings_mobile.py new file mode 100644 index 0000000..6aa3a6b --- /dev/null +++ b/settings_mobile.py @@ -0,0 +1,22 @@ +from settings import * +from os.path import dirname, abspath + +PROJ_ROOT = abspath(dirname(__file__))+'/' +DEBUG = True +TEMPLATE_DEBUG = DEBUG +MIDDLEWARE_CLASSES = ( + 'django.middleware.cache.UpdateCacheMiddleware', + 'django.middleware.gzip.GZipMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.middleware.doc.XViewMiddleware', + 'pagination.middleware.PaginationMiddleware', + 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', + 'django.middleware.cache.FetchFromCacheMiddleware', + +) + +TEMPLATE_DIRS = ( + PROJ_ROOT+'templates/mobile', +) \ No newline at end of file diff --git a/templates/mobile/archives/homepage.html b/templates/mobile/archives/homepage.html new file mode 100644 index 0000000..63913c1 --- /dev/null +++ b/templates/mobile/archives/homepage.html @@ -0,0 +1 @@ +{% extends "base.html" %} \ No newline at end of file diff --git a/templates/mobile/base.html b/templates/mobile/base.html new file mode 100644 index 0000000..f9c383b --- /dev/null +++ b/templates/mobile/base.html @@ -0,0 +1,89 @@ + + + + {% block pagetitle %}Luxagraf Mobile - Topografical Writings{% endblock %} + + + + + + + + {%block stylesheet%}{%endblock%} + + + + + + + + + + + + + +{%block extrahead%}{%endblock%} + + + +
+
+ +

Luxagraf

+

{a travelogue}

+
+ +
+ + {% block primary %} +
+ +
+ {% endblock %} + {% block extrabody %} {% endblock %} + +
+ + {% block js %}{% endblock%} + + \ No newline at end of file -- cgit v1.2.3