| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- from django.shortcuts import render, get_object_or_404
- from django.http import HttpResponseRedirect
- from django.urls import reverse
- from django.forms import modelformset_factory
- #from django.views import generic
- from django.contrib.auth.decorators import login_required, permission_required
- from website.settings import APPLICATION_NAME
- from rotbot.models import Network, Host, Channel, User, Message, Action, Notice, Join, Kick, CurseWord, CurseAdjective
- from rotbot.forms import CurseWordForm, CurseAdjectiveForm
- from rotbot.views.common import default_keywords, shorten_number, total_messages
- def index(request):
- networks = Network.objects.all()
- hosts = Host.objects.all()
- channels = Channel.objects.all()
- users = User.objects.all()
- joins = Join.objects.all()
- kicks = Kick.objects.all()
- messages = Message.objects.all()
- actions = Action.objects.all()
- notices = Notice.objects.all()
- cursewords = CurseWord.objects.all()
- context = {
- 'title': 'RotBot',
- 'icon': 'hashtag',
- 'description': 'Index of RotBot',
- 'keywords': default_keywords('index'),
- 'total_networks':shorten_number(networks.count()),
- 'total_hosts':shorten_number(hosts.count()),
- 'total_channels':shorten_number(channels.count()),
- 'total_users':shorten_number(users.count()),
- 'total_joins':shorten_number(joins.count()),
- 'total_kicks':shorten_number(kicks.count()),
- 'total_messages':shorten_number(messages.count()),
- 'total_actions':shorten_number(actions.count()),
- 'total_notices':shorten_number(notices.count()),
- 'total_cursewords':shorten_number(cursewords.count()),
- }
- return render(request, 'rotbot/index.html', context)
- def user(request, user_slug):
- user = get_object_or_404(User, slug=user_slug)
- network = Network.objects.get(id=user.network.id)
- messages = Message.objects.filter(user=user)
- actions = Action.objects.filter(user=user)
- notices = Notice.objects.filter(user=user)
- joins = Join.objects.filter(user=user)
- kicks = Kick.objects.filter(kicker=user)
- kicked = Kick.objects.filter(kicked=user)
- context = {
- 'parent_title': network.name,
- 'parent_url': reverse('rotbot:network', args=(network.slug,)),
- 'parent_icon': 'sitemap',
- 'title': user.name,
- 'icon': 'hashtag',
- 'description': 'Details of user %s on network %s' % (user.name, network.name),
- 'keywords': default_keywords() + '%s, %s' % (network.name, user.name),
- 'user': user,
- 'network': network,
- 'total_messages': shorten_number(total_messages(messages)),
- 'total_actions': shorten_number(total_messages(actions)),
- 'total_notices': shorten_number(total_messages(notices)),
- 'total_joins': shorten_number(joins.count()),
- 'total_kicks': shorten_number(kicked.count()),
- 'total_kicked': shorten_number(kicked.count()),
- }
- return render(request, 'rotbot/user.html', context)
- @login_required
- @permission_required('rotbot.add_curseword', raise_exception=True)
- def add_curseword(request):
- CurseWordFormSet = modelformset_factory(CurseWord, form=CurseWordForm, extra=4)
- CurseAdjectiveFormSet = modelformset_factory(CurseAdjective, form=CurseAdjectiveForm, extra=4)
- if request.method == 'POST':
- curseword_formset = CurseWordFormSet(request.POST)
- curseadjective_formset = CurseAdjectiveFormSet(request.POST)
- if curseword_formset.is_valid() and curseadjective_formset.is_valid():
- new_cursewords = curseword_formset.save(commit=False)
- new_curseadjectives = curseadjective_formset.save(commit=False)
- for record in new_cursewords:
- record.word = record.word.lower()
- record.save()
- for record in new_curseadjectives:
- record.word = record.word.lower()
- record.save()
- return HttpResponseRedirect(reverse('rotbot:networks'))
- else:
- curseword_formset = CurseWordFormSet(queryset=CurseWord.objects.none())
- curseadjective_formset = CurseWordFormSet(queryset=CurseAdjective.objects.none())
- else: # Not a POST request.
- curseword_formset = CurseWordFormSet(queryset=CurseWord.objects.none())
- curseadjective_formset = CurseAdjectiveFormSet(queryset=CurseAdjective.objects.none())
- context = {
- 'parent_title': 'RotBot',
- 'parent_url': reverse('rotbot:networks'),
- 'parent_icon': 'sitemap',
- 'title': 'Add curseword',
- 'icon': 'book dead',
- 'description': 'Add a curseword to RotBot\'s vocabulary.',
- 'keywords': default_keywords(),
- 'curseword_formset': curseword_formset,
- 'curseadjective_formset': curseadjective_formset,
- }
- return render(request, 'rotbot/add_curseword.html', context)
|