Example #1
0
    def get_device_from_user_agent(self, ua):

        try:
            device = Device.get_from_user_agent(ua)
        except NoMatch:
            device = None
        
        return device
Example #2
0
 def process_request(self, request):
     """
     Detect the accessing device from the user agent
     and add it to the request
     """
     try:
         ua = request.META.get('HTTP_X_DEVICE_USER_AGENT', '') or request.META.get('HTTP_USER_AGENT', '') or request.META.get('HTTP_CLIENT_IP', '')
         request.device = Device.get_from_user_agent(ua)
     except NoMatch:
         request.device = None
Example #3
0
    def search_wurfl_view(self, request):

        if not self.has_add_permission(request):
            raise PermissionDenied
        
        context = RequestContext(request)
        
        opts = self.model._meta
        app_label = opts.app_label

        context.update({
            'opts': opts,
            'root_path': getattr(self.admin_site, 'root_path', None),
            'has_add_permission': self.has_add_permission(request),
            'current_app': self.admin_site.name,
            'app_label': app_label,
            'original': 'Search',
            'model_admin': self
        })

        if request.method == 'GET':
            form = WurflSearchForm()
        else:
            form = WurflSearchForm(data=request.POST)
            if form.is_valid():
                user_agent = form.cleaned_data['user_agent']
                if user_agent:
                    if form.cleaned_data['test']:
                        try:
                            devices = Device.get_from_user_agent(user_agent)
                        except:
                            devices = None
                    else:
                        ds = Device.objects.filter(user_agent=user_agent)
                        ds = ds.order_by('-actual_device_root')
                        devices = []
                        for d in ds:
                            d._build_full_capabilities()
                            devices.append(d)

                    if not hasattr(devices, '__iter__'):
                        devices = [devices]

                    context['form'] = WurflSearchForm(data=request.POST)
                    context['devices'] = devices
                    context['user_agent'] = user_agent
        context['media'] = self.media + form.media
        context['adminform'] = form
        
        return render_to_response('admin/wurfl/search.html', context, context_instance=RequestContext(request))
Example #4
0
def UALookup(request):
    device = None
    
    if request.method == 'GET':
        form = UALookupForm(request.GET)
        if form.is_valid():
            cd = form.cleaned_data
            try:
                device = Device.get_from_user_agent(cd['userAgent'])
            except NoMatch:
                device = None
    else:
        form = UALookupForm()
    
    return render_to_response('wurfl/lookup.html', {'form':form, 'device':device})