0001_initial.py 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. # Generated by Django 2.0.7 on 2018-07-30 22:24
  2. import coderedcms.blocks.base_blocks
  3. import coderedcms.fields
  4. from django.db import migrations, models
  5. import django.db.models.deletion
  6. import django.forms.widgets
  7. import modelcluster.fields
  8. import wagtail.contrib.table_block.blocks
  9. import wagtail.blocks
  10. import wagtail.fields
  11. import wagtail.documents.blocks
  12. import wagtail.images.blocks
  13. import wagtail.snippets.blocks
  14. from wagtail.images import get_image_model_string
  15. class Migration(migrations.Migration):
  16. initial = True
  17. dependencies = [
  18. ('wagtailcore', '0040_page_draft_title'),
  19. migrations.swappable_dependency(get_image_model_string()),
  20. ]
  21. operations = [
  22. migrations.CreateModel(
  23. name='ADASettings',
  24. fields=[
  25. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  26. ('skip_navigation', models.BooleanField(default=False, help_text='Shows a "Skip Navigation" link above the navbar that takes you directly to the main content.', verbose_name='Show skip navigation link')),
  27. ('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.Site')),
  28. ],
  29. options={
  30. 'verbose_name': 'Accessibility',
  31. },
  32. ),
  33. migrations.CreateModel(
  34. name='AnalyticsSettings',
  35. fields=[
  36. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  37. ('ga_tracking_id', models.CharField(blank=True, help_text='Your Google Analytics tracking ID (begins with "UA-")', max_length=255, verbose_name='GA Tracking ID')),
  38. ('ga_track_button_clicks', models.BooleanField(default=False, help_text='Track all button clicks using Google Analytics event tracking. Event tracking details can be specified in each button’s advanced settings options.', verbose_name='Track button clicks')),
  39. ('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.Site')),
  40. ],
  41. options={
  42. 'verbose_name': 'Tracking',
  43. },
  44. ),
  45. migrations.CreateModel(
  46. name='Carousel',
  47. fields=[
  48. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  49. ('name', models.CharField(max_length=255, verbose_name='Name')),
  50. ('show_controls', models.BooleanField(default=True, help_text='Shows arrows on the left and right of the carousel to advance next or previous slides.', verbose_name='Show controls')),
  51. ('show_indicators', models.BooleanField(default=True, help_text='Shows small indicators at the bottom of the carousel based on the number of slides.', verbose_name='Show indicators')),
  52. ('animation', models.CharField(blank=True, choices=[('', 'Slide'), ('carousel-fade', 'Fade')], default='', help_text='The animation when transitioning between slides.', max_length=20, verbose_name='Animation')),
  53. ],
  54. options={
  55. 'verbose_name': 'Carousel',
  56. },
  57. ),
  58. migrations.CreateModel(
  59. name='CarouselSlide',
  60. fields=[
  61. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  62. ('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
  63. ('background_color', models.CharField(blank=True, help_text='Hexadecimal, rgba, or CSS color notation (e.g. #ff0011)', max_length=255, verbose_name='Background color')),
  64. ('custom_css_class', models.CharField(blank=True, max_length=255, verbose_name='Custom CSS class')),
  65. ('custom_id', models.CharField(blank=True, max_length=255, verbose_name='Custom ID')),
  66. ('content', coderedcms.fields.CoderedStreamField([], blank=True)),
  67. ('carousel', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='carousel_slides', to='coderedcms.Carousel', verbose_name='Carousel')),
  68. ('image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=get_image_model_string(), verbose_name='Image')),
  69. ],
  70. options={
  71. 'verbose_name': 'Carousel Slide',
  72. },
  73. ),
  74. migrations.CreateModel(
  75. name='CoderedPage',
  76. fields=[
  77. ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')),
  78. ('index_show_subpages', models.BooleanField(default=False, verbose_name='Show list of child pages')),
  79. ('index_order_by', models.CharField(choices=[('-first_published_at', 'Date first published, newest to oldest'), ('first_published_at', 'Date first published, oldest to newest'), ('-last_published_at', 'Date updated, newest to oldest'), ('last_published_at', 'Date updated, oldest to newest'), ('title', 'Title, alphabetical'), ('-title', 'Title, reverse alphabetical')], default='-first_published_at', max_length=255, verbose_name='Order child pages by')),
  80. ('index_num_per_page', models.PositiveIntegerField(default=10, verbose_name='Number per page')),
  81. ('custom_template', models.CharField(blank=True, max_length=255, verbose_name='Template')),
  82. ('struct_org_type', models.CharField(blank=True, 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')], default='', help_text='If blank, no structured data will be used on this page.', max_length=255, verbose_name='Organization type')),
  83. ('struct_org_name', models.CharField(blank=True, default='', help_text='Leave blank to use the site name in Settings > Sites', max_length=255, verbose_name='Organization name')),
  84. ('struct_org_phone', models.CharField(blank=True, help_text='Include country code for best results. For example: +1-216-555-8000', max_length=255, verbose_name='Telephone number')),
  85. ('struct_org_address_street', models.CharField(blank=True, help_text='House number and street. For example, 55 Public Square Suite 1710', max_length=255, verbose_name='Street address')),
  86. ('struct_org_address_locality', models.CharField(blank=True, help_text='City or locality. For example, Cleveland', max_length=255, verbose_name='City')),
  87. ('struct_org_address_region', models.CharField(blank=True, help_text='State, province, county, or region. For example, OH', max_length=255, verbose_name='State')),
  88. ('struct_org_address_postal', models.CharField(blank=True, help_text='Zip or postal code. For example, 44113', max_length=255, verbose_name='Postal code')),
  89. ('struct_org_address_country', models.CharField(blank=True, help_text='For example, USA. Two-letter ISO 3166-1 alpha-2 country code is also acceptible https://en.wikipedia.org/wiki/ISO_3166-1', max_length=255, verbose_name='Country')),
  90. ('struct_org_geo_lat', models.DecimalField(blank=True, decimal_places=8, max_digits=10, null=True, verbose_name='Geographic latitude')),
  91. ('struct_org_geo_lng', models.DecimalField(blank=True, decimal_places=8, max_digits=10, null=True, verbose_name='Geographic longitude')),
  92. ('struct_org_hours', wagtail.fields.StreamField([('hours', wagtail.blocks.StructBlock([('days', wagtail.blocks.MultipleChoiceBlock(choices=(('Monday', 'Monday'), ('Tuesday', 'Tuesday'), ('Wednesday', 'Wednesday'), ('Thursday', 'Thursday'), ('Friday', 'Friday'), ('Saturday', 'Saturday'), ('Sunday', 'Sunday')), help_text='For late night hours past 23:59, define each day in a separate block.', required=True, verbose_name='Days', widget=django.forms.widgets.CheckboxSelectMultiple)), ('start_time', wagtail.blocks.TimeBlock(verbose_name='Opening time')), ('end_time', wagtail.blocks.TimeBlock(verbose_name='Closing time'))]))], blank=True, verbose_name='Hours of operation')),
  93. ('struct_org_actions', wagtail.fields.StreamField([('actions', wagtail.blocks.StructBlock([('action_type', wagtail.blocks.ChoiceBlock(choices=[('OrderAction', 'OrderAction'), ('ReserveAction', 'ReserveAction')], verbose_name='Action Type')), ('target', wagtail.blocks.URLBlock(verbose_name='Target URL')), ('language', wagtail.blocks.CharBlock(default='en-US', help_text='If the action is offered in multiple languages, create separate actions for each language.', verbose_name='Language')), ('result_type', wagtail.blocks.ChoiceBlock(choices=[('Reservation', 'Reservation'), ('BusReservation', 'BusReservation'), ('EventReservation', 'EventReservation'), ('FlightReservation', 'FlightReservation'), ('FoodEstablishmentReservation', 'FoodEstablishmentReservation'), ('LodgingReservation', 'LodgingReservation'), ('RentalCarReservation', 'RentalCarReservation'), ('ReservationPackage', 'ReservationPackage'), ('TaxiReservation', 'TaxiReservation'), ('TrainReservation', 'TrainReservation')], help_text='Leave blank for OrderAction', required=False, verbose_name='Result Type')), ('result_name', wagtail.blocks.CharBlock(help_text='Example: "Reserve a table", "Book an appointment", etc.', required=False, verbose_name='Result Name')), ('extra_json', wagtail.blocks.RawHTMLBlock(classname='monospace', help_text='Additional JSON-LD inserted into the Action dictionary. Must be properties of https://schema.org/Action.', required=False, verbose_name='Additional action markup'))]))], blank=True, verbose_name='Actions')),
  94. ('struct_org_extra_json', models.TextField(blank=True, help_text='Additional JSON-LD inserted into the Organization dictionary. Must be properties of https://schema.org/Organization or the selected organization type.', verbose_name='Additional Organization markup')),
  95. ('cover_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=get_image_model_string(), verbose_name='Cover image')),
  96. ('og_image', models.ForeignKey(blank=True, help_text='The image shown when linking to this page on social media. If blank, defaults to article cover image, or logo in Settings > Layout > Logo', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=get_image_model_string(), verbose_name='Open Graph preview image')),
  97. ('struct_org_image', models.ForeignKey(blank=True, help_text='A photo of the facility. This photo will be cropped to 1:1, 4:3, and 16:9 aspect ratios automatically.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=get_image_model_string(), verbose_name='Photo of Organization')),
  98. ('struct_org_logo', models.ForeignKey(blank=True, help_text='Leave blank to use the logo in Settings > Layout > Logo', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=get_image_model_string(), verbose_name='Organization logo')),
  99. ],
  100. options={
  101. 'verbose_name': 'CodeRed Page',
  102. },
  103. bases=('wagtailcore.page',),
  104. ),
  105. migrations.CreateModel(
  106. name='Footer',
  107. fields=[
  108. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  109. ('name', models.CharField(max_length=255, verbose_name='Name')),
  110. ('custom_css_class', models.CharField(blank=True, max_length=255, verbose_name='Custom CSS Class')),
  111. ('custom_id', models.CharField(blank=True, max_length=255, verbose_name='Custom ID')),
  112. ('content', coderedcms.fields.CoderedStreamField([], blank=True, verbose_name='Content')),
  113. ],
  114. options={
  115. 'verbose_name': 'Footer',
  116. },
  117. ),
  118. migrations.CreateModel(
  119. name='GeneralSettings',
  120. fields=[
  121. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  122. ('from_email_address', models.EmailField(blank=True, help_text='The default email address this site uses to send emails.', max_length=255, verbose_name='From email address')),
  123. ('search_num_results', models.PositiveIntegerField(default=10, verbose_name='Number of results per page')),
  124. ('robots', models.TextField(blank=True, default='User-agent: *\nDisallow: /admin/\n\nUser-agent: *\nDisallow: /django-admin/\n\nUser-agent: *\nAllow: /\n\nSitemap: /sitemap.xml', help_text='Enter the contents of a robots.txt file.', verbose_name='robots.txt')),
  125. ('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.Site')),
  126. ],
  127. options={
  128. 'verbose_name': 'General',
  129. },
  130. ),
  131. migrations.CreateModel(
  132. name='LayoutSettings',
  133. fields=[
  134. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  135. ('navbar_color_scheme', models.CharField(blank=True, choices=[('navbar-light', 'Light - for use with a light-colored navbar'), ('navbar-dark', 'Dark - for use with a dark-colored navbar')], default='navbar-light', help_text='Optimizes text and other navbar elements for use with light or dark backgrounds.', max_length=50, verbose_name='Navbar color scheme')),
  136. ('navbar_class', models.CharField(blank=True, default='bg-light', help_text='Custom classes applied to navbar e.g. "bg-light", "bg-dark", "bg-primary".', max_length=255, verbose_name='Navbar CSS class')),
  137. ('navbar_fixed', models.BooleanField(default=False, help_text='Fixed navbar will remain at the top of the page when scrolling.', verbose_name='Fixed navbar')),
  138. ('navbar_wrapper_fluid', models.BooleanField(default=True, help_text='The navbar will fill edge to edge.', verbose_name='Full width navbar')),
  139. ('navbar_content_fluid', models.BooleanField(default=False, help_text='Content within the navbar will fill edge to edge.', verbose_name='Full width navbar contents')),
  140. ('navbar_collapse_mode', models.CharField(blank=True, choices=[('', 'Never show menu - Always collapse menu behind a button'), ('navbar-expand-sm', 'sm - Show on small screens (phone size) and larger'), ('navbar-expand-md', 'md - Show on medium screens (tablet size) and larger'), ('navbar-expand-lg', 'lg - Show on large screens (laptop size) and larger'), ('navbar-expand-xl', 'xl - Show on extra large screens (desktop, wide monitor)')], default='navbar-expand-lg', help_text='Control on what screen sizes to show and collapse the navbar menu links.', max_length=50, verbose_name='Collapse navbar menu')),
  141. ('navbar_format', models.CharField(blank=True, choices=[('', 'Default Bootstrap Navbar'), ('codered-navbar-center', 'Centered logo at top')], default='', max_length=50, verbose_name='Navbar format')),
  142. ('navbar_search', models.BooleanField(default=True, help_text='Show search box in navbar', verbose_name='Search box')),
  143. ('frontend_theme', models.CharField(blank=True, choices=[('', 'Default - Classic Bootstrap'), ('cerulean', 'Cerulean - A calm blue sky'), ('cosmo', 'Cosmo - An ode to Metro'), ('cyborg', 'Cyborg - Jet black and electric blue'), ('darkly', 'Darkly - Flatly in night mode'), ('flatly', 'Flatly - Flat and modern'), ('journal', 'Journal - Crisp like a new sheet of paper'), ('litera', 'Litera - The medium is the message'), ('lumen', 'Lumen - Light and shadow'), ('lux', 'Lux - A touch of class'), ('materia', 'Materia - Material is the metaphor'), ('minty', 'Minty - A fresh feel'), ('pulse', 'Pulse - A trace of purple'), ('sandstone', 'Sandstone - A touch of warmth'), ('simplex', 'Simplex - Mini and minimalist'), ('sketchy', 'Sketchy - A hand-drawn look for mockups and mirth'), ('slate', 'Slate - Shades of gunmetal gray'), ('solar', 'Solar - A dark spin on Solarized'), ('spacelab', 'Spacelab - Silvery and sleek'), ('superhero', 'Superhero - The brave and the blue'), ('united', 'United - Ubuntu orange and unique font'), ('yeti', 'Yeti - A friendly foundation')], default='', help_text='Change the color palette of your site with a Bootstrap theme. Powered by Bootswatch https://bootswatch.com/.', max_length=50, verbose_name='Theme variant')),
  144. ('favicon', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='favicon', to=get_image_model_string(), verbose_name='Favicon')),
  145. ('logo', models.ForeignKey(blank=True, help_text='Brand logo used in the navbar and throughout the site', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=get_image_model_string(), verbose_name='Logo')),
  146. ('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.Site')),
  147. ],
  148. options={
  149. 'verbose_name': 'Layout',
  150. },
  151. ),
  152. migrations.CreateModel(
  153. name='Navbar',
  154. fields=[
  155. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  156. ('name', models.CharField(max_length=255, verbose_name='Name')),
  157. ('custom_css_class', models.CharField(blank=True, max_length=255, verbose_name='Custom CSS Class')),
  158. ('custom_id', models.CharField(blank=True, max_length=255, verbose_name='Custom ID')),
  159. ('menu_items', coderedcms.fields.CoderedStreamField([], blank=True, verbose_name='Navigation links')),
  160. ],
  161. options={
  162. 'verbose_name': 'Navigation Bar',
  163. },
  164. ),
  165. migrations.CreateModel(
  166. name='SeoSettings',
  167. fields=[
  168. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  169. ('og_meta', models.BooleanField(default=True, help_text='Show an optimized preview when linking to this site on Facebook, Linkedin, Twitter, and others. See http://ogp.me/.', verbose_name='Use OpenGraph Markup')),
  170. ('twitter_meta', models.BooleanField(default=True, help_text='Shows content as a "card" when linking to this site on Twitter. See https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards.', verbose_name='Use Twitter Markup')),
  171. ('struct_meta', models.BooleanField(default=True, help_text='Optimizes information about your organization for search engines. See https://schema.org/.', verbose_name='Use Structured Data')),
  172. ('amp_pages', models.BooleanField(default=True, help_text='Generates an alternate AMP version of Article pages that are preferred by search engines. See https://www.ampproject.org/', verbose_name='Use AMP Pages')),
  173. ('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.Site')),
  174. ],
  175. options={
  176. 'verbose_name': 'SEO',
  177. },
  178. ),
  179. migrations.CreateModel(
  180. name='SocialMediaSettings',
  181. fields=[
  182. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  183. ('facebook', models.URLField(blank=True, help_text='Your Facebook page URL', verbose_name='Facebook')),
  184. ('twitter', models.URLField(blank=True, help_text='Your Twitter page URL', verbose_name='Twitter')),
  185. ('instagram', models.CharField(blank=True, help_text='Your Instagram username, without the @', max_length=255, verbose_name='Instagram')),
  186. ('youtube', models.URLField(blank=True, help_text='Your YouTube channel or user account URL', verbose_name='YouTube')),
  187. ('linkedin', models.URLField(blank=True, help_text='Your LinkedIn page URL', verbose_name='LinkedIn')),
  188. ('googleplus', models.URLField(blank=True, help_text='Your Google+ page or Google business listing URL', verbose_name='Google')),
  189. ('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.Site')),
  190. ],
  191. options={
  192. 'verbose_name': 'Social Media',
  193. },
  194. ),
  195. ]