Exemplo n.º 1
0
def view_logs(request):

    # Exclude logs about the logged in user (moderator)
    logs = (
        ModerationLogMsg.objects.exclude(pertains_to=request.user)
        .order_by("-msg_datetime")
        .select_related("pertains_to", "logged_by")
    )

    form = FilterLogsForm()

    # TODO: Get logged in user's timezone
    # TODO: Apply activate() to logged in user's timezone
    # TODO: Get user's preferred timezone

    local_tz = timezone.get_current_timezone()
    today = timezone.now().astimezone(local_tz)

    if request.method == "GET":
        form = FilterLogsForm(request.GET)

        if form.is_valid():

            msg_type = form.cleaned_data["msg_type"]
            period = form.cleaned_data["period"]

            if period == "TODAY":
                start, end = get_date_limits(start_date=today)

            elif period == "YESTERDAY":
                yesterday = today - timezone.timedelta(days=1)
                start, end = get_date_limits(start_date=yesterday)

            elif period == "THIS_WEEK":
                start_date = today - timezone.timedelta(days=7)
                end_date = today

                start, end = get_date_limits(start_date, end_date)

            elif period == "CUSTOM":
                start_date = form.cleaned_data["start_date"]
                end_date = form.cleaned_data["end_date"]

                start, end = get_date_limits(start_date, end_date)

            # Filter Logs
            if msg_type != "ALL":
                logs = logs.filter(msg_type=msg_type)

            if period != "ALL":
                logs = logs.filter(msg_datetime__gte=start, msg_datetime__lte=end)

    context = {"form": form, "logs": logs}

    return render(request, "moderation/logs.html", context)
Exemplo n.º 2
0
    def test_date_limits_with_one_date(self):
        date = datetime.datetime(2011, 8, 15, 8, 15, 12, 0, pytz.UTC)
        expected_start = datetime.datetime(2011, 8, 15, 0, 0, 0, 0, pytz.UTC)
        expected_end = datetime.datetime(2011, 8, 15, 23, 59, 59, 999999, pytz.UTC)

        start, end = get_date_limits(date)

        self.assertEqual(start, expected_start)
        self.assertEqual(end, expected_end)
Exemplo n.º 3
0
    def test_date_limits_with_one_date(self):
        date = datetime.datetime(2011, 8, 15, 8, 15, 12, 0, pytz.UTC)
        expected_start = datetime.datetime(2011, 8, 15, 0, 0, 0, 0, pytz.UTC)
        expected_end = datetime.datetime(2011, 8, 15, 23, 59, 59, 999999,
                                         pytz.UTC)

        start, end = get_date_limits(date)

        self.assertEqual(start, expected_start)
        self.assertEqual(end, expected_end)
Exemplo n.º 4
0
    def test_date_limits_with_two_dates(self):
        day_1 = datetime.datetime(2011, 8, 15, 8, 15, 12, 0, pytz.UTC)
        day_2 = datetime.datetime(2011, 9, 1, 8, 15, 12, 0, pytz.UTC)

        expected_start = datetime.datetime(2011, 8, 15, 0, 0, 0, 0, pytz.UTC)
        expected_end = datetime.datetime(2011, 9, 1, 23, 59, 59, 999999, pytz.UTC)

        start, end = get_date_limits(day_1, day_2)

        self.assertEqual(start, expected_start)
        self.assertEqual(end, expected_end)
Exemplo n.º 5
0
    def test_date_limits_with_non_UTC_timezone(self):
        london = pytz.timezone('Europe/London')
        # 1st August in London is equal to UTC+1 due to DST
        day = london.localize(datetime.datetime(2014, 8, 1, 8, 15, 12, 0))

        expected_start = datetime.datetime(2014, 7, 31, 23, 0, 0, 0, pytz.UTC)
        expected_end = datetime.datetime(2014, 8, 1, 22, 59, 59, 999999, pytz.UTC)

        start, end = get_date_limits(day)

        self.assertEqual(start, expected_start)
        self.assertEqual(end, expected_end)
Exemplo n.º 6
0
    def test_date_limits_with_two_dates(self):
        day_1 = datetime.datetime(2011, 8, 15, 8, 15, 12, 0, pytz.UTC)
        day_2 = datetime.datetime(2011, 9, 1, 8, 15, 12, 0, pytz.UTC)

        expected_start = datetime.datetime(2011, 8, 15, 0, 0, 0, 0, pytz.UTC)
        expected_end = datetime.datetime(2011, 9, 1, 23, 59, 59, 999999,
                                         pytz.UTC)

        start, end = get_date_limits(day_1, day_2)

        self.assertEqual(start, expected_start)
        self.assertEqual(end, expected_end)
Exemplo n.º 7
0
    def test_date_limits_with_non_UTC_timezone(self):
        london = pytz.timezone('Europe/London')
        # 1st August in London is equal to UTC+1 due to DST
        day = london.localize(datetime.datetime(2014, 8, 1, 8, 15, 12, 0))

        expected_start = datetime.datetime(2014, 7, 31, 23, 0, 0, 0, pytz.UTC)
        expected_end = datetime.datetime(2014, 8, 1, 22, 59, 59, 999999,
                                         pytz.UTC)

        start, end = get_date_limits(day)

        self.assertEqual(start, expected_start)
        self.assertEqual(end, expected_end)
Exemplo n.º 8
0
def view_logs(request):

    # Exclude logs about the logged in user (moderator)
    logs = ModerationLogMsg.objects.exclude(
        pertains_to=request.user
    ).order_by(
        '-msg_datetime'
    ).select_related(
        'pertains_to',
        'logged_by',
    )

    form = FilterLogsForm()

    # TODO: Get logged in user's timezone
    # TODO: Apply activate() to logged in user's timezone
    # TODO: Get user's preferred timezone

    local_tz = timezone.get_current_timezone()
    today = timezone.now().astimezone(local_tz)

    if request.method == 'GET':
        form = FilterLogsForm(request.GET)

        if form.is_valid():

            msg_type = form.cleaned_data['msg_type']
            period = form.cleaned_data['period']

            if period == 'TODAY':
                start, end = get_date_limits(start_date=today)

            elif period == 'YESTERDAY':
                yesterday = today - timezone.timedelta(days=1)
                start, end = get_date_limits(start_date=yesterday)

            elif period == 'THIS_WEEK':
                start_date = today - timezone.timedelta(days=7)
                end_date = today

                start, end = get_date_limits(start_date, end_date)

            elif period == 'CUSTOM':
                start_date = form.cleaned_data['start_date']
                end_date = form.cleaned_data['end_date']

                start, end = get_date_limits(start_date, end_date)

            # Filter Logs
            if msg_type != 'ALL':
                logs = logs.filter(msg_type=msg_type)

            if period != 'ALL':
                logs = logs.filter(msg_datetime__gte=start,
                                   msg_datetime__lte=end)

    context = {
        'form': form,
        'logs': logs,
    }

    return render(request, 'moderation/logs.html', context)
Exemplo n.º 9
0
def view_logs(request):

    # Exclude logs about the logged in user (moderator)
    logs = ModerationLogMsg.objects.exclude(
        pertains_to=request.user
    ).order_by(
        '-msg_datetime'
    ).select_related(
        'pertains_to',
        'logged_by',
    )

    form = FilterLogsForm()

    # TODO: Get logged in user's timezone
    # TODO: Apply activate() to logged in user's timezone
    # TODO: Get user's preferred timezone

    local_tz = timezone.get_current_timezone()
    today = timezone.now().astimezone(local_tz)

    if request.method == 'GET':
        form = FilterLogsForm(request.GET)

        if form.is_valid():

            msg_type = form.cleaned_data['msg_type']
            period = form.cleaned_data['period']

            if period == 'TODAY':
                start, end = get_date_limits(start_date=today)

            elif period == 'YESTERDAY':
                yesterday = today - timezone.timedelta(days=1)
                start, end = get_date_limits(start_date=yesterday)

            elif period == 'THIS_WEEK':
                start_date = today - timezone.timedelta(days=7)
                end_date = today

                start, end = get_date_limits(start_date, end_date)

            elif period == 'CUSTOM':
                start_date = form.cleaned_data['start_date']
                end_date = form.cleaned_data['end_date']

                start, end = get_date_limits(start_date, end_date)

            # Filter Logs
            if msg_type != 'ALL':
                logs = logs.filter(msg_type=msg_type)

            if period != 'ALL':
                logs = logs.filter(msg_datetime__gte=start,
                                   msg_datetime__lte=end)

    context = {
        'form': form,
        'logs': logs,
    }

    return render(request, 'moderation/logs.html', context)