Skip to content

Instantly share code, notes, and snippets.

@dcramer
Created June 4, 2013 03:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dcramer/5703297 to your computer and use it in GitHub Desktop.
Save dcramer/5703297 to your computer and use it in GitHub Desktop.
class ConfigurationView(BaseView):
def get_conf_key(self):
raise NotImplementedError
def get_form_class(self, request):
raise NotImplementedError
def render(self, request, template, context=None, **kwargs):
from sentry.web.helpers import render_to_response
if not context:
context = {}
if self.context:
context.update(self.context)
context.update(csrf(request))
return render_to_response(self.template, context, request)
def success(self, request):
messages.add_message(
request, messages.SUCCESS,
_('Changes to your project were saved.'))
return HttpResponseRedirect(request.path)
def dispatch(self, request, team_slug, **kwargs):
team = Team.objects.get_from_cache(slug=team_slug)
super(ConfigurationView, self).dispatch(request, team, **kwargs)
@never_cache
def post(self, request, team, **kwargs):
return self.get(request, **kwargs)
@never_cache
def get(self, request, team, **kwargs):
form = self.get_form_class(request.POST or None)
if form.is_valid():
config = form.cleaned_data
TeamOption.objects.set_value(team, self.get_conf_key(), config)
return self.success(request)
return self.render(request, self.template, {
'form': form,
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment