def get(self, request): if 'package' not in request.GET: raise Http404 if not get_web_package(request.GET['package']): raise Http404 return render(request, self.template_name, { 'package': request.GET['package'], 'emails': request.user.emails.all(), })
def get(self, request): if 'package_name' not in self.request.GET: raise Http404 package_name = self.request.GET.get('package_name').lower() package = get_web_package(package_name) if package is not None: return redirect(package) else: return render(request, 'core/package_search.html', { 'package_name': package_name })
def post(self, request): package = request.POST.get('package', None) emails = request.POST.getlist('email', None) if not package or not emails: raise Http404 # Remember selected emails via session variable request.session['selected_emails'] = emails # Check whether the logged in user is associated with the given emails users_emails = [e.email for e in request.user.emails.all()] for email in emails: if email not in users_emails: return HttpResponseForbidden() _pkg = get_web_package(package) _err = None if _pkg: try: for email in emails: Subscription.objects.create_for( package_name=package, email=email) except ValidationError as e: _err = e.message else: _err = format_html( "Package {pkg} does not exist.", pkg=package, ) if request.is_ajax(): json_result = {'status': 'ok'} if _err is not None: json_result = { 'status': 'failed', 'error': _err, } return render_to_json_response(json_result) else: if _err: return HttpResponseBadRequest(_err) _next = request.POST.get('next', None) return safe_redirect( _next, resolve_url('dtracker-package-page', package_name=package), )
def package_page(request, package_name): """ Renders the package page. """ package = get_web_package(package_name) if not package: raise Http404 if package.get_absolute_url() not in (urlquote(request.path), request.path): return redirect(package) is_subscribed = False if request.user.is_authenticated(): # Check if the user is subscribed to the package is_subscribed = request.user.is_subscribed_to(package) return render(request, 'core/package.html', { 'package': package, 'panels': get_panels_for_package(package, request), 'is_subscribed': is_subscribed, })
def get_object(self, request, package_name): package = get_web_package(package_name) if package is None: raise Http404 return package