Skip to content
Snippets Groups Projects
Forked from infrastruktur / warpinfra
56 commits behind the upstream repository.
views.py 1.84 KiB
from warpauth.util import *
from django.conf import settings
from django.http import HttpResponse
from warpmain.models import News, NewsForm
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from warpzone.util import send_to_mattermost
import markdown
from django.utils.html import escape

@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None)
def index(request, news_id=0):
    news_form = None
    if request.user.is_superuser:
        if request.method == "POST":
            news_form = NewsForm(request.POST)
            if news_form.is_valid():
                news = news_form.save()
                news.user = request.user.ldap_username
                news.save()
                send_to_mattermost(news.user, "town-square","### "+news.title+"\n"+news.message)
                return redirect("News")
            else:
                page_context['collapse'] = "in"
        else:
            news_form = NewsForm()
            if news_id != 0:
                news_form = NewsForm(News.objects.get(id=news_id))

    page_context['create_news_form'] = news_form
    page_context['news_list'] = []
    news_list = News.objects.order_by("-created")
    for news in news_list:
        news.message = markdown.markdown(escape(news.message), extensions=['markdown.extensions.nl2br','markdown.extensions.sane_lists'])
        page_context['news_list'].append(news)
    return HttpResponse(render(request, 'warpmain/main.html', page_context))


def about(request):
    return HttpResponse(render(request, 'warpmain/about.html', page_context))


@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None)
def delete_news(request, news_id=0):
    if request.user.is_superuser:
        try:
            News.objects.get(id=news_id).delete()
        except:
            pass

    return redirect("News")