def library(request, username=None): if username: user = get_object_or_404(User, username=username) else: return redirect('user.views.library', username=request.user.username) return render(request, 'user/library.html', { 'owner': user, 'preload_data': { 'owner': serializers.serialize_user(user, request.user), 'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None, 'records': [serializers.serialize_record(r, include_has_newer_episode=user == request.user) for r in user.record_set.all()], }, })
def get(self, request, name=None): if name: user = get_object_or_404(User, username=name) else: user = request.user if not user.is_authenticated(): self.raise_error('Not logged in', 403) return serialize_user(user, request.user)
def post(self, request): form = UserCreationForm(request.POST) if form.is_valid(): user = form.save() user.backend = 'django.contrib.auth.backends.ModelBackend' login(request, user) request.session.set_expiry(0) request.session.save() return {'ok': True, 'user': serialize_user(user), 'session_key': request.session.session_key} return {'ok': False, 'errors': form.errors}
def post_detail(request, id): post = get_object_or_404(History, id=id) preload_data = { 'post': serializers.serialize_post(post, include_user=True), 'work': serializers.serialize_work(post.work), 'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None, 'daum_api_key': settings.DAUM_API_KEY, 'chart': _get_chart(), } return render(request, 'post.html', { 'title': post.record.title, 'preload_data': preload_data, 'html': _call_backend('post', preload_data), })
def index(request): preload_data = { 'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None, 'chart': _get_chart(), 'posts': _get_timeline(), } try: resp = requests.post(settings.RENDER_BACKEND_URL + 'index', json=preload_data, timeout=settings.RENDER_BACKEND_TIMEOUT) html = resp.content except Exception as e: html = '<!-- Render server not responding: %s -->' % e return render(request, "index.html", { 'preload_data': preload_data, 'html': html, })
def _render(request, template_name, period, exclude_continuous=False): indexes = WorkPeriodIndex.objects.filter(period=str(period)).all() if exclude_continuous: # Only include new or split-cour animes prev_period = str(period.prev()) indexes = filter(lambda i: prev_period not in i.work.metadata["periods"], indexes) data = [serializers.serialize_work(index.work, request.user) for index in indexes] return render( request, template_name, { "period": period, "preload_data": { "period": str(period), "current_user": serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None, "schedule": data, }, }, )
def detail(request, chart_class, range_class=None, title=''): if range_class: range = range_class.last() chart = compare_charts(chart_class(range), chart_class(range.prev())) else: range = None chart = chart_class() cache_key = 'chart/' + str(chart_class) + '_' + repr(range) chart_json = cache.get(cache_key) if not chart_json: chart_json = serialize_chart(chart, 100) cache.set(cache_key, chart_json, 7200) return render(request, 'chart.html', { 'title': title, 'preload_data': { 'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None, 'title': title, 'chart': chart_json, 'has_diff': range != None, } })
def detail(request, title): work = _get_work(title) preload_data = { 'title': title, 'work': serializers.serialize_work(work, request.user), 'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None, 'daum_api_key': settings.DAUM_API_KEY, 'chart': _get_chart(), } content_data = { 'title': title, 'preload_data': preload_data, 'html': _call_backend('work', preload_data), } try: studios = u','.join(preload_data['work']['metadata']['studios']) content_data.update({ 'meta_description': u'{} 제작'.format(studios), 'meta_keywords': u','.join([title, studios]), }) except KeyError: pass return render(request, "work.html", content_data)
def get(self, request, name): user = get_object_or_404(User, username=name) return serialize_user(user, request.user)