1414from django .views .decorators .cache import never_cache
1515from django .urls import reverse
1616import uuid
17- from django .contrib .gis .serializers import geojson
18- from django .http import JsonResponse
19- from django .utils import timezone
20- from django .utils .timezone import now , get_default_timezone
17+ from django .utils .timezone import get_default_timezone
2118from datetime import datetime
2219import imaplib
2320import time
2421from math import floor
2522from urllib .parse import unquote
2623from django .conf import settings
27- from django .core .serializers import serialize
2824from publications .models import BlockedEmail , BlockedDomain , Subscription , UserProfile , Publication , GlobalRegion
2925from django .contrib .auth import get_user_model
3026User = get_user_model ()
31- import tempfile , os , glob
27+ import tempfile , os
3228from pathlib import Path
3329from publications .tasks import regenerate_geojson_cache , regenerate_geopackage_cache
3430from osgeo import ogr , osr
@@ -383,14 +379,25 @@ def change_useremail(request):
383379 'text' : 'You attempted to change your email to an address that is blocked. Please contact support for assistance.'
384380 }
385381 })
386- messages .error (request , "Invalid email change request." )
387- return render (request , 'changeuser.html' )
388382 if not email_new or email_new == email_old :
389383 messages .error (request , "Invalid email change request." )
390- return render (request , 'changeuser.html' )
384+ return render (request , "error.html" , {
385+ 'error' : {
386+ 'class' : 'danger' ,
387+ 'title' : 'Invalid Email Change!' ,
388+ 'text' : 'You attempted to change your email to an address that is invalid. Please enter a valid email address that is different from the current one.'
389+ }
390+ })
391391 if User .objects .filter (email = email_new ).exists ():
392392 messages .error (request , "This email is already in use." )
393- return render (request , 'changeuser.html' )
393+ return render (request , "error.html" , {
394+ 'error' : {
395+ 'class' : 'danger' ,
396+ 'title' : 'Email Already In Use!' ,
397+ 'text' : 'You attempted to change your email to an address that is already in use.'
398+ }
399+ })
400+
394401 token = secrets .token_urlsafe (32 )
395402 cache .set (
396403 f"{ EMAIL_CONFIRMATION_TOKEN_PREFIX } _{ email_new } " ,
@@ -536,6 +543,20 @@ def finalize_account_deletion(request):
536543 del request .session [USER_DELETE_TOKEN_PREFIX ]
537544 request .session .modified = True
538545
546+ def feeds (request ):
547+ global_feeds = [
548+ { "title" : "Geo RSS" , "url" : reverse ("optimap:georss_feed" ) },
549+ { "title" : "Geo Atom" , "url" : reverse ("optimap:geoatom_feed" ) },
550+ { "title" : "W3C Geo" , "url" : reverse ("optimap:w3cgeo_feed" ) },
551+ ]
552+
553+ regions = GlobalRegion .objects .all ().order_by ("region_type" , "name" )
554+
555+ return render (request , "feeds.html" , {
556+ "global_feeds" : global_feeds ,
557+ "regions" : regions ,
558+ })
559+
539560class RobotsView (View ):
540561 http_method_names = ['get' ]
541562 def get (self , request ):
@@ -625,4 +646,4 @@ def article_landing(request, doi):
625646 "timeperiod_label" : _format_timeperiod (pub ),
626647 "authors_list" : _normalize_authors (pub ),
627648 }
628- return render (request , "article_landing.html" , context )
649+ return render (request , "article_landing.html" , context )
0 commit comments