Exemple #1
0
 def render(self, context):
     obj = resolve_variable(self.object,context)
     if not self.server:
         request = context['request']
         server = request.server
     else:
         server = resolve_variable(self.server,context)
     if is_plugin_enabled(server, obj):
         return self.nodelist_true.render(context)
     else:
         return self.nodelist_false.render(context)     
Exemple #2
0
def client_detail(request, id):
    server = get_object_or_404(Server,uuid=request.server)

    if not is_plugin_enabled(server, 'ctime'):
        raise Http404
    
    client = get_object_or_404(Client, id=id, using=request.server)
    
    data = get_player_activity(client)

    return {'client': client, 'activity': data}
Exemple #3
0
 def render(self, context):
     obj = resolve_variable(self.object,context)
     request = context['request']
     
     server_list = request.server_list
     m = False
     for s in server_list:
         if is_plugin_enabled(s, obj):
             m = True
             break
     
     if m:
         return self.nodelist_true.render(context)
     else:
         return self.nodelist_false.render(context) 
Exemple #4
0
def home(request):
    if not is_plugin_enabled(request.server, 'follow'):
        messages.info(request, _('This function is not enabled on this server.'))
        return {'client_list': None}  

    query = Follow.objects.using(request.server).all().order_by('-time_add')
    
    # Make sure page request is an int. If not, deliver first page.
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1

    paginator = Paginator(query, settings.ITEMS_PER_PAGE)
    # If page request (9999) is out of range, deliver last page of results.
    try:
        lista = paginator.page(page)
    except (EmptyPage, InvalidPage):
        lista = paginator.page(paginator.num_pages)
                
    return {'client_list': lista}
Exemple #5
0
def chatlist(request):
    if not is_plugin_enabled(request.server, 'chatlog'):
        messages.info(request, _('This function is not enabled for this server.'))
        return {'chat_list': None}        
    
    chats = ChatLog.objects.using(request.server).all()

    # Make sure page request is an int. If not, deliver first page.   
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1
    
    search = None
    highlight = None
    if request.GET.has_key('search'):
        form = ChatLogSearch(request.GET)
        if form.is_valid():
            search = {}
            for k,v in request.GET.items():
                search[k]=v
            data = form.cleaned_data
            name = data['name']
            if len(name)>0:
                if re.search('^[@]{1}[0-9]*$',name):
                    chats = chats.filter(client__id=name[1:])
                elif re.search('^\+[@]{1}[0-9]*$',name):
                    highlight = int(name[2:])
                elif re.search('^[0-9]*$',name):
                    chats = chats.filter(client__id=name)
                else:
                    messages.warning(request, _('Invalid search term.'))
                    chats = chats.filter(client__id=0)
                # there is not performance at all in this search.
                # lets disable it 
                #else:
                #    chats = chats.filter(Q(client__name__istartswith=name) | Q(client__aliases__alias__istartswith=name)).distinct()
            datefrom = data['datefrom']
            if datefrom:
                chats = chats.filter(time_add__gte=time.mktime(datefrom.timetuple()))
            dateto = data['dateto']
            if dateto:
                chats = chats.filter(time_add__lte=time.mktime(dateto.timetuple()))
            text = data['text']
            if text:
                #chats = chats.filter(message__icontains=text)
                chats = chats.filter(message__search=text)
    else:
        form = ChatLogSearch()

    if search:
        search = urllib.urlencode(search)
            
    paginator = Paginator(chats, settings.ITEMS_PER_PAGE)
    # If page request (9999) is out of range, deliver last page of results.
    try:
        lista = paginator.page(page)
    except (EmptyPage, InvalidPage):
        lista = paginator.page(paginator.num_pages)

    return {'chat_list': lista,
            'form': form,
            'search': search,
            'highlight': highlight}
Exemple #6
0
        logger.exception(str(e))
        raise
    
    online = None
    server = Server.objects.get(uuid=request.server)
    if is_plugin_installed('status'):
        try:
            from b3portal.plugins.status.models import ServerStatus
            status = ServerStatus.objects.filter(server=server).latest()
            online = status.is_online(client.id)
        except Exception, e:
            logger.exception(str(e))

    playedtime = None
    playedlastmonth = None
    if is_plugin_enabled(server, 'ctime'):
        try:
            from b3portal.plugins.ctime import functions as ctime
            from common.utils.timesince import minutes_to_string
            ptime = ctime.get_total_playtime(client, request.server)
            playedtime = {'start': ptime['since'], 'total': minutes_to_string(ptime['total'])}
            if (datetime.datetime.now() - ptime['since']).days > 30:
                ptime = ctime.get_total_playtime(client, request.server, 30)
                playedlastmonth = {'start': ptime['since'], 'total': minutes_to_string(ptime['total'])}
        except Exception, e:
            logger.exception(str(e))
            
#    if has_server_perm(request.user, perm.VIEW_AUDITLOGS, request.server):
#        client_auditlogs = _paginate(request, Auditor.objects.get_by_client(client.id, request.server)) 
#    else:
#        client_auditlogs = _paginate(request, Auditor.objects.get_by_client_n_user(client.id, request.server, request.user))