From 3526b2b5cf0d836a9110868ae1dba5bc13fe2c74 Mon Sep 17 00:00:00 2001 From: ilearnit Date: Thu, 15 Mar 2018 16:44:10 +0800 Subject: [PATCH] FIx feature removed issue in Django1.10. `render_to_response()` -> `render()`, remove `context_instance` arg in `render_to_string()' --- seahub/api2/views.py | 3 - seahub/auth/admin.py | 8 +- seahub/auth/views.py | 36 ++++----- seahub/base/decorators.py | 12 +-- seahub/contacts/views.py | 8 +- seahub/group/views.py | 20 ++--- seahub/institutions/views.py | 20 ++--- seahub/invitations/views.py | 8 +- seahub/notifications/views.py | 11 ++- seahub/oauth/views.py | 27 +++---- seahub/profile/views.py | 10 +-- seahub/share/decorators.py | 11 ++- seahub/thumbnail/views.py | 6 +- seahub/utils/__init__.py | 10 +-- seahub/views/__init__.py | 34 ++++---- seahub/views/ajax.py | 14 ++-- seahub/views/file.py | 52 ++++++------ seahub/views/repo.py | 25 +++--- seahub/views/sysadmin.py | 135 +++++++++++++++----------------- seahub/views/wiki.py | 15 ++-- thirdpart/registration/views.py | 24 +++--- 21 files changed, 225 insertions(+), 264 deletions(-) diff --git a/seahub/api2/views.py b/seahub/api2/views.py index fed4ff2157..7e40928d7a 100644 --- a/seahub/api2/views.py +++ b/seahub/api2/views.py @@ -25,10 +25,7 @@ from django.contrib.sites.models import RequestSite from django.db import IntegrityError from django.db.models import F from django.http import HttpResponse -from django.template import RequestContext -from django.template.loader import render_to_string from django.template.defaultfilters import filesizeformat -from django.shortcuts import render_to_response from django.utils import timezone from django.utils.translation import ugettext as _ diff --git a/seahub/auth/admin.py b/seahub/auth/admin.py index 2ba6078951..da54714016 100644 --- a/seahub/auth/admin.py +++ b/seahub/auth/admin.py @@ -8,8 +8,8 @@ from django.contrib.auth.models import User, Group from django.contrib import messages from django.core.exceptions import PermissionDenied from django.http import HttpResponseRedirect, Http404 -from django.shortcuts import render_to_response, get_object_or_404 -from django.template import RequestContext +from django.shortcuts import render, get_object_or_404 + from django.utils.html import escape from django.utils.decorators import method_decorator from django.utils.translation import ugettext, ugettext_lazy as _ @@ -121,7 +121,7 @@ class UserAdmin(admin.ModelAdmin): fieldsets = [(None, {'fields': form.base_fields.keys()})] adminForm = admin.helpers.AdminForm(form, fieldsets, {}) - return render_to_response(self.change_user_password_template or 'admin/auth/user/change_password.html', { + return render(request, self.change_user_password_template or 'admin/auth/user/change_password.html', { 'title': _('Change password: %s') % escape(user.username), 'adminForm': adminForm, 'form': form, @@ -136,7 +136,7 @@ class UserAdmin(admin.ModelAdmin): 'save_as': False, 'show_save': True, 'root_path': self.admin_site.root_path, - }, context_instance=RequestContext(request)) + }) admin.site.register(Group, GroupAdmin) diff --git a/seahub/auth/views.py b/seahub/auth/views.py index 907a593f76..af476080b2 100644 --- a/seahub/auth/views.py +++ b/seahub/auth/views.py @@ -7,10 +7,10 @@ from django.conf import settings from django.views.decorators.csrf import csrf_protect from django.core.urlresolvers import reverse from django.contrib import messages -from django.shortcuts import render_to_response +from django.shortcuts import render from django.contrib.sites.models import Site, RequestSite from django.http import HttpResponseRedirect, Http404 -from django.template import RequestContext + from django.utils.http import urlquote, base36_to_int, is_safe_url from django.utils.translation import ugettext as _ from django.views.decorators.cache import never_cache @@ -189,7 +189,7 @@ def login(request, template_name='registration/login.html', login_bg_image_path = get_login_bg_image_path() - return render_to_response(template_name, { + return render(request, template_name, { 'form': form, redirect_field_name: redirect_to, 'site': current_site, @@ -201,7 +201,7 @@ def login(request, template_name='registration/login.html', 'enable_adfs_login': enable_adfs_login, 'enable_oauth': enable_oauth, 'login_bg_image_path': login_bg_image_path, - }, context_instance=RequestContext(request)) + }) def login_simple_check(request): """A simple check for login called by thirdpart systems(OA, etc). @@ -259,9 +259,9 @@ def logout(request, next_page=None, if redirect_to: return HttpResponseRedirect(redirect_to) else: - return render_to_response(template_name, { + return render(request, template_name, { 'title': _('Logged out') - }, context_instance=RequestContext(request)) + }) else: # Redirect to this page until the session has been cleared. return HttpResponseRedirect(next_page or request.path) @@ -309,19 +309,19 @@ def password_reset(request, is_admin_site=False, template_name='registration/pas except Exception, e: logger.error(str(e)) messages.error(request, _(u'Failed to send email, please contact administrator.')) - return render_to_response(template_name, { + return render(request, template_name, { 'form': form, - }, context_instance=RequestContext(request)) + }) else: return HttpResponseRedirect(post_reset_redirect) else: form = password_reset_form() - return render_to_response(template_name, { + return render(request, template_name, { 'form': form, - }, context_instance=RequestContext(request)) + }) def password_reset_done(request, template_name='registration/password_reset_done.html'): - return render_to_response(template_name, context_instance=RequestContext(request)) + return render(request, template_name) # Doesn't need csrf_protect since no-one can guess the URL def password_reset_confirm(request, uidb36=None, token=None, template_name='registration/password_reset_confirm.html', @@ -340,8 +340,7 @@ def password_reset_confirm(request, uidb36=None, token=None, template_name='regi except (ValueError, User.DoesNotExist): user = None - context_instance = RequestContext(request) - + context_instance = {} if token_generator.check_token(user, token): context_instance['validlink'] = True if request.method == 'POST': @@ -355,11 +354,10 @@ def password_reset_confirm(request, uidb36=None, token=None, template_name='regi context_instance['validlink'] = False form = None context_instance['form'] = form - return render_to_response(template_name, context_instance=context_instance) + return render(request, template_name, context_instance) def password_reset_complete(request, template_name='registration/password_reset_complete.html'): - return render_to_response(template_name, context_instance=RequestContext(request, - {'login_url': settings.LOGIN_URL})) + return render(request, template_name, {'login_url': settings.LOGIN_URL}) @csrf_protect @login_required @@ -386,13 +384,13 @@ def password_change(request, template_name='registration/password_change_form.ht else: form = password_change_form(user=request.user) - return render_to_response(template_name, { + return render(request, template_name, { 'form': form, 'min_len': config.USER_PASSWORD_MIN_LENGTH, 'strong_pwd_required': config.USER_STRONG_PASSWORD_REQUIRED, 'level': config.USER_PASSWORD_STRENGTH_LEVEL, 'force_passwd_change': request.session.get('force_passwd_change', False), - }, context_instance=RequestContext(request)) + }) def password_change_done(request, template_name='registration/password_change_done.html'): - return render_to_response(template_name, context_instance=RequestContext(request)) + return render(request, template_name) diff --git a/seahub/base/decorators.py b/seahub/base/decorators.py index dff8b366aa..49ebf5b393 100644 --- a/seahub/base/decorators.py +++ b/seahub/base/decorators.py @@ -1,8 +1,8 @@ # Copyright (c) 2012-2016 Seafile Ltd. from django.core.urlresolvers import reverse from django.http import Http404, HttpResponseRedirect, HttpResponseNotAllowed -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render + from django.utils.http import urlquote from seaserv import get_repo, is_passwd_set @@ -58,15 +58,15 @@ def repo_passwd_set_required(func): try: server_crypto = UserOptions.objects.is_server_crypto(username) except CryptoOptionNotSetError: - return render_to_response('options/set_user_options.html', { - }, context_instance=RequestContext(request)) + return render(request, 'options/set_user_options.html', { + }) if (repo.enc_version == 1 or (repo.enc_version == 2 and server_crypto)) \ and not is_passwd_set(repo_id, username): - return render_to_response('decrypt_repo_form.html', { + return render(request, 'decrypt_repo_form.html', { 'repo': repo, 'next': request.get_full_path(), - }, context_instance=RequestContext(request)) + }) if repo.enc_version == 2 and not server_crypto: return render_error(request, _(u'Files in this library can not be viewed online.')) diff --git a/seahub/contacts/views.py b/seahub/contacts/views.py index ebf6680faa..9be8db5f8c 100644 --- a/seahub/contacts/views.py +++ b/seahub/contacts/views.py @@ -4,9 +4,9 @@ import logging import json from django.http import HttpResponse, HttpResponseBadRequest, \ HttpResponseRedirect -from django.shortcuts import render_to_response, Http404 +from django.shortcuts import render, Http404 from django.core.urlresolvers import reverse -from django.template import RequestContext + from django.core.exceptions import ObjectDoesNotExist from django.forms.models import modelformset_factory from django.contrib import messages @@ -44,11 +44,11 @@ def contact_list(request): # 'note':''} # edit_form = ContactEditForm(edit_init_data) - return render_to_response('contacts/contact_list.html', { + return render(request, 'contacts/contact_list.html', { 'contacts': contacts, # 'form': form, # 'edit_form': edit_form, - }, context_instance=RequestContext(request)) + }) @login_required_ajax def contact_add(request): diff --git a/seahub/group/views.py b/seahub/group/views.py index 9b98673fbb..fefe8f5cec 100644 --- a/seahub/group/views.py +++ b/seahub/group/views.py @@ -10,8 +10,8 @@ from django.core.urlresolvers import reverse from django.contrib import messages from django.http import HttpResponse, HttpResponseRedirect, Http404, \ HttpResponseBadRequest -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render + from django.utils.http import urlquote from django.utils.translation import ugettext as _ @@ -120,9 +120,9 @@ def group_check(func): group.view_perm = "pub" return func(request, group, *args, **kwargs) - return render_to_response('error.html', { + return render(request, 'error.html', { 'error_msg': _('Permission denied'), - }, context_instance=RequestContext(request)) + }) return _decorated @@ -285,14 +285,14 @@ def group_wiki(request, group, page_name="home"): wiki_exists = False group_repos = get_group_repos(group.id, username) group_repos = [r for r in group_repos if not r.encrypted] - return render_to_response("group/group_wiki.html", { + return render(request, "group/group_wiki.html", { "group" : group, "is_staff": group.is_staff, "wiki_exists": wiki_exists, "mods_enabled": mods_enabled, "mods_available": mods_available, "group_repos": group_repos, - }, context_instance=RequestContext(request)) + }) except WikiPageMissing: '''create that page for user if he/she is a group member''' if not is_group_user(group.id, username): @@ -332,7 +332,7 @@ def group_wiki(request, group, page_name="home"): except (WikiDoesNotExist, WikiPageMissing) as e: wiki_index_exists = False - return render_to_response("group/group_wiki.html", { + return render(request, "group/group_wiki.html", { "group" : group, "is_staff": group.is_staff, "wiki_exists": wiki_exists, @@ -349,7 +349,7 @@ def group_wiki(request, group, page_name="home"): "repo_perm": repo_perm, "wiki_index_exists": wiki_index_exists, "index_content": index_content, - }, context_instance=RequestContext(request)) + }) @group_check def group_wiki_pages(request, group): @@ -374,7 +374,7 @@ def group_wiki_pages(request, group): mods_available = get_available_mods_by_group(group.id) mods_enabled = get_enabled_mods_by_group(group.id) - return render_to_response("group/group_wiki_pages.html", { + return render(request, "group/group_wiki_pages.html", { "group": group, "pages": pages, "is_staff": group.is_staff, @@ -384,7 +384,7 @@ def group_wiki_pages(request, group): "repo_perm": repo_perm, "mods_enabled": mods_enabled, "mods_available": mods_available, - }, context_instance=RequestContext(request)) + }) @login_required_ajax @group_check diff --git a/seahub/institutions/views.py b/seahub/institutions/views.py index 04c8b48bdd..d575c1387e 100644 --- a/seahub/institutions/views.py +++ b/seahub/institutions/views.py @@ -5,8 +5,8 @@ import logging from django.core.urlresolvers import reverse from django.contrib import messages from django.http import HttpResponseRedirect, HttpResponse -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render + from django.utils.translation import ugettext as _ import seaserv from seaserv import seafile_api @@ -48,9 +48,9 @@ def info(request): """ inst = request.user.institution - return render_to_response('institutions/info.html', { + return render(request, 'institutions/info.html', { 'inst': inst, - }, context_instance=RequestContext(request)) + }) @inst_admin_required def useradmin(request): @@ -85,7 +85,7 @@ def useradmin(request): if e.username == u.username: u.last_login = e.last_login - return render_to_response('institutions/useradmin.html', { + return render(request, 'institutions/useradmin.html', { 'inst': inst, 'users': users, 'current_page': current_page, @@ -93,7 +93,7 @@ def useradmin(request): 'next_page': current_page + 1, 'per_page': per_page, 'page_next': page_next, - }, context_instance=RequestContext(request)) + }) @inst_admin_required def useradmin_search(request): @@ -121,11 +121,11 @@ def useradmin_search(request): if e.username == u.username: u.last_login = e.last_login - return render_to_response('institutions/useradmin_search.html', { + return render(request, 'institutions/useradmin_search.html', { 'inst': inst, 'users': users, 'q': q, - }, context_instance=RequestContext(request)) + }) @inst_admin_required @inst_admin_can_manage_user @@ -167,7 +167,7 @@ def user_info(request, email): available_quota = get_institution_available_quota(request.user.institution) - return render_to_response( + return render(request, 'institutions/user_info.html', { 'owned_repos': owned_repos, 'space_quota': space_quota, @@ -178,7 +178,7 @@ def user_info(request, email): 'd_profile': d_profile, 'personal_groups': personal_groups, 'available_quota': available_quota, - }, context_instance=RequestContext(request)) + }) @require_POST @inst_admin_required diff --git a/seahub/invitations/views.py b/seahub/invitations/views.py index 68cd3388b2..273d13e941 100644 --- a/seahub/invitations/views.py +++ b/seahub/invitations/views.py @@ -1,8 +1,8 @@ # Copyright (c) 2012-2016 Seafile Ltd. from django.contrib import messages from django.http import HttpResponseRedirect, Http404 -from django.shortcuts import get_object_or_404, render_to_response -from django.template import RequestContext +from django.shortcuts import get_object_or_404, render + from django.utils.translation import ugettext as _ from seahub.auth import login as auth_login @@ -51,6 +51,6 @@ def token_view(request, token): return HttpResponseRedirect(SITE_ROOT) - return render_to_response('invitations/token_view.html', { + return render(request, 'invitations/token_view.html', { 'iv': i, - }, context_instance=RequestContext(request)) + }) diff --git a/seahub/notifications/views.py b/seahub/notifications/views.py index 953d4fe563..7eaae90a20 100644 --- a/seahub/notifications/views.py +++ b/seahub/notifications/views.py @@ -6,8 +6,7 @@ from django.conf import settings from django.core.urlresolvers import reverse from django.contrib import messages from django.http import HttpResponseRedirect, Http404, HttpResponse -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render from django.template.loader import render_to_string from django.utils.translation import ugettext as _ @@ -26,9 +25,9 @@ def notification_list(request): raise Http404 notes = Notification.objects.all().order_by('-id') - return render_to_response('notifications/notification_list.html', { + return render(request, 'notifications/notification_list.html', { 'notes': notes, - }, context_instance=RequestContext(request)) + }) @login_required def notification_add(request): @@ -80,12 +79,12 @@ def user_notification_list(request): notices_more = True if len(notices) == count else False - return render_to_response("notifications/user_notification_list.html", { + return render(request, "notifications/user_notification_list.html", { 'notices': notices, 'start': count, 'limit': limit, 'notices_more': notices_more, - }, context_instance=RequestContext(request)) + }) @login_required_ajax def user_notification_more(request): diff --git a/seahub/oauth/views.py b/seahub/oauth/views.py index 25b37002ed..4b50a58090 100644 --- a/seahub/oauth/views.py +++ b/seahub/oauth/views.py @@ -3,8 +3,7 @@ import os import logging from django.http import HttpResponseRedirect -from django.template import RequestContext -from django.shortcuts import render_to_response +from django.shortcuts import render from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ @@ -67,9 +66,9 @@ def oauth_check(func): error = True if error: - return render_to_response('error.html', { + return render(request, 'error.html', { 'error_msg': _('Error, please contact administrator.'), - }, context_instance=RequestContext(request)) + }) return func(request) @@ -91,9 +90,9 @@ def oauth_login(request): AUTHORIZATION_URL) except Exception as e: logger.error(e) - return render_to_response('error.html', { + return render(request, 'error.html', { 'error_msg': _('Error, please contact administrator.'), - }, context_instance=RequestContext(request)) + }) request.session['oauth_state'] = state return HttpResponseRedirect(authorization_url) @@ -117,9 +116,9 @@ def oauth_callback(request): user_info_resp = session.get(USER_INFO_URL) except Exception as e: logger.error(e) - return render_to_response('error.html', { + return render(request, 'error.html', { 'error_msg': _('Error, please contact administrator.'), - }, context_instance=RequestContext(request)) + }) def format_user_info(user_info_resp): @@ -147,9 +146,9 @@ def oauth_callback(request): if error: logger.error('Required user info not found.') logger.error(user_info) - return render_to_response('error.html', { + return render(request, 'error.html', { 'error_msg': _('Error, please contact administrator.'), - }, context_instance=RequestContext(request)) + }) # seahub authenticate user email = user_info['email'] @@ -159,9 +158,9 @@ def oauth_callback(request): except User.DoesNotExist: if not config.ENABLE_SIGNUP: logger.error('%s not found but user registration is disabled.' % email) - return render_to_response('error.html', { + return render(request, 'error.html', { 'error_msg': _('Error, please contact administrator.'), - }, context_instance=RequestContext(request)) + }) try: user = auth.authenticate(remote_user=email) @@ -171,9 +170,9 @@ def oauth_callback(request): if not user or not user.is_active: logger.error('User %s not found or inactive.' % email) # a page for authenticate user failed - return render_to_response('error.html', { + return render(request, 'error.html', { 'error_msg': _(u'User %s not found.') % email - }, context_instance=RequestContext(request)) + }) # User is valid. Set request.user and persist user in the session # by logging the user in. diff --git a/seahub/profile/views.py b/seahub/profile/views.py index 398c7f59c2..655704482c 100644 --- a/seahub/profile/views.py +++ b/seahub/profile/views.py @@ -4,8 +4,7 @@ from django.conf import settings import json from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect, Http404 -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render from django.contrib import messages from django.utils.translation import ugettext as _ @@ -101,8 +100,7 @@ def edit_profile(request): resp_dict['default_device'] = default_device(request.user) resp_dict['backup_tokens'] = backup_tokens - return render_to_response('profile/set_profile.html', resp_dict, - context_instance=RequestContext(request)) + return render(request, 'profile/set_profile.html', resp_dict) @login_required def user_profile(request, username): @@ -124,12 +122,12 @@ def user_profile(request, username): contact_email = '' d_profile = None - return render_to_response('profile/user_profile.html', { + return render(request, 'profile/user_profile.html', { 'user': user, 'nickname': nickname, 'contact_email': contact_email, 'd_profile': d_profile, - }, context_instance=RequestContext(request)) + }) @login_required def get_user_profile(request, user): diff --git a/seahub/share/decorators.py b/seahub/share/decorators.py index 3881f2a374..b939b4d4f3 100644 --- a/seahub/share/decorators.py +++ b/seahub/share/decorators.py @@ -2,8 +2,7 @@ from django.core.cache import cache from django.conf import settings from django.http import Http404 -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render from seahub.share.models import FileShare, UploadLinkShare from seahub.utils import normalize_cache_key, is_pro_version @@ -31,9 +30,9 @@ def share_link_audit(func): return func(request, fileshare, *args, **kwargs) if request.method == 'GET': - return render_to_response('share/share_link_audit.html', { + return render(request, 'share/share_link_audit.html', { 'token': token, - }, context_instance=RequestContext(request)) + }) elif request.method == 'POST': code = request.POST.get('code', '') email = request.POST.get('email', '') @@ -47,12 +46,12 @@ def share_link_audit(func): cache.delete(cache_key) return func(request, fileshare, *args, **kwargs) else: - return render_to_response('share/share_link_audit.html', { + return render(request, 'share/share_link_audit.html', { 'err_msg': 'Invalid token, please try again.', 'email': email, 'code': code, 'token': token, - }, context_instance=RequestContext(request)) + }) else: assert False, 'TODO' diff --git a/seahub/thumbnail/views.py b/seahub/thumbnail/views.py index 9ef170f46b..ce85c8c4b2 100644 --- a/seahub/thumbnail/views.py +++ b/seahub/thumbnail/views.py @@ -9,8 +9,7 @@ from django.utils.translation import ugettext as _ from django.utils.http import urlquote from django.http import HttpResponse from django.views.decorators.http import condition -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render from seaserv import get_repo, get_file_id_by_path @@ -230,8 +229,7 @@ def share_link_thumbnail_get(request, token, size, path): password_check_passed, err_msg = check_share_link_common(request, fileshare) if not password_check_passed: d = {'token': token, 'view_name': 'view_shared_dir', 'err_msg': err_msg} - return render_to_response('share_access_validation.html', d, - context_instance=RequestContext(request)) + return render(request, 'share_access_validation.html', d) image_path = get_real_path_by_fs_and_req_path(fileshare, path) diff --git a/seahub/utils/__init__.py b/seahub/utils/__init__.py index f3485dcfd5..81332572cc 100644 --- a/seahub/utils/__init__.py +++ b/seahub/utils/__init__.py @@ -23,8 +23,8 @@ from seaserv import seafile_api from django.core.urlresolvers import reverse from django.core.mail import EmailMessage -from django.shortcuts import render_to_response -from django.template import RequestContext, Context, loader +from django.shortcuts import render +from django.template import Context, loader from django.utils.translation import ugettext as _ from django.http import HttpResponseRedirect, HttpResponse, HttpResponseNotModified from django.utils.http import urlquote @@ -131,8 +131,7 @@ def render_permission_error(request, msg=None, extra_ctx=None): for k in extra_ctx: ctx[k] = extra_ctx[k] - return render_to_response('error.html', ctx, - context_instance=RequestContext(request)) + return render(request, 'error.html', ctx) def render_error(request, msg=None, extra_ctx=None): """ @@ -146,8 +145,7 @@ def render_error(request, msg=None, extra_ctx=None): for k in extra_ctx: ctx[k] = extra_ctx[k] - return render_to_response('error.html', ctx, - context_instance=RequestContext(request)) + return render(request, 'error.html', ctx) def list_to_string(l): """ diff --git a/seahub/views/__init__.py b/seahub/views/__init__.py index eb8df4b6ab..9b449c4097 100644 --- a/seahub/views/__init__.py +++ b/seahub/views/__init__.py @@ -13,8 +13,7 @@ from django.core.urlresolvers import reverse from django.contrib import messages from django.http import HttpResponse, Http404, \ HttpResponseRedirect -from django.shortcuts import render_to_response, redirect -from django.template import RequestContext +from django.shortcuts import render, redirect from django.utils.http import urlquote from django.utils.html import escape from django.utils.translation import ugettext as _ @@ -273,13 +272,13 @@ def render_recycle_root(request, repo_id, referer): if is_repo_owner: enable_clean = True - return render_to_response('repo_dir_recycle_view.html', { + return render(request, 'repo_dir_recycle_view.html', { 'show_recycle_root': True, 'repo': repo, 'repo_dir_name': repo.name, 'enable_clean': enable_clean, 'referer': referer, - }, context_instance=RequestContext(request)) + }) def render_recycle_dir(request, repo_id, commit_id, referer): basedir = request.GET.get('base', '') @@ -318,7 +317,7 @@ def render_recycle_dir(request, repo_id, commit_id, referer): else: dirent.is_dir = False - return render_to_response('repo_dir_recycle_view.html', { + return render(request, 'repo_dir_recycle_view.html', { 'show_recycle_root': False, 'repo': repo, 'repo_dir_name': repo.name, @@ -328,20 +327,20 @@ def render_recycle_dir(request, repo_id, commit_id, referer): 'basedir': basedir, 'path': path, 'referer': referer, - }, context_instance=RequestContext(request)) + }) def render_dir_recycle_root(request, repo_id, dir_path, referer): repo = get_repo(repo_id) if not repo: raise Http404 - return render_to_response('repo_dir_recycle_view.html', { + return render(request, 'repo_dir_recycle_view.html', { 'show_recycle_root': True, 'repo': repo, 'repo_dir_name': os.path.basename(dir_path.rstrip('/')), 'dir_path': dir_path, 'referer': referer, - }, context_instance=RequestContext(request)) + }) def render_dir_recycle_dir(request, repo_id, commit_id, dir_path, referer): basedir = request.GET.get('base', '') @@ -379,7 +378,7 @@ def render_dir_recycle_dir(request, repo_id, commit_id, dir_path, referer): else: dirent.is_dir = False - return render_to_response('repo_dir_recycle_view.html', { + return render(request, 'repo_dir_recycle_view.html', { 'show_recycle_root': False, 'repo': repo, 'repo_dir_name': os.path.basename(dir_path.rstrip('/')), @@ -390,7 +389,7 @@ def render_dir_recycle_dir(request, repo_id, commit_id, dir_path, referer): 'path': path, 'dir_path': dir_path, 'referer': referer, - }, context_instance=RequestContext(request)) + }) @login_required def repo_recycle_view(request, repo_id): @@ -505,7 +504,7 @@ def repo_history(request, repo_id): # for 'go back' referer = request.GET.get('referer', '') - return render_to_response('repo_history.html', { + return render(request, 'repo_history.html', { "repo": repo, "commits": commits, 'current_page': current_page, @@ -515,7 +514,7 @@ def repo_history(request, repo_id): 'user_perm': user_perm, 'show_label': show_label, 'referer': referer, - }, context_instance=RequestContext(request)) + }) @login_required @require_POST @@ -705,7 +704,7 @@ def libraries(request): if is_pro_version() and ENABLE_STORAGE_CLASSES: storages = get_library_storages(request) - return render_to_response('libraries.html', { + return render(request, 'libraries.html', { "allow_public_share": allow_public_share, "guide_enabled": guide_enabled, "sub_lib_enabled": sub_lib_enabled, @@ -731,7 +730,7 @@ def libraries(request): 'library_templates': LIBRARY_TEMPLATES.keys() if \ isinstance(LIBRARY_TEMPLATES, dict) else [], 'enable_share_to_all_groups': config.ENABLE_SHARE_TO_ALL_GROUPS - }, context_instance=RequestContext(request)) + }) @login_required def repo_set_access_property(request, repo_id): @@ -813,7 +812,7 @@ def file_revisions(request, repo_id): # for 'go back' referer = request.GET.get('referer', '') - return render_to_response('file_revisions.html', { + return render(request, 'file_revisions.html', { 'repo': repo, 'path': path, 'u_filename': u_filename, @@ -822,7 +821,7 @@ def file_revisions(request, repo_id): 'can_compare': can_compare, 'can_revert_file': can_revert_file, 'referer': referer, - }, context_instance=RequestContext(request)) + }) def demo(request): @@ -1085,8 +1084,7 @@ def underscore_template(request, template): if not template.startswith('js'): # light security check raise Http404 - return render_to_response(template, {}, - context_instance=RequestContext(request)) + return render(request, template, {}) def fake_view(request, **kwargs): """ diff --git a/seahub/views/ajax.py b/seahub/views/ajax.py index c41704689a..37945bc9b0 100644 --- a/seahub/views/ajax.py +++ b/seahub/views/ajax.py @@ -11,8 +11,8 @@ import StringIO from django.core.urlresolvers import reverse from django.http import HttpResponse, Http404 -from django.template import RequestContext from django.template.loader import render_to_string +from django.shortcuts import render from django.utils.http import urlquote from django.utils.html import escape from django.utils.translation import ugettext as _ @@ -846,8 +846,7 @@ def get_current_commit(request, repo_id): 'repo': repo, 'info_commit': info_commit } - html = render_to_string('snippets/current_commit.html', ctx, - context_instance=RequestContext(request)) + html = render_to_string(request, 'snippets/current_commit.html', ctx) return HttpResponse(json.dumps({'html': html}), content_type=content_type) @@ -971,9 +970,8 @@ def get_popup_notices(request): result_notices = add_notice_from_info(result_notices) ctx_notices = {"notices": result_notices} - notice_html = render_to_string( - 'snippets/notice_html.html', ctx_notices, - context_instance=RequestContext(request)) + notice_html = render_to_string( + 'snippets/notice_html.html', ctx_notices) return HttpResponse(json.dumps({ "notice_html": notice_html, @@ -1038,10 +1036,10 @@ def space_and_traffic(request): "traffic_stat": traffic_stat, "ENABLE_PAYMENT": ENABLE_PAYMENT, "payment_url": payment_url, + "user": request.user } - html = render_to_string('snippets/space_and_traffic.html', ctx, - context_instance=RequestContext(request)) + html = render_to_string('snippets/space_and_traffic.html', ctx) return HttpResponse(json.dumps({"html": html}), content_type=content_type) def get_file_upload_url_ul(request, token): diff --git a/seahub/views/file.py b/seahub/views/file.py index c44aaa5682..b3823411c6 100644 --- a/seahub/views/file.py +++ b/seahub/views/file.py @@ -26,8 +26,7 @@ from django.contrib import messages from django.core.urlresolvers import reverse from django.db.models import F from django.http import HttpResponse, Http404, HttpResponseRedirect, HttpResponseBadRequest, HttpResponseForbidden -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render from django.utils.http import urlquote from django.utils.encoding import force_bytes from django.utils.translation import ugettext as _ @@ -459,8 +458,7 @@ def _file_view(request, repo_id, path): if wopi_dict: send_file_access_msg(request, repo, path, 'web') - return render_to_response('view_wopi_file.html', wopi_dict, - context_instance=RequestContext(request)) + return render(request, 'view_wopi_file.html', wopi_dict) if ENABLE_ONLYOFFICE and not repo.encrypted and \ fileext in ONLYOFFICE_FILE_EXTENSION: @@ -492,7 +490,7 @@ def _file_view(request, repo_id, path): can_edit = False send_file_access_msg(request, repo, path, 'web') - return render_to_response('onlyoffice/view_file_via_onlyoffice.html', { + return render(request, 'onlyoffice/view_file_via_onlyoffice.html', { 'ONLYOFFICE_APIJS_URL': ONLYOFFICE_APIJS_URL, 'file_type': fileext, 'doc_key': doc_key, @@ -502,7 +500,7 @@ def _file_view(request, repo_id, path): 'callback_url': get_site_scheme_and_netloc().rstrip('/') + reverse('onlyoffice_editor_callback'), 'can_edit': can_edit, 'username': username, - }, context_instance=RequestContext(request)) + }) # check if the user is the owner or not, for 'private share' if is_org_context(request): @@ -605,7 +603,7 @@ def _file_view(request, repo_id, path): else: can_lock_unlock_file = False - return render_to_response(template, { + return render(request, template, { 'repo': repo, 'is_repo_owner': is_repo_owner, 'obj_id': obj_id, @@ -640,7 +638,7 @@ def _file_view(request, repo_id, path): 'img_prev': img_prev, 'img_next': img_next, 'highlight_keyword': settings.HIGHLIGHT_KEYWORD, - }, context_instance=RequestContext(request)) + }) def view_history_file_common(request, repo_id, ret_dict): # check arguments @@ -717,8 +715,7 @@ def view_history_file(request, repo_id): repo = ret_dict['repo'] ret_dict['zipped'] = gen_path_link(path, repo.name) - return render_to_response('view_history_file.html', ret_dict, - context_instance=RequestContext(request)) + return render(request, 'view_history_file.html', ret_dict) @repo_passwd_set_required def view_trash_file(request, repo_id): @@ -735,8 +732,7 @@ def view_trash_file(request, repo_id): tmp_path = posixpath.join(basedir.rstrip('/'), ret_dict['path'].lstrip('/')) ret_dict['path'] = tmp_path - return render_to_response('view_trash_file.html', ret_dict, - context_instance=RequestContext(request), ) + return render(request, 'view_trash_file.html', ret_dict) @repo_passwd_set_required def view_snapshot_file(request, repo_id): @@ -750,8 +746,7 @@ def view_snapshot_file(request, repo_id): repo = ret_dict['repo'] ret_dict['zipped'] = gen_path_link(path, repo.name) - return render_to_response('view_snapshot_file.html', ret_dict, - context_instance=RequestContext(request), ) + return render(request, 'view_snapshot_file.html', ret_dict) def _download_file_from_share_link(request, fileshare): """Download shared file. @@ -816,8 +811,7 @@ def view_shared_file(request, fileshare): password_check_passed, err_msg = check_share_link_common(request, fileshare) if not password_check_passed: d = {'token': token, 'view_name': 'view_shared_file', 'err_msg': err_msg} - return render_to_response('share_access_validation.html', d, - context_instance=RequestContext(request)) + return render(request, 'share_access_validation.html', d) shared_by = fileshare.username repo_id = fileshare.repo_id @@ -900,7 +894,7 @@ def view_shared_file(request, fileshare): permissions = fileshare.get_permissions() - return render_to_response('shared_file_view.html', { + return render(request, 'shared_file_view.html', { 'repo': repo, 'obj_id': obj_id, 'path': path, @@ -920,7 +914,7 @@ def view_shared_file(request, fileshare): 'save_to_link': save_to_link, 'traffic_over_limit': traffic_over_limit, 'permissions': permissions, - }, context_instance=RequestContext(request)) + }) def view_raw_shared_file(request, token, obj_id, file_name): """Returns raw content of a shared file. @@ -943,8 +937,7 @@ def view_raw_shared_file(request, token, obj_id, file_name): else: d['view_name'] = 'view_shared_dir' - return render_to_response('share_access_validation.html', d, - context_instance=RequestContext(request)) + return render(request, 'share_access_validation.html', d) repo_id = fileshare.repo_id repo = get_repo(repo_id) @@ -997,8 +990,7 @@ def view_file_via_shared_dir(request, fileshare): 'path': req_path, 'err_msg': err_msg, } - return render_to_response('share_access_validation.html', d, - context_instance=RequestContext(request)) + return render(request, 'share_access_validation.html', d) shared_by = fileshare.username repo_id = fileshare.repo_id @@ -1106,7 +1098,7 @@ def view_file_via_shared_dir(request, fileshare): traffic_over_limit = user_traffic_over_limit(shared_by) permissions = fileshare.get_permissions() - return render_to_response('shared_file_view.html', { + return render(request, 'shared_file_view.html', { 'repo': repo, 'obj_id': obj_id, 'from_shared_dir': True, @@ -1129,7 +1121,7 @@ def view_file_via_shared_dir(request, fileshare): 'img_next': img_next, 'traffic_over_limit': traffic_over_limit, 'permissions': permissions, - }, context_instance=RequestContext(request)) + }) def file_edit_submit(request, repo_id): content_type = 'application/json; charset=utf-8' @@ -1293,7 +1285,7 @@ def file_edit(request, repo_id): elif page_from == 'personal_wiki_page_edit' or page_from == 'personal_wiki_page_new': cancel_url = reverse('personal_wiki', args=[wiki_name]) - return render_to_response('file_edit.html', { + return render(request, 'file_edit.html', { 'repo':repo, 'u_filename':u_filename, 'wiki_name': wiki_name, @@ -1310,7 +1302,7 @@ def file_edit(request, repo_id): 'from': page_from, 'gid': gid, 'cancel_url': cancel_url, - }, context_instance=RequestContext(request)) + }) @login_required def view_raw_file(request, repo_id, file_path): @@ -1488,7 +1480,7 @@ def text_diff(request, repo_id): referer = request.GET.get('referer', '') - return render_to_response('text_diff.html', { + return render(request, 'text_diff.html', { 'u_filename':u_filename, 'repo': repo, 'path': path, @@ -1498,7 +1490,7 @@ def text_diff(request, repo_id): 'diff_result_table': diff_result_table, 'is_new_file': is_new_file, 'referer': referer, - }, context_instance=RequestContext(request)) + }) ########## office related @require_POST @@ -1691,7 +1683,7 @@ def file_access(request, repo_id): filename = os.path.basename(path) zipped = gen_path_link(path, repo.name) extra_href = "&p=%s" % urlquote(path) - return render_to_response('file_access.html', { + return render(request, 'file_access.html', { 'repo': repo, 'path': path, 'filename': filename, @@ -1703,4 +1695,4 @@ def file_access(request, repo_id): 'next_page': current_page+1, 'per_page': per_page, 'page_next': page_next, - }, context_instance=RequestContext(request)) + }) diff --git a/seahub/views/repo.py b/seahub/views/repo.py index e2742af9cd..ae646d4588 100644 --- a/seahub/views/repo.py +++ b/seahub/views/repo.py @@ -7,8 +7,7 @@ import logging from django.core.urlresolvers import reverse from django.db.models import F from django.http import Http404, HttpResponseRedirect -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render from django.utils.translation import ugettext as _ from django.utils.http import urlquote @@ -131,10 +130,10 @@ def repo_history_view(request, repo_id): if repo.encrypted and \ (repo.enc_version == 1 or (repo.enc_version == 2 and server_crypto)) \ and not is_password_set(repo.id, username): - return render_to_response('decrypt_repo_form.html', { + return render(request, 'decrypt_repo_form.html', { 'repo': repo, 'next': get_next_url_from_request(request) or reverse("view_common_lib_dir", args=[repo_id, '']), - }, context_instance=RequestContext(request)) + }) commit_id = request.GET.get('commit_id', None) if commit_id is None: @@ -152,7 +151,7 @@ def repo_history_view(request, repo_id): referer = request.GET.get('referer', '') - return render_to_response('repo_history_view.html', { + return render(request, 'repo_history_view.html', { 'repo': repo, "is_repo_owner": is_repo_owner, 'user_perm': user_perm, @@ -162,7 +161,7 @@ def repo_history_view(request, repo_id): 'path': path, 'zipped': zipped, 'referer': referer, - }, context_instance=RequestContext(request)) + }) ########## shared dir/uploadlink @share_link_audit @@ -172,8 +171,7 @@ def view_shared_dir(request, fileshare): password_check_passed, err_msg = check_share_link_common(request, fileshare) if not password_check_passed: d = {'token': token, 'view_name': 'view_shared_dir', 'err_msg': err_msg} - return render_to_response('share_access_validation.html', d, - context_instance=RequestContext(request)) + return render(request, 'share_access_validation.html', d) username = fileshare.username repo_id = fileshare.repo_id @@ -248,7 +246,7 @@ def view_shared_dir(request, fileshare): src = get_share_link_thumbnail_src(token, thumbnail_size, req_image_path) f.encoded_thumbnail_src = urlquote(src) - return render_to_response('view_shared_dir.html', { + return render(request, 'view_shared_dir.html', { 'repo': repo, 'token': token, 'path': req_path, @@ -262,7 +260,7 @@ def view_shared_dir(request, fileshare): 'ENABLE_THUMBNAIL': ENABLE_THUMBNAIL, 'mode': mode, 'thumbnail_size': thumbnail_size, - }, context_instance=RequestContext(request)) + }) @share_link_audit def view_shared_upload_link(request, uploadlink): @@ -273,8 +271,7 @@ def view_shared_upload_link(request, uploadlink): is_upload_link=True) if not password_check_passed: d = {'token': token, 'view_name': 'view_shared_upload_link', 'err_msg': err_msg} - return render_to_response('share_access_validation.html', d, - context_instance=RequestContext(request)) + return render(request, 'share_access_validation.html', d) username = uploadlink.username repo_id = uploadlink.repo_id @@ -302,7 +299,7 @@ def view_shared_upload_link(request, uploadlink): no_quota = True if seaserv.check_quota(repo_id) < 0 else False - return render_to_response('view_shared_upload_link.html', { + return render(request, 'view_shared_upload_link.html', { 'repo': repo, 'path': path, 'username': username, @@ -313,4 +310,4 @@ def view_shared_upload_link(request, uploadlink): 'enable_upload_folder': ENABLE_UPLOAD_FOLDER, 'enable_resumable_fileupload': ENABLE_RESUMABLE_FILEUPLOAD, 'max_number_of_files_for_fileupload': MAX_NUMBER_OF_FILES_FOR_FILEUPLOAD, - }, context_instance=RequestContext(request)) + }) diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index b5fb4414ca..e152fcce8d 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -17,8 +17,7 @@ from django.conf import settings as dj_settings from django.core.urlresolvers import reverse from django.contrib import messages from django.http import HttpResponse, Http404, HttpResponseRedirect, HttpResponseNotAllowed -from django.shortcuts import render_to_response, get_object_or_404 -from django.template import RequestContext +from django.shortcuts import render, get_object_or_404 from django.utils import timezone from django.utils.translation import ugettext as _ from django.utils.http import urlquote @@ -97,7 +96,7 @@ def sysadmin(request): folder_perm_enabled = True if is_pro_version() and settings.ENABLE_FOLDER_PERM else False - return render_to_response('sysadmin/sysadmin_backbone.html', { + return render(request, 'sysadmin/sysadmin_backbone.html', { 'enable_sys_admin_view_repo': ENABLE_SYS_ADMIN_VIEW_REPO, 'enable_upload_folder': settings.ENABLE_UPLOAD_FOLDER, 'enable_resumable_fileupload': settings.ENABLE_RESUMABLE_FILEUPLOAD, @@ -112,28 +111,28 @@ def sysadmin(request): 'is_pro': True if is_pro_version() else False, 'file_audit_enabled': FILE_AUDIT_ENABLED, 'enable_limit_ipaddress': ENABLE_LIMIT_IPADDRESS, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required def sys_statistic_file(request): - return render_to_response('sysadmin/sys_statistic_file.html', { - }, context_instance=RequestContext(request)) + return render(request, 'sysadmin/sys_statistic_file.html', { + }) @login_required @sys_staff_required def sys_statistic_storage(request): - return render_to_response('sysadmin/sys_statistic_storage.html', { - }, context_instance=RequestContext(request)) + return render(request, 'sysadmin/sys_statistic_storage.html', { + }) @login_required @sys_staff_required def sys_statistic_user(request): - return render_to_response('sysadmin/sys_statistic_user.html', { - }, context_instance=RequestContext(request)) + return render(request, 'sysadmin/sys_statistic_user.html', { + }) def can_view_sys_admin_repo(repo): default_repo_id = get_system_default_repo_id() @@ -211,10 +210,10 @@ def sys_user_admin(request): if e.username == u.username: u.last_login = e.last_login - return render_to_response('sysadmin/sys_useradmin_paid.html', { + return render(request, 'sysadmin/sys_useradmin_paid.html', { 'users': users, 'enable_user_plan': enable_user_plan, - }, context_instance=RequestContext(request)) + }) ### List all users # Make sure page request is an int. If not, deliver first page. @@ -276,7 +275,7 @@ def sys_user_admin(request): profile = Profile.objects.get_profile_by_user(user.email) user.institution = profile.institution if profile else '' - return render_to_response( + return render(request, 'sysadmin/sys_useradmin.html', { 'users': users, 'current_page': current_page, @@ -295,7 +294,7 @@ def sys_user_admin(request): 'extra_user_roles': extra_user_roles, 'show_institution': show_institution, 'institutions': institutions, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -479,7 +478,7 @@ def sys_user_admin_ldap_imported(request): profile = Profile.objects.get_profile_by_user(user.email) user.institution = profile.institution if profile else '' - return render_to_response( + return render(request, 'sysadmin/sys_user_admin_ldap_imported.html', { 'users': users, 'current_page': current_page, @@ -493,7 +492,7 @@ def sys_user_admin_ldap_imported(request): 'guest_user': GUEST_USER, 'show_institution': show_institution, 'institutions': institutions, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -530,7 +529,7 @@ def sys_user_admin_ldap(request): if last_login.username == user.email: user.last_login = last_login.last_login - return render_to_response( + return render(request, 'sysadmin/sys_useradmin_ldap.html', { 'users': users, 'current_page': current_page, @@ -539,8 +538,7 @@ def sys_user_admin_ldap(request): 'per_page': per_page, 'page_next': page_next, 'is_pro': is_pro_version(), - }, - context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -590,7 +588,7 @@ def sys_user_admin_admins(request): extra_admin_roles = [x for x in get_available_admin_roles() if x not in get_basic_admin_roles()] - return render_to_response( + return render(request, 'sysadmin/sys_useradmin_admins.html', { 'users': admin_users, 'not_admin_users': not_admin_users, @@ -601,7 +599,7 @@ def sys_user_admin_admins(request): 'daily_admin': DAILY_ADMIN, 'audit_admin': AUDIT_ADMIN, 'is_pro': is_pro_version(), - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -731,7 +729,7 @@ def user_info(request, email): reference_id = user.reference_id user_default_device = default_device(user) if has_two_factor_auth() else False - return render_to_response( + return render(request, 'sysadmin/userinfo.html', { 'owned_repos': owned_repos, 'space_quota': space_quota, @@ -747,7 +745,7 @@ def user_info(request, email): 'two_factor_auth_enabled': has_two_factor_auth(), 'default_device': user_default_device, 'reference_id': reference_id if reference_id else '', - }, context_instance=RequestContext(request)) + }) @login_required_ajax @sys_staff_required @@ -1223,12 +1221,12 @@ def sys_org_admin(request): o.is_expired = True if e.expire_date < timezone.now() else False orgs.append(o) - return render_to_response('sysadmin/sys_org_admin.html', { + return render(request, 'sysadmin/sys_org_admin.html', { 'orgs': orgs, 'enable_org_plan': enable_org_plan, 'hide_paginator': True, 'paid_page': True, - }, context_instance=RequestContext(request)) + }) orgs_plus_one = ccnet_threaded_rpc.get_all_orgs(per_page * (current_page - 1), per_page + 1) @@ -1265,7 +1263,7 @@ def sys_org_admin(request): else: org.is_expired = False - return render_to_response('sysadmin/sys_org_admin.html', { + return render(request, 'sysadmin/sys_org_admin.html', { 'orgs': orgs, 'current_page': current_page, 'prev_page': current_page-1, @@ -1274,7 +1272,7 @@ def sys_org_admin(request): 'page_next': page_next, 'enable_org_plan': enable_org_plan, 'all_page': True, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -1302,12 +1300,12 @@ def sys_org_search(request): if creator in o.creator.lower(): orgs.append(o) - return render_to_response( + return render(request, 'sysadmin/sys_org_search.html', { 'orgs': orgs, 'name': org_name, 'creator': creator, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -1439,8 +1437,8 @@ def sys_org_info_user(request, org_id): if last_login.username == user.email: user.last_login = last_login.last_login - return render_to_response('sysadmin/sys_org_info_user.html', - org_basic_info, context_instance=RequestContext(request)) + return render(request, 'sysadmin/sys_org_info_user.html', + org_basic_info) @login_required @@ -1450,8 +1448,8 @@ def sys_org_info_group(request, org_id): org_id = int(org_id) org_basic_info = sys_get_org_base_info(org_id) - return render_to_response('sysadmin/sys_org_info_group.html', - org_basic_info, context_instance=RequestContext(request)) + return render(request, 'sysadmin/sys_org_info_group.html', + org_basic_info) @login_required @sys_staff_required @@ -1470,8 +1468,8 @@ def sys_org_info_library(request, org_id): repo.owner = None org_basic_info["org_repos"] = org_repos - return render_to_response('sysadmin/sys_org_info_library.html', - org_basic_info, context_instance=RequestContext(request)) + return render(request, 'sysadmin/sys_org_info_library.html', + org_basic_info) @login_required @sys_staff_required @@ -1486,9 +1484,8 @@ def sys_org_info_setting(request, org_id): else: org_basic_info['org_member_quota'] = None - return render_to_response('sysadmin/sys_org_info_setting.html', - org_basic_info, - context_instance=RequestContext(request)) + return render(request, 'sysadmin/sys_org_info_setting.html', + org_basic_info) @login_required @sys_staff_required @@ -1525,7 +1522,7 @@ def sys_publink_admin(request): else: l.name = os.path.dirname(l.path) - return render_to_response( + return render(request, 'sysadmin/sys_publink_admin.html', { 'publinks': publinks, 'current_page': current_page, @@ -1535,8 +1532,7 @@ def sys_publink_admin(request): 'page_next': page_next, 'per_page': per_page, 'sort_by': sort_by, - }, - context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -1567,7 +1563,7 @@ def sys_upload_link_admin(request): else: page_next = False - return render_to_response( + return render(request, 'sysadmin/sys_upload_link_admin.html', { 'uploadlinks': uploadlinks, 'current_page': current_page, @@ -1577,8 +1573,7 @@ def sys_upload_link_admin(request): 'page_next': page_next, 'per_page': per_page, 'sort_by': sort_by - }, - context_instance=RequestContext(request)) + }) @login_required_ajax @sys_staff_required @@ -1632,12 +1627,11 @@ def sys_link_search(request): else: l.name = os.path.dirname(l.path) - return render_to_response( + return render(request, 'sysadmin/sys_link_search.html', { 'publinks': publinks, 'token': token - }, - context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -1702,14 +1696,14 @@ def user_search(request): extra_user_roles = [x for x in get_available_roles() if x not in get_basic_user_roles()] - return render_to_response('sysadmin/user_search.html', { + return render(request, 'sysadmin/user_search.html', { 'users': users, 'email': email, 'default_user': DEFAULT_USER, 'guest_user': GUEST_USER, 'is_pro': is_pro_version(), 'extra_user_roles': extra_user_roles, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -1773,7 +1767,7 @@ def sys_traffic_admin(request): for info in traffic_info_list: info['total'] = info['file_view'] + info['file_download'] + info['dir_download'] - return render_to_response( + return render(request, 'sysadmin/sys_trafficadmin.html', { 'traffic_info_list': traffic_info_list, 'month': month, @@ -1782,8 +1776,7 @@ def sys_traffic_admin(request): 'next_page': current_page+1, 'per_page': per_page, 'page_next': page_next, - }, - context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -1819,7 +1812,7 @@ def sys_virus_scan_records(request): r.repo.owner = seafile_api.get_repo_owner(r.repo.repo_id) records.append(r) - return render_to_response( + return render(request, 'sysadmin/sys_virus_scan_records.html', { 'records': records, 'current_page': current_page, @@ -1827,7 +1820,7 @@ def sys_virus_scan_records(request): 'next_page': current_page + 1, 'per_page': per_page, 'page_next': page_next, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -2056,13 +2049,12 @@ def sys_sudo_mode(request): enable_shib_login = getattr(settings, 'ENABLE_SHIB_LOGIN', False) enable_adfs_login = getattr(settings, 'ENABLE_ADFS_LOGIN', False) - return render_to_response( + return render(request, 'sysadmin/sudo_mode.html', { 'password_error': password_error, 'enable_sso': enable_shib_login or enable_adfs_login, 'next': next, - }, - context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -2129,10 +2121,10 @@ def sys_settings(request): login_bg_image_path = get_login_bg_image_path() - return render_to_response('sysadmin/settings.html', { + return render(request, 'sysadmin/settings.html', { 'config_dict': config_dict, 'login_bg_image_path': login_bg_image_path, - }, context_instance=RequestContext(request)) + }) @login_required_ajax @sys_staff_required @@ -2200,7 +2192,7 @@ def sys_inst_admin(request): else: page_next = False - return render_to_response( + return render(request, 'sysadmin/sys_inst_admin.html', { 'insts': insts[:per_page], 'current_page': current_page, @@ -2208,7 +2200,7 @@ def sys_inst_admin(request): 'next_page': current_page + 1, 'per_page': per_page, 'page_next': page_next, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -2312,7 +2304,7 @@ def sys_inst_info_user(request, inst_id): space_quota = InstitutionQuota.objects.get_or_none(institution=inst) space_usage = get_institution_space_usage(inst) - return render_to_response('sysadmin/sys_inst_info_user.html', { + return render(request, 'sysadmin/sys_inst_info_user.html', { 'inst': inst, 'users': users, 'users_count': users_count, @@ -2323,7 +2315,7 @@ def sys_inst_info_user(request, inst_id): 'page_next': page_next, 'space_usage': space_usage, 'space_quota': space_quota, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -2361,12 +2353,12 @@ def sys_inst_search_user(request, inst_id): users_count = Profile.objects.filter(institution=inst.name).count() - return render_to_response('sysadmin/sys_inst_search_user.html', { + return render(request, 'sysadmin/sys_inst_search_user.html', { 'q': q, 'inst': inst, 'users': users, 'users_count': users_count, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -2393,11 +2385,11 @@ def sys_inst_info_admins(request, inst_id): users_count = Profile.objects.filter(institution=inst.name).count() - return render_to_response('sysadmin/sys_inst_info_admins.html', { + return render(request, 'sysadmin/sys_inst_info_admins.html', { 'inst': inst, 'admins': admins, 'users_count': users_count, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -2487,7 +2479,7 @@ def sys_invitation_admin(request): else: page_next = False - return render_to_response( + return render(request, 'sysadmin/sys_invitations_admin.html', { 'invitations': invitations, 'current_page': current_page, @@ -2495,8 +2487,7 @@ def sys_invitation_admin(request): 'next_page': current_page+1, 'per_page': per_page, 'page_next': page_next, - }, - context_instance=RequestContext(request)) + }) @login_required @sys_staff_required @@ -2558,9 +2549,9 @@ def sys_terms_admin(request): tc_list = TermsAndConditions.objects.all().order_by('-date_created') - return render_to_response('sysadmin/sys_terms_admin.html', { + return render(request, 'sysadmin/sys_terms_admin.html', { 'object_list': tc_list, - }, context_instance=RequestContext(request)) + }) @login_required @sys_staff_required diff --git a/seahub/views/wiki.py b/seahub/views/wiki.py index 64389c1770..3ba7a3a24a 100644 --- a/seahub/views/wiki.py +++ b/seahub/views/wiki.py @@ -20,9 +20,8 @@ from django.core.urlresolvers import reverse from django.contrib import messages from django.http import HttpResponse, HttpResponseBadRequest, Http404, \ HttpResponseRedirect -from django.shortcuts import render_to_response, redirect +from django.shortcuts import render, redirect from django.template import Context, loader, RequestContext -from django.template.loader import render_to_string from django.utils.http import urlquote from django.utils.translation import ugettext as _ @@ -64,11 +63,11 @@ def personal_wiki(request, page_name="home"): wiki_exists = False owned_repos = seafile_api.get_owned_repo_list(username) owned_repos = [r for r in owned_repos if not r.encrypted] - return render_to_response("wiki/personal_wiki.html", { + return render(request, "wiki/personal_wiki.html", { "wiki_exists": wiki_exists, "owned_repos": owned_repos, "grps": joined_groups, - }, context_instance=RequestContext(request)) + }) except WikiPageMissing: repo = get_personal_wiki_repo(username) filename = page_name_to_file_name(clean_page_name(page_name)) @@ -96,7 +95,7 @@ def personal_wiki(request, page_name="home"): except (WikiDoesNotExist, WikiPageMissing) as e: wiki_index_exists = False - return render_to_response("wiki/personal_wiki.html", { + return render(request, "wiki/personal_wiki.html", { "wiki_exists": wiki_exists, "content": content, "page": os.path.splitext(dirent.obj_name)[0], @@ -109,7 +108,7 @@ def personal_wiki(request, page_name="home"): "wiki_index_exists": wiki_index_exists, "index_content": index_content, "grps": joined_groups, - }, context_instance=RequestContext(request)) + }) @login_required @user_mods_check @@ -137,13 +136,13 @@ def personal_wiki_pages(request): except WikiDoesNotExist: return render_error(request, _('Wiki does not exists.')) - return render_to_response("wiki/personal_wiki_pages.html", { + return render(request, "wiki/personal_wiki_pages.html", { "pages": pages, "repo_id": repo.id, "search_repo_id": repo.id, "search_wiki": True, "grps": joined_groups, - }, context_instance=RequestContext(request)) + }) @login_required diff --git a/thirdpart/registration/views.py b/thirdpart/registration/views.py index 92317f3b54..a362ad0969 100644 --- a/thirdpart/registration/views.py +++ b/thirdpart/registration/views.py @@ -5,8 +5,7 @@ Views which allow users to create and activate accounts. from django.shortcuts import redirect -from django.shortcuts import render_to_response -from django.template import RequestContext +from django.shortcuts import render from django.http import Http404 from registration.backends import get_backend @@ -87,13 +86,13 @@ def activate(request, backend, if extra_context is None: extra_context = {} - context = RequestContext(request) + context = {} for key, value in extra_context.items(): context[key] = callable(value) and value() or value - return render_to_response(template_name, + return render(request, template_name, kwargs, - context_instance=context) + context=context) def register(request, backend, success_url=None, form_class=None, @@ -206,7 +205,8 @@ def register(request, backend, success_url=None, form_class=None, if extra_context is None: extra_context = {} - context = RequestContext(request) + from django.template import RequestContext + context = {} for key, value in extra_context.items(): context[key] = callable(value) and value() or value @@ -214,9 +214,9 @@ def register(request, backend, success_url=None, form_class=None, if src: form = form_class(initial={'email': src}) - return render_to_response(template_name, { - 'form': form, - 'min_len': config.USER_PASSWORD_MIN_LENGTH, - 'strong_pwd_required': config.USER_STRONG_PASSWORD_REQUIRED, - 'level': config.USER_PASSWORD_STRENGTH_LEVEL, - }, context_instance=context) + context['form'] = form + context['min_len'] = config.USER_PASSWORD_MIN_LENGTH + context['strong_pwd_required'] = config.USER_STRONG_PASSWORD_REQUIRED + context['level'] = config.USER_PASSWORD_STRENGTH_LEVEL + + return render(request, template_name, context)