瀏覽代碼

Support Wagtail 2.3 and Django 2.1 (#33)

Timothy Allen 6 年之前
父節點
當前提交
3a0a869f81

+ 5 - 5
coderedcms/admin_urls.py

@@ -1,12 +1,12 @@
-from django.conf.urls import include, url
+from django.urls import include, path, re_path
 from wagtailimportexport import urls as wagtailimportexport_urls
 from wagtail.admin import urls as wagtailadmin_urls
 from coderedcms.views import clear_cache, import_pages_from_csv_file
 
 
 urlpatterns = [
-    url(r'^codered/clearcache$', clear_cache, name="clear_cache"),
-    url(r'^codered/import-export/import_from_csv/$', import_pages_from_csv_file, name="import_from_csv"),
-    url(r'', include(wagtailadmin_urls)),
-    url(r'', include(wagtailimportexport_urls)),
+    path('codered/clearcache', clear_cache, name="clear_cache"),
+    path('codered/import-export/import_from_csv/', import_pages_from_csv_file, name="import_from_csv"),
+    re_path(r'', include(wagtailadmin_urls)),
+    re_path(r'', include(wagtailimportexport_urls)),
 ]

+ 5 - 4
coderedcms/forms.py

@@ -45,13 +45,14 @@ FORM_FIELD_CHOICES = (
 )
 
 
-### Files
+# Files
 
 class SecureFileField(forms.FileField):
     custom_error_messages = {
         'blacklist_file': _('Submitted file is not allowed.'),
         'whitelist_file': _('Submitted file is not allowed.')
     }
+
     def __init__(self, **kwargs):
         super().__init__(**kwargs)
         self.error_messages.update(self.custom_error_messages)
@@ -73,7 +74,7 @@ class SecureFileField(forms.FileField):
                 raise ValidationError(self.error_messages['blacklist_file'])
 
 
-### Date
+# Date
 
 class CoderedDateInput(forms.DateInput):
     template_name = 'coderedcms/formfields/date.html'
@@ -82,7 +83,7 @@ class CoderedDateField(forms.DateField):
     widget = CoderedDateInput()
 
 
-### Datetime
+# Datetime
 
 class CoderedDateTimeInput(forms.DateTimeInput):
     template_name = 'coderedcms/formfields/datetime.html'
@@ -92,7 +93,7 @@ class CoderedDateTimeField(forms.DateTimeField):
     input_formats = ['%Y-%m-%dT%H:%M', '%m/%d/%Y %I:%M %p', '%m/%d/%Y %I:%M%p', '%m/%d/%Y %H:%M']
 
 
-### Time
+# Time
 
 class CoderedTimeInput(forms.TimeInput):
     template_name = 'coderedcms/formfields/time.html'

+ 8 - 5
coderedcms/importexport.py

@@ -13,9 +13,11 @@ from wagtailimportexport.importing import update_page_references
 
 from coderedcms.forms import get_page_model_choices
 
+
 class ImportPagesFromCSVFileForm(ImportFromFileForm):
     page_type = forms.ChoiceField(choices=get_page_model_choices)
 
+
 @transaction.atomic()
 def import_pages(import_data, parent_page):
     """
@@ -70,16 +72,17 @@ def import_pages(import_data, parent_page):
 
     return len(import_data['pages'])
 
+
 def convert_csv_to_json(csv_file, page_type):
     pages_json = {
         "pages": []
     }
     default_page_data = {
-      "app_label": "website",
-      "content": {
-        "pk": None
-      },
-      "model": page_type
+        "app_label": "website",
+        "content": {
+            "pk": None
+        },
+        "model": page_type
     }
 
     pages_csv_dict = csv.DictReader(csv_file)

+ 6 - 6
coderedcms/project_template/project_name/urls.py

@@ -1,5 +1,5 @@
 from django.conf import settings
-from django.conf.urls import include, url
+from django.urls import include, path, re_path
 from django.contrib import admin
 from wagtail.documents import urls as wagtaildocs_urls
 from coderedcms import admin_urls as coderedadmin_urls
@@ -8,19 +8,19 @@ from coderedcms import urls as codered_urls
 
 urlpatterns = [
     # Admin
-    url(r'^django-admin/', admin.site.urls),
-    url(r'^admin/', include(coderedadmin_urls)),
+    path('django-admin/', admin.site.urls),
+    path('admin/', include(coderedadmin_urls)),
 
     # Documents
-    url(r'^docs/', include(wagtaildocs_urls)),
+    path('docs/', include(wagtaildocs_urls)),
 
     # Search
-    url(r'^search/', include(coderedsearch_urls)),
+    path('search/', include(coderedsearch_urls)),
 
     # For anything not caught by a more specific rule above, hand over to
     # the page serving mechanism. This should be the last pattern in
     # the list:
-    url(r'', include(codered_urls)),
+    re_path(r'', include(codered_urls)),
 
     # Alternatively, if you want CMS pages to be served from a subpath
     # of your site, rather than the site root:

+ 146 - 146
coderedcms/schema.py

@@ -1,149 +1,149 @@
 SCHEMA_ORG_CHOICES = (
-    ('Organization','Organization'),
-    ('Airline','Organization > Airline'),
-    ('Corporation','Organization > Corporation'),
-    ('EducationalOrganization','Organization > EducationalOrganization'),
-    ('CollegeOrUniversity','Organization > EducationalOrganization > CollegeOrUniversity'),
-    ('ElementarySchool','Organization > EducationalOrganization > ElementarySchool'),
-    ('HighSchool','Organization > EducationalOrganization > HighSchool'),
-    ('MiddleSchool','Organization > EducationalOrganization > MiddleSchool'),
-    ('Preschool','Organization > EducationalOrganization > Preschool'),
-    ('School','Organization > EducationalOrganization > School'),
-    ('GovernmentOrganization','Organization > GovernmentOrganization'),
-    ('LocalBusiness','Organization > LocalBusiness'),
-    ('AnimalShelter','Organization > LocalBusiness > AnimalShelter'),
-    ('AutomotiveBusiness','Organization > LocalBusiness > AutomotiveBusiness'),
-    ('AutoBodyShop','Organization > LocalBusiness > AutomotiveBusiness > AutoBodyShop'),
-    ('AutoDealer','Organization > LocalBusiness > AutomotiveBusiness > AutoDealer'),
-    ('AutoPartsStore','Organization > LocalBusiness > AutomotiveBusiness > AutoPartsStore'),
-    ('AutoRental','Organization > LocalBusiness > AutomotiveBusiness > AutoRental'),
-    ('AutoRepair','Organization > LocalBusiness > AutomotiveBusiness > AutoRepair'),
-    ('AutoWash','Organization > LocalBusiness > AutomotiveBusiness > AutoWash'),
-    ('GasStation','Organization > LocalBusiness > AutomotiveBusiness > GasStation'),
-    ('MotorcycleDealer','Organization > LocalBusiness > AutomotiveBusiness > MotorcycleDealer'),
-    ('MotorcycleRepair','Organization > LocalBusiness > AutomotiveBusiness > MotorcycleRepair'),
-    ('ChildCare','Organization > LocalBusiness > ChildCare'),
-    ('Dentist','Organization > LocalBusiness > Dentist'),
-    ('DryCleaningOrLaundry','Organization > LocalBusiness > DryCleaningOrLaundry'),
-    ('EmergencyService','Organization > LocalBusiness > EmergencyService'),
-    ('FireStation','Organization > LocalBusiness > EmergencyService > FireStation'),
-    ('Hospital','Organization > LocalBusiness > EmergencyService > Hospital'),
-    ('PoliceStation','Organization > LocalBusiness > EmergencyService > PoliceStation'),
-    ('EmploymentAgency','Organization > LocalBusiness > EmploymentAgency'),
-    ('EntertainmentBusiness','Organization > LocalBusiness > EntertainmentBusiness'),
-    ('AdultEntertainment','Organization > LocalBusiness > EntertainmentBusiness > AdultEntertainment'),
-    ('AmusementPark','Organization > LocalBusiness > EntertainmentBusiness > AmusementPark'),
-    ('ArtGallery','Organization > LocalBusiness > EntertainmentBusiness > ArtGallery'),
-    ('Casino','Organization > LocalBusiness > EntertainmentBusiness > Casino'),
-    ('ComedyClub','Organization > LocalBusiness > EntertainmentBusiness > ComedyClub'),
-    ('MovieTheater','Organization > LocalBusiness > EntertainmentBusiness > MovieTheater'),
-    ('NightClub','Organization > LocalBusiness > EntertainmentBusiness > NightClub'),
-    ('FinancialService','Organization > LocalBusiness > FinancialService'),
-    ('AccountingService','Organization > LocalBusiness > FinancialService > AccountingService'),
-    ('AutomatedTeller','Organization > LocalBusiness > FinancialService > AutomatedTeller'),
-    ('BankOrCreditUnion','Organization > LocalBusiness > FinancialService > BankOrCreditUnion'),
-    ('InsuranceAgency','Organization > LocalBusiness > FinancialService > InsuranceAgency'),
-    ('FoodEstablishment','Organization > LocalBusiness > FoodEstablishment'),
-    ('Bakery','Organization > LocalBusiness > FoodEstablishment > Bakery'),
-    ('BarOrPub','Organization > LocalBusiness > FoodEstablishment > BarOrPub'),
-    ('Brewery','Organization > LocalBusiness > FoodEstablishment > Brewery'),
-    ('CafeOrCoffeeShop','Organization > LocalBusiness > FoodEstablishment > CafeOrCoffeeShop'),
-    ('FastFoodRestaurant','Organization > LocalBusiness > FoodEstablishment > FastFoodRestaurant'),
-    ('IceCreamShop','Organization > LocalBusiness > FoodEstablishment > IceCreamShop'),
-    ('Restaurant','Organization > LocalBusiness > FoodEstablishment > Restaurant'),
-    ('Winery','Organization > LocalBusiness > FoodEstablishment > Winery'),
-    ('GovernmentOffice','Organization > LocalBusiness > GovernmentOffice'),
-    ('PostOffice','Organization > LocalBusiness > GovernmentOffice > PostOffice'),
-    ('HealthAndBeautyBusiness','Organization > LocalBusiness > HealthAndBeautyBusiness'),
-    ('BeautySalon','Organization > LocalBusiness > HealthAndBeautyBusiness > BeautySalon'),
-    ('DaySpa','Organization > LocalBusiness > HealthAndBeautyBusiness > DaySpa'),
-    ('HairSalon','Organization > LocalBusiness > HealthAndBeautyBusiness > HairSalon'),
-    ('HealthClub','Organization > LocalBusiness > HealthAndBeautyBusiness > HealthClub'),
-    ('NailSalon','Organization > LocalBusiness > HealthAndBeautyBusiness > NailSalon'),
-    ('TattooParlor','Organization > LocalBusiness > HealthAndBeautyBusiness > TattooParlor'),
-    ('HomeAndConstructionBusiness','Organization > LocalBusiness > HomeAndConstructionBusiness'),
-    ('Electrician','Organization > LocalBusiness > HomeAndConstructionBusiness > Electrician'),
-    ('GeneralContractor','Organization > LocalBusiness > HomeAndConstructionBusiness > GeneralContractor'),
-    ('HVACBusiness','Organization > LocalBusiness > HomeAndConstructionBusiness > HVACBusiness'),
-    ('HousePainter','Organization > LocalBusiness > HomeAndConstructionBusiness > HousePainter'),
-    ('Locksmith','Organization > LocalBusiness > HomeAndConstructionBusiness > Locksmith'),
-    ('MovingCompany','Organization > LocalBusiness > HomeAndConstructionBusiness > MovingCompany'),
-    ('Plumber','Organization > LocalBusiness > HomeAndConstructionBusiness > Plumber'),
-    ('RoofingContractor','Organization > LocalBusiness > HomeAndConstructionBusiness > RoofingContractor'),
-    ('InternetCafe','Organization > LocalBusiness > InternetCafe'),
-    ('LegalService','Organization > LocalBusiness > LegalService'),
-    ('Attorney','Organization > LocalBusiness > LegalService > Attorney'),
-    ('Notary','Organization > LocalBusiness > LegalService > Notary'),
-    ('Library','Organization > LocalBusiness > Library'),
-    ('LodgingBusiness','Organization > LocalBusiness > LodgingBusiness'),
-    ('BedAndBreakfast','Organization > LocalBusiness > LodgingBusiness > BedAndBreakfast'),
-    ('Campground','Organization > LocalBusiness > LodgingBusiness > Campground'),
-    ('Hostel','Organization > LocalBusiness > LodgingBusiness > Hostel'),
-    ('Hotel','Organization > LocalBusiness > LodgingBusiness > Hotel'),
-    ('Motel','Organization > LocalBusiness > LodgingBusiness > Motel'),
-    ('Resort','Organization > LocalBusiness > LodgingBusiness > Resort'),
-    ('ProfessionalService','Organization > LocalBusiness > ProfessionalService'),
-    ('RadioStation','Organization > LocalBusiness > RadioStation'),
-    ('RealEstateAgent','Organization > LocalBusiness > RealEstateAgent'),
-    ('RecyclingCenter','Organization > LocalBusiness > RecyclingCenter'),
-    ('SelfStorage','Organization > LocalBusiness > SelfStorage'),
-    ('ShoppingCenter','Organization > LocalBusiness > ShoppingCenter'),
-    ('SportsActivityLocation','Organization > LocalBusiness > SportsActivityLocation'),
-    ('BowlingAlley','Organization > LocalBusiness > SportsActivityLocation > BowlingAlley'),
-    ('ExerciseGym','Organization > LocalBusiness > SportsActivityLocation > ExerciseGym'),
-    ('GolfCourse','Organization > LocalBusiness > SportsActivityLocation > GolfCourse'),
-    ('HealthClub','Organization > LocalBusiness > SportsActivityLocation > HealthClub'),
-    ('PublicSwimmingPool','Organization > LocalBusiness > SportsActivityLocation > PublicSwimmingPool'),
-    ('SkiResort','Organization > LocalBusiness > SportsActivityLocation > SkiResort'),
-    ('SportsClub','Organization > LocalBusiness > SportsActivityLocation > SportsClub'),
-    ('StadiumOrArena','Organization > LocalBusiness > SportsActivityLocation > StadiumOrArena'),
-    ('TennisComplex','Organization > LocalBusiness > SportsActivityLocation > TennisComplex'),
-    ('Store','Organization > LocalBusiness > Store'),
-    ('AutoPartsStore','Organization > LocalBusiness > Store > AutoPartsStore'),
-    ('BikeStore','Organization > LocalBusiness > Store > BikeStore'),
-    ('BookStore','Organization > LocalBusiness > Store > BookStore'),
-    ('ClothingStore','Organization > LocalBusiness > Store > ClothingStore'),
-    ('ComputerStore','Organization > LocalBusiness > Store > ComputerStore'),
-    ('ConvenienceStore','Organization > LocalBusiness > Store > ConvenienceStore'),
-    ('DepartmentStore','Organization > LocalBusiness > Store > DepartmentStore'),
-    ('ElectronicsStore','Organization > LocalBusiness > Store > ElectronicsStore'),
-    ('Florist','Organization > LocalBusiness > Store > Florist'),
-    ('FurnitureStore','Organization > LocalBusiness > Store > FurnitureStore'),
-    ('GardenStore','Organization > LocalBusiness > Store > GardenStore'),
-    ('GroceryStore','Organization > LocalBusiness > Store > GroceryStore'),
-    ('HardwareStore','Organization > LocalBusiness > Store > HardwareStore'),
-    ('HobbyShop','Organization > LocalBusiness > Store > HobbyShop'),
-    ('HomeGoodsStore','Organization > LocalBusiness > Store > HomeGoodsStore'),
-    ('JewelryStore','Organization > LocalBusiness > Store > JewelryStore'),
-    ('LiquorStore','Organization > LocalBusiness > Store > LiquorStore'),
-    ('MensClothingStore','Organization > LocalBusiness > Store > MensClothingStore'),
-    ('MobilePhoneStore','Organization > LocalBusiness > Store > MobilePhoneStore'),
-    ('MovieRentalStore','Organization > LocalBusiness > Store > MovieRentalStore'),
-    ('MusicStore','Organization > LocalBusiness > Store > MusicStore'),
-    ('OfficeEquipmentStore','Organization > LocalBusiness > Store > OfficeEquipmentStore'),
-    ('OutletStore','Organization > LocalBusiness > Store > OutletStore'),
-    ('PawnShop','Organization > LocalBusiness > Store > PawnShop'),
-    ('PetStore','Organization > LocalBusiness > Store > PetStore'),
-    ('ShoeStore','Organization > LocalBusiness > Store > ShoeStore'),
-    ('SportingGoodsStore','Organization > LocalBusiness > Store > SportingGoodsStore'),
-    ('TireShop','Organization > LocalBusiness > Store > TireShop'),
-    ('ToyStore','Organization > LocalBusiness > Store > ToyStore'),
-    ('WholesaleStore','Organization > LocalBusiness > Store > WholesaleStore'),
-    ('TelevisionStation','Organization > LocalBusiness > TelevisionStation'),
-    ('TouristInformationCenter','Organization > LocalBusiness > TouristInformationCenter'),
-    ('TravelAgency','Organization > LocalBusiness > TravelAgency'),
-    ('MedicalOrganization','Organization > MedicalOrganization'),
-    ('Dentist','Organization > MedicalOrganization > Dentist'),
-    ('Hospital','Organization > MedicalOrganization > Hospital'),
-    ('Pharmacy','Organization > MedicalOrganization > Pharmacy'),
-    ('Physician','Organization > MedicalOrganization > Physician'),
-    ('NGO','Organization > NGO'),
-    ('PerformingGroup','Organization > PerformingGroup'),
-    ('DanceGroup','Organization > PerformingGroup > DanceGroup'),
-    ('MusicGroup','Organization > PerformingGroup > MusicGroup'),
-    ('TheaterGroup','Organization > PerformingGroup > TheaterGroup'),
-    ('SportsOrganization','Organization > SportsOrganization'),
-    ('SportsTeam','Organization > SportsOrganization > SportsTeam'),
+    ('Organization', 'Organization'),
+    ('Airline', 'Organization > Airline'),
+    ('Corporation', 'Organization > Corporation'),
+    ('EducationalOrganization', 'Organization > EducationalOrganization'),
+    ('CollegeOrUniversity', 'Organization > EducationalOrganization > CollegeOrUniversity'),
+    ('ElementarySchool', 'Organization > EducationalOrganization > ElementarySchool'),
+    ('HighSchool', 'Organization > EducationalOrganization > HighSchool'),
+    ('MiddleSchool', 'Organization > EducationalOrganization > MiddleSchool'),
+    ('Preschool', 'Organization > EducationalOrganization > Preschool'),
+    ('School', 'Organization > EducationalOrganization > School'),
+    ('GovernmentOrganization', 'Organization > GovernmentOrganization'),
+    ('LocalBusiness', 'Organization > LocalBusiness'),
+    ('AnimalShelter', 'Organization > LocalBusiness > AnimalShelter'),
+    ('AutomotiveBusiness', 'Organization > LocalBusiness > AutomotiveBusiness'),
+    ('AutoBodyShop', 'Organization > LocalBusiness > AutomotiveBusiness > AutoBodyShop'),
+    ('AutoDealer', 'Organization > LocalBusiness > AutomotiveBusiness > AutoDealer'),
+    ('AutoPartsStore', 'Organization > LocalBusiness > AutomotiveBusiness > AutoPartsStore'),
+    ('AutoRental', 'Organization > LocalBusiness > AutomotiveBusiness > AutoRental'),
+    ('AutoRepair', 'Organization > LocalBusiness > AutomotiveBusiness > AutoRepair'),
+    ('AutoWash', 'Organization > LocalBusiness > AutomotiveBusiness > AutoWash'),
+    ('GasStation', 'Organization > LocalBusiness > AutomotiveBusiness > GasStation'),
+    ('MotorcycleDealer', 'Organization > LocalBusiness > AutomotiveBusiness > MotorcycleDealer'),
+    ('MotorcycleRepair', 'Organization > LocalBusiness > AutomotiveBusiness > MotorcycleRepair'),
+    ('ChildCare', 'Organization > LocalBusiness > ChildCare'),
+    ('Dentist', 'Organization > LocalBusiness > Dentist'),
+    ('DryCleaningOrLaundry', 'Organization > LocalBusiness > DryCleaningOrLaundry'),
+    ('EmergencyService', 'Organization > LocalBusiness > EmergencyService'),
+    ('FireStation', 'Organization > LocalBusiness > EmergencyService > FireStation'),
+    ('Hospital', 'Organization > LocalBusiness > EmergencyService > Hospital'),
+    ('PoliceStation', 'Organization > LocalBusiness > EmergencyService > PoliceStation'),
+    ('EmploymentAgency', 'Organization > LocalBusiness > EmploymentAgency'),
+    ('EntertainmentBusiness', 'Organization > LocalBusiness > EntertainmentBusiness'),
+    ('AdultEntertainment', 'Organization > LocalBusiness > EntertainmentBusiness > AdultEntertainment'),
+    ('AmusementPark', 'Organization > LocalBusiness > EntertainmentBusiness > AmusementPark'),
+    ('ArtGallery', 'Organization > LocalBusiness > EntertainmentBusiness > ArtGallery'),
+    ('Casino', 'Organization > LocalBusiness > EntertainmentBusiness > Casino'),
+    ('ComedyClub', 'Organization > LocalBusiness > EntertainmentBusiness > ComedyClub'),
+    ('MovieTheater', 'Organization > LocalBusiness > EntertainmentBusiness > MovieTheater'),
+    ('NightClub', 'Organization > LocalBusiness > EntertainmentBusiness > NightClub'),
+    ('FinancialService', 'Organization > LocalBusiness > FinancialService'),
+    ('AccountingService', 'Organization > LocalBusiness > FinancialService > AccountingService'),
+    ('AutomatedTeller', 'Organization > LocalBusiness > FinancialService > AutomatedTeller'),
+    ('BankOrCreditUnion', 'Organization > LocalBusiness > FinancialService > BankOrCreditUnion'),
+    ('InsuranceAgency', 'Organization > LocalBusiness > FinancialService > InsuranceAgency'),
+    ('FoodEstablishment', 'Organization > LocalBusiness > FoodEstablishment'),
+    ('Bakery', 'Organization > LocalBusiness > FoodEstablishment > Bakery'),
+    ('BarOrPub', 'Organization > LocalBusiness > FoodEstablishment > BarOrPub'),
+    ('Brewery', 'Organization > LocalBusiness > FoodEstablishment > Brewery'),
+    ('CafeOrCoffeeShop', 'Organization > LocalBusiness > FoodEstablishment > CafeOrCoffeeShop'),
+    ('FastFoodRestaurant', 'Organization > LocalBusiness > FoodEstablishment > FastFoodRestaurant'),
+    ('IceCreamShop', 'Organization > LocalBusiness > FoodEstablishment > IceCreamShop'),
+    ('Restaurant', 'Organization > LocalBusiness > FoodEstablishment > Restaurant'),
+    ('Winery', 'Organization > LocalBusiness > FoodEstablishment > Winery'),
+    ('GovernmentOffice', 'Organization > LocalBusiness > GovernmentOffice'),
+    ('PostOffice', 'Organization > LocalBusiness > GovernmentOffice > PostOffice'),
+    ('HealthAndBeautyBusiness', 'Organization > LocalBusiness > HealthAndBeautyBusiness'),
+    ('BeautySalon', 'Organization > LocalBusiness > HealthAndBeautyBusiness > BeautySalon'),
+    ('DaySpa', 'Organization > LocalBusiness > HealthAndBeautyBusiness > DaySpa'),
+    ('HairSalon', 'Organization > LocalBusiness > HealthAndBeautyBusiness > HairSalon'),
+    ('HealthClub', 'Organization > LocalBusiness > HealthAndBeautyBusiness > HealthClub'),
+    ('NailSalon', 'Organization > LocalBusiness > HealthAndBeautyBusiness > NailSalon'),
+    ('TattooParlor', 'Organization > LocalBusiness > HealthAndBeautyBusiness > TattooParlor'),
+    ('HomeAndConstructionBusiness', 'Organization > LocalBusiness > HomeAndConstructionBusiness'),
+    ('Electrician', 'Organization > LocalBusiness > HomeAndConstructionBusiness > Electrician'),
+    ('GeneralContractor', 'Organization > LocalBusiness > HomeAndConstructionBusiness > GeneralContractor'),
+    ('HVACBusiness', 'Organization > LocalBusiness > HomeAndConstructionBusiness > HVACBusiness'),
+    ('HousePainter', 'Organization > LocalBusiness > HomeAndConstructionBusiness > HousePainter'),
+    ('Locksmith', 'Organization > LocalBusiness > HomeAndConstructionBusiness > Locksmith'),
+    ('MovingCompany', 'Organization > LocalBusiness > HomeAndConstructionBusiness > MovingCompany'),
+    ('Plumber', 'Organization > LocalBusiness > HomeAndConstructionBusiness > Plumber'),
+    ('RoofingContractor', 'Organization > LocalBusiness > HomeAndConstructionBusiness > RoofingContractor'),
+    ('InternetCafe', 'Organization > LocalBusiness > InternetCafe'),
+    ('LegalService', 'Organization > LocalBusiness > LegalService'),
+    ('Attorney', 'Organization > LocalBusiness > LegalService > Attorney'),
+    ('Notary', 'Organization > LocalBusiness > LegalService > Notary'),
+    ('Library', 'Organization > LocalBusiness > Library'),
+    ('LodgingBusiness', 'Organization > LocalBusiness > LodgingBusiness'),
+    ('BedAndBreakfast', 'Organization > LocalBusiness > LodgingBusiness > BedAndBreakfast'),
+    ('Campground', 'Organization > LocalBusiness > LodgingBusiness > Campground'),
+    ('Hostel', 'Organization > LocalBusiness > LodgingBusiness > Hostel'),
+    ('Hotel', 'Organization > LocalBusiness > LodgingBusiness > Hotel'),
+    ('Motel', 'Organization > LocalBusiness > LodgingBusiness > Motel'),
+    ('Resort', 'Organization > LocalBusiness > LodgingBusiness > Resort'),
+    ('ProfessionalService', 'Organization > LocalBusiness > ProfessionalService'),
+    ('RadioStation', 'Organization > LocalBusiness > RadioStation'),
+    ('RealEstateAgent', 'Organization > LocalBusiness > RealEstateAgent'),
+    ('RecyclingCenter', 'Organization > LocalBusiness > RecyclingCenter'),
+    ('SelfStorage', 'Organization > LocalBusiness > SelfStorage'),
+    ('ShoppingCenter', 'Organization > LocalBusiness > ShoppingCenter'),
+    ('SportsActivityLocation', 'Organization > LocalBusiness > SportsActivityLocation'),
+    ('BowlingAlley', 'Organization > LocalBusiness > SportsActivityLocation > BowlingAlley'),
+    ('ExerciseGym', 'Organization > LocalBusiness > SportsActivityLocation > ExerciseGym'),
+    ('GolfCourse', 'Organization > LocalBusiness > SportsActivityLocation > GolfCourse'),
+    ('HealthClub', 'Organization > LocalBusiness > SportsActivityLocation > HealthClub'),
+    ('PublicSwimmingPool', 'Organization > LocalBusiness > SportsActivityLocation > PublicSwimmingPool'),
+    ('SkiResort', 'Organization > LocalBusiness > SportsActivityLocation > SkiResort'),
+    ('SportsClub', 'Organization > LocalBusiness > SportsActivityLocation > SportsClub'),
+    ('StadiumOrArena', 'Organization > LocalBusiness > SportsActivityLocation > StadiumOrArena'),
+    ('TennisComplex', 'Organization > LocalBusiness > SportsActivityLocation > TennisComplex'),
+    ('Store', 'Organization > LocalBusiness > Store'),
+    ('AutoPartsStore', 'Organization > LocalBusiness > Store > AutoPartsStore'),
+    ('BikeStore', 'Organization > LocalBusiness > Store > BikeStore'),
+    ('BookStore', 'Organization > LocalBusiness > Store > BookStore'),
+    ('ClothingStore', 'Organization > LocalBusiness > Store > ClothingStore'),
+    ('ComputerStore', 'Organization > LocalBusiness > Store > ComputerStore'),
+    ('ConvenienceStore', 'Organization > LocalBusiness > Store > ConvenienceStore'),
+    ('DepartmentStore', 'Organization > LocalBusiness > Store > DepartmentStore'),
+    ('ElectronicsStore', 'Organization > LocalBusiness > Store > ElectronicsStore'),
+    ('Florist', 'Organization > LocalBusiness > Store > Florist'),
+    ('FurnitureStore', 'Organization > LocalBusiness > Store > FurnitureStore'),
+    ('GardenStore', 'Organization > LocalBusiness > Store > GardenStore'),
+    ('GroceryStore', 'Organization > LocalBusiness > Store > GroceryStore'),
+    ('HardwareStore', 'Organization > LocalBusiness > Store > HardwareStore'),
+    ('HobbyShop', 'Organization > LocalBusiness > Store > HobbyShop'),
+    ('HomeGoodsStore', 'Organization > LocalBusiness > Store > HomeGoodsStore'),
+    ('JewelryStore', 'Organization > LocalBusiness > Store > JewelryStore'),
+    ('LiquorStore', 'Organization > LocalBusiness > Store > LiquorStore'),
+    ('MensClothingStore', 'Organization > LocalBusiness > Store > MensClothingStore'),
+    ('MobilePhoneStore', 'Organization > LocalBusiness > Store > MobilePhoneStore'),
+    ('MovieRentalStore', 'Organization > LocalBusiness > Store > MovieRentalStore'),
+    ('MusicStore', 'Organization > LocalBusiness > Store > MusicStore'),
+    ('OfficeEquipmentStore', 'Organization > LocalBusiness > Store > OfficeEquipmentStore'),
+    ('OutletStore', 'Organization > LocalBusiness > Store > OutletStore'),
+    ('PawnShop', 'Organization > LocalBusiness > Store > PawnShop'),
+    ('PetStore', 'Organization > LocalBusiness > Store > PetStore'),
+    ('ShoeStore', 'Organization > LocalBusiness > Store > ShoeStore'),
+    ('SportingGoodsStore', 'Organization > LocalBusiness > Store > SportingGoodsStore'),
+    ('TireShop', 'Organization > LocalBusiness > Store > TireShop'),
+    ('ToyStore', 'Organization > LocalBusiness > Store > ToyStore'),
+    ('WholesaleStore', 'Organization > LocalBusiness > Store > WholesaleStore'),
+    ('TelevisionStation', 'Organization > LocalBusiness > TelevisionStation'),
+    ('TouristInformationCenter', 'Organization > LocalBusiness > TouristInformationCenter'),
+    ('TravelAgency', 'Organization > LocalBusiness > TravelAgency'),
+    ('MedicalOrganization', 'Organization > MedicalOrganization'),
+    ('Dentist', 'Organization > MedicalOrganization > Dentist'),
+    ('Hospital', 'Organization > MedicalOrganization > Hospital'),
+    ('Pharmacy', 'Organization > MedicalOrganization > Pharmacy'),
+    ('Physician', 'Organization > MedicalOrganization > Physician'),
+    ('NGO', 'Organization > NGO'),
+    ('PerformingGroup', 'Organization > PerformingGroup'),
+    ('DanceGroup', 'Organization > PerformingGroup > DanceGroup'),
+    ('MusicGroup', 'Organization > PerformingGroup > MusicGroup'),
+    ('TheaterGroup', 'Organization > PerformingGroup > TheaterGroup'),
+    ('SportsOrganization', 'Organization > SportsOrganization'),
+    ('SportsTeam', 'Organization > SportsOrganization > SportsTeam'),
 )
 
 SCHEMA_ACTION_CHOICES = (
@@ -161,5 +161,5 @@ SCHEMA_RESULT_CHOICES = (
     ('RentalCarReservation', 'RentalCarReservation'),
     ('ReservationPackage', 'ReservationPackage'),
     ('TaxiReservation', 'TaxiReservation'),
-    ('TrainReservation','TrainReservation'),
+    ('TrainReservation', 'TrainReservation'),
 )

+ 2 - 2
coderedcms/search_urls.py

@@ -1,8 +1,8 @@
-from django.conf.urls import url
+from django.urls import re_path
 
 from coderedcms.views import search
 from coderedcms.utils import cache_page
 
 urlpatterns = [
-    url(r'', cache_page(search), name='codered_search'),
+    re_path(r'', cache_page(search), name='codered_search'),
 ]

+ 14 - 12
coderedcms/settings.py

@@ -10,8 +10,8 @@ DEFAULTS = {
     'CACHE_PAGES': True,
     'CACHE_BACKEND': 'default',
 
-    'PROTECTED_MEDIA_URL' : '/protected/',
-    'PROTECTED_MEDIA_ROOT' :  os.path.join(BASE_DIR, 'protected'),
+    'PROTECTED_MEDIA_URL': '/protected/',
+    'PROTECTED_MEDIA_ROOT': os.path.join(BASE_DIR, 'protected'),
     'PROTECTED_MEDIA_UPLOAD_WHITELIST': [],
     'PROTECTED_MEDIA_UPLOAD_BLACKLIST': ['.sh', '.exe', '.bat', '.ps1', '.app', '.jar', '.py', '.php', '.pl', '.rb'],
 
@@ -53,16 +53,16 @@ DEFAULTS = {
     'FRONTEND_COL_SIZE_CHOICES': (
         ('', 'Automatically size'),
         ('12', 'Full row'),
-        ('6',  'Half - 1/2 column'),
-        ('4',  'Thirds - 1/3 column'),
-        ('8',  'Thirds - 2/3 column'),
-        ('3',  'Quarters - 1/4 column'),
-        ('9',  'Quarters - 3/4 column'),
-        ('2',  'Sixths - 1/6 column'),
+        ('6', 'Half - 1/2 column'),
+        ('4', 'Thirds - 1/3 column'),
+        ('8', 'Thirds - 2/3 column'),
+        ('3', 'Quarters - 1/4 column'),
+        ('9', 'Quarters - 3/4 column'),
+        ('2', 'Sixths - 1/6 column'),
         ('10', 'Sixths - 5/6 column'),
-        ('1',  'Twelfths - 1/12 column'),
-        ('5',  'Twelfths - 5/12 column'),
-        ('7',  'Twelfths - 7/12 column'),
+        ('1', 'Twelfths - 1/12 column'),
+        ('5', 'Twelfths - 5/12 column'),
+        ('7', 'Twelfths - 7/12 column'),
         ('11', 'Twelfths - 11/12 column'),
     ),
 
@@ -165,6 +165,7 @@ DEFAULTS = {
     },
 }
 
+
 @lru_cache()
 def get_config():
     config = DEFAULTS.copy()
@@ -174,11 +175,12 @@ def get_config():
             config[var] = getattr(settings, cr_var)
     return config
 
+
 cr_settings = get_config()
 
 try:
     import bootstrap4.bootstrap as bootstrap
-except:
+except ImportError:
     import bootstrap3.bootstrap as bootstrap
 
 get_bootstrap_setting = bootstrap.get_bootstrap_setting

+ 12 - 11
coderedcms/urls.py

@@ -1,5 +1,5 @@
-from django.conf.urls import url
-from django.contrib.auth import views as auth_views
+from django.urls import path, re_path
+from django.contrib.auth.views import LoginView
 from wagtail.contrib.sitemaps.views import sitemap
 from wagtail.core.urls import serve_pattern, WAGTAIL_FRONTEND_LOGIN_TEMPLATE
 from wagtail.core import views as wagtail_views
@@ -9,19 +9,20 @@ from coderedcms.views import robots, serve_protected_file
 from coderedcms.utils import cache_page
 
 urlpatterns = [
-
     # CodeRed custom URLs
-    url(r'^sitemap\.xml$', cache_page(sitemap), name='codered_sitemap'),
-    url(r'^robots\.txt$', cache_page(robots), name='codered_robots'),
-    url(r'^{0}(?P<path>.*)$'.format(cr_settings['PROTECTED_MEDIA_URL'].lstrip('/')), serve_protected_file, name="serve_protected_file"),
+    re_path(r'^sitemap\.xml$', cache_page(sitemap), name='codered_sitemap'),
+    re_path(r'^robots\.txt$', cache_page(robots), name='codered_robots'),
+    re_path(r'^{0}(?P<path>.*)$'.format(cr_settings['PROTECTED_MEDIA_URL'].lstrip('/')), serve_protected_file, name="serve_protected_file"),
 
     # Direct copy of wagtail.core.urls
-    url(r'^_util/authenticate_with_password/(\d+)/(\d+)/$', wagtail_views.authenticate_with_password,
-        name='wagtailcore_authenticate_with_password'),
-    url(r'^_util/login/$', auth_views.login, {'template_name': WAGTAIL_FRONTEND_LOGIN_TEMPLATE},
-        name='wagtailcore_login'),
+    re_path(
+        r'^_util/authenticate_with_password/(\d+)/(\d+)/$',
+        wagtail_views.authenticate_with_password,
+        name='wagtailcore_authenticate_with_password'
+    ),
+    path('_util/login/', LoginView.as_view(template_name=WAGTAIL_FRONTEND_LOGIN_TEMPLATE), name='wagtailcore_login'),
 
     # Wrap the serve function with coderedcms cache
-    url(serve_pattern, cache_page(wagtail_views.serve), name='wagtail_serve'),
+    re_path(serve_pattern, cache_page(wagtail_views.serve), name='wagtail_serve'),
 
 ]

+ 1 - 0
coderedcms/wagtail_hooks.py

@@ -11,6 +11,7 @@ from wagtail.core.models import UserPagePermissionsProxy, get_page_models
 from coderedcms import utils
 from coderedcms.models import CoderedFormPage
 
+
 @hooks.register('insert_global_admin_css')
 def global_admin_css():
     return format_html('<link rel="stylesheet" type="text/css" href="{}">', static('css/codered-admin.css'))

+ 2 - 2
setup.py

@@ -40,9 +40,9 @@ setup(
     ],
     install_requires=[
         'django-bootstrap4',
-        'django>=1.11,<2.1',
+        'django>=1.11,<2.2',
         'pygments>=2.2.0,<3.0',
-        'wagtail==2.2.*',
+        'wagtail==2.3.*',
         'wagtailfontawesome>=1.1.3,<2.0',
         'geocoder>=1.38.1,<2.0',
         'wagtail-import-export>=0.1,<0.2'