35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import logging
|
|
from django.contrib import messages
|
|
from django.contrib.auth import login
|
|
from django.http import HttpResponseRedirect
|
|
from django.utils.translation import ugettext as _
|
|
from django.views import generic
|
|
|
|
from .. import models
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class OneClickActionRunView(generic.DetailView):
|
|
model = models.OneClickAction
|
|
template_name = 'dav_events/oneclickaction.html'
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
self.object = self.get_object()
|
|
result = self.object.run()
|
|
|
|
if 'login' in result:
|
|
user = result['login']
|
|
login(self.request, user)
|
|
logger.info('Logged in via OneClickAction: %s', user.username)
|
|
messages.success(self.request,
|
|
_(u'Benutzer angemeldet: %(username)s') % {'username': user.username})
|
|
|
|
if 'location' in result:
|
|
return HttpResponseRedirect(result['location'])
|
|
|
|
context = self.get_context_data(object=self.object)
|
|
if 'context' in result:
|
|
context.update(result['context'])
|
|
return self.render_to_response(context)
|