diff --git a/db.sqlite3 b/db.sqlite3 index a26858da..fb9be894 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/home/__pycache__/wagtail_hooks.cpython-310.pyc b/home/__pycache__/wagtail_hooks.cpython-310.pyc index 77da1ac6..43f117c5 100644 Binary files a/home/__pycache__/wagtail_hooks.cpython-310.pyc and b/home/__pycache__/wagtail_hooks.cpython-310.pyc differ diff --git a/media/images/amazon-webservices.max-165x165.svg b/media/images/amazon-webservices.max-165x165.svg new file mode 100644 index 00000000..b3e8e4fe --- /dev/null +++ b/media/images/amazon-webservices.max-165x165.svg @@ -0,0 +1,42 @@ + + +Amazon_Webservice +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/angular-js.max-165x165.svg b/media/images/angular-js.max-165x165.svg new file mode 100644 index 00000000..0fff03b8 --- /dev/null +++ b/media/images/angular-js.max-165x165.svg @@ -0,0 +1,24 @@ + + +Angular_js +Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/docker.max-165x165.svg b/media/images/docker.max-165x165.svg new file mode 100644 index 00000000..da469a59 --- /dev/null +++ b/media/images/docker.max-165x165.svg @@ -0,0 +1,31 @@ + + +Docker +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/elastic.max-165x165.svg b/media/images/elastic.max-165x165.svg new file mode 100644 index 00000000..95e7797f --- /dev/null +++ b/media/images/elastic.max-165x165.svg @@ -0,0 +1,27 @@ + + +Elastic +Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/es6.max-165x165.svg b/media/images/es6.max-165x165.svg new file mode 100644 index 00000000..057d21e2 --- /dev/null +++ b/media/images/es6.max-165x165.svg @@ -0,0 +1,25 @@ + + +ES6 +Created with Sketch. + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/html-5.max-165x165.svg b/media/images/html-5.max-165x165.svg new file mode 100644 index 00000000..d3070b2a --- /dev/null +++ b/media/images/html-5.max-165x165.svg @@ -0,0 +1,26 @@ + + +HTML_5 +Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/jenkins.max-165x165.svg b/media/images/jenkins.max-165x165.svg new file mode 100644 index 00000000..0ee703ea --- /dev/null +++ b/media/images/jenkins.max-165x165.svg @@ -0,0 +1,37 @@ + + +Jenkins +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/mongodb.max-165x165.svg b/media/images/mongodb.max-165x165.svg new file mode 100644 index 00000000..3c45bea1 --- /dev/null +++ b/media/images/mongodb.max-165x165.svg @@ -0,0 +1,22 @@ + + +Mongo_DB +Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/mysql.max-165x165.svg b/media/images/mysql.max-165x165.svg new file mode 100644 index 00000000..b1e955a4 --- /dev/null +++ b/media/images/mysql.max-165x165.svg @@ -0,0 +1,20 @@ + + +My_SQL +Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/nodejs.max-165x165.svg b/media/images/nodejs.max-165x165.svg new file mode 100644 index 00000000..604d5890 --- /dev/null +++ b/media/images/nodejs.max-165x165.svg @@ -0,0 +1,26 @@ + + +Node_js +Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/postgresql.max-165x165.svg b/media/images/postgresql.max-165x165.svg new file mode 100644 index 00000000..4eafd9dd --- /dev/null +++ b/media/images/postgresql.max-165x165.svg @@ -0,0 +1,28 @@ + + +Postrgresql +Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/python.max-165x165.svg b/media/images/python.max-165x165.svg new file mode 100644 index 00000000..8e225aab --- /dev/null +++ b/media/images/python.max-165x165.svg @@ -0,0 +1,20 @@ + + +Python +Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/rails.max-165x165.svg b/media/images/rails.max-165x165.svg new file mode 100644 index 00000000..ee18879b --- /dev/null +++ b/media/images/rails.max-165x165.svg @@ -0,0 +1,32 @@ + + +Rails +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/react.max-165x165.svg b/media/images/react.max-165x165.svg new file mode 100644 index 00000000..386b3fd6 --- /dev/null +++ b/media/images/react.max-165x165.svg @@ -0,0 +1,21 @@ + + +React +Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/redis.max-165x165.svg b/media/images/redis.max-165x165.svg new file mode 100644 index 00000000..3d2f666f --- /dev/null +++ b/media/images/redis.max-165x165.svg @@ -0,0 +1,35 @@ + + +Redis +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/images/ruby.max-165x165.svg b/media/images/ruby.max-165x165.svg new file mode 100644 index 00000000..a99c8a47 --- /dev/null +++ b/media/images/ruby.max-165x165.svg @@ -0,0 +1,25 @@ + + +Ruby +Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/media/original_images/amazon-webservices.svg b/media/original_images/amazon-webservices.svg new file mode 100644 index 00000000..32a2c558 --- /dev/null +++ b/media/original_images/amazon-webservices.svg @@ -0,0 +1,45 @@ + + + + +Amazon_Webservice +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/original_images/angular-js.svg b/media/original_images/angular-js.svg new file mode 100644 index 00000000..e0a9d8a9 --- /dev/null +++ b/media/original_images/angular-js.svg @@ -0,0 +1,29 @@ + + + + +Angular_js +Created with Sketch. + + + + + + + + + + + + + + diff --git a/media/original_images/docker.svg b/media/original_images/docker.svg new file mode 100644 index 00000000..824f7325 --- /dev/null +++ b/media/original_images/docker.svg @@ -0,0 +1,36 @@ + + + + +Docker +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/original_images/elastic.svg b/media/original_images/elastic.svg new file mode 100644 index 00000000..3143b12f --- /dev/null +++ b/media/original_images/elastic.svg @@ -0,0 +1,37 @@ + + + + +Elastic +Created with Sketch. + + + + + + + + + + + + + + + + + + + diff --git a/media/original_images/es6.svg b/media/original_images/es6.svg new file mode 100644 index 00000000..a41543fb --- /dev/null +++ b/media/original_images/es6.svg @@ -0,0 +1,29 @@ + + + + +ES6 +Created with Sketch. + + + + + + + + + + + + + + + diff --git a/media/original_images/html-5.svg b/media/original_images/html-5.svg new file mode 100644 index 00000000..f4ba11b5 --- /dev/null +++ b/media/original_images/html-5.svg @@ -0,0 +1,29 @@ + + + + +HTML_5 +Created with Sketch. + + + + + + + + + + + + + + + + diff --git a/media/original_images/jenkins.svg b/media/original_images/jenkins.svg new file mode 100644 index 00000000..7c62a296 --- /dev/null +++ b/media/original_images/jenkins.svg @@ -0,0 +1,55 @@ + + + + +Jenkins +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/original_images/mongodb.svg b/media/original_images/mongodb.svg new file mode 100644 index 00000000..f8145241 --- /dev/null +++ b/media/original_images/mongodb.svg @@ -0,0 +1,25 @@ + + + + +Mongo_DB +Created with Sketch. + + + + + + + + + + + + + diff --git a/media/original_images/mysql.svg b/media/original_images/mysql.svg new file mode 100644 index 00000000..15638b16 --- /dev/null +++ b/media/original_images/mysql.svg @@ -0,0 +1,32 @@ + + + + +My_SQL +Created with Sketch. + + + + + + + + + + + + diff --git a/media/original_images/nodejs.svg b/media/original_images/nodejs.svg new file mode 100644 index 00000000..e8986603 --- /dev/null +++ b/media/original_images/nodejs.svg @@ -0,0 +1,33 @@ + + + + +Node_js +Created with Sketch. + + + + + + + + + + + + + + + + + diff --git a/media/original_images/postgresql.svg b/media/original_images/postgresql.svg new file mode 100644 index 00000000..6794bc6c --- /dev/null +++ b/media/original_images/postgresql.svg @@ -0,0 +1,47 @@ + + + + +Postrgresql +Created with Sketch. + + + + + + + + + + + + + + + + + + + diff --git a/media/original_images/python.svg b/media/original_images/python.svg new file mode 100644 index 00000000..5b789c10 --- /dev/null +++ b/media/original_images/python.svg @@ -0,0 +1,27 @@ + + + + +Python +Created with Sketch. + + + + + + + + + + + + diff --git a/media/original_images/rails.svg b/media/original_images/rails.svg new file mode 100644 index 00000000..34edcc98 --- /dev/null +++ b/media/original_images/rails.svg @@ -0,0 +1,35 @@ + + + + +Rails +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/original_images/react.svg b/media/original_images/react.svg new file mode 100644 index 00000000..2d551c41 --- /dev/null +++ b/media/original_images/react.svg @@ -0,0 +1,27 @@ + + + + +React +Created with Sketch. + + + + + + + + + + + + + + diff --git a/media/original_images/redis.svg b/media/original_images/redis.svg new file mode 100644 index 00000000..43c6b40e --- /dev/null +++ b/media/original_images/redis.svg @@ -0,0 +1,39 @@ + + + + +Redis +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/original_images/ruby.svg b/media/original_images/ruby.svg new file mode 100644 index 00000000..25d0a4b1 --- /dev/null +++ b/media/original_images/ruby.svg @@ -0,0 +1,28 @@ + + + + +Ruby +Created with Sketch. + + + + + + + + + + + + + + + + + diff --git a/services/__pycache__/models.cpython-310.pyc b/services/__pycache__/models.cpython-310.pyc index a86ed6e6..d079c71e 100644 Binary files a/services/__pycache__/models.cpython-310.pyc and b/services/__pycache__/models.cpython-310.pyc differ diff --git a/services/migrations/0003_blogpagerelatedlink.py b/services/migrations/0003_blogpagerelatedlink.py new file mode 100644 index 00000000..9af22311 --- /dev/null +++ b/services/migrations/0003_blogpagerelatedlink.py @@ -0,0 +1,30 @@ +# Generated by Django 5.0.8 on 2024-09-14 15:56 + +import django.db.models.deletion +import modelcluster.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('services', '0002_rename_sf5img_servicespage_section_five_img_and_more'), + ('wagtailimages', '0026_delete_uploadedimage'), + ] + + operations = [ + migrations.CreateModel( + name='BlogPageRelatedLink', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), + ('carouse_name', models.CharField(blank=True, max_length=255)), + ('carouse_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), + ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='carousel_services', to='services.servicespage')), + ], + options={ + 'ordering': ['sort_order'], + 'abstract': False, + }, + ), + ] diff --git a/services/migrations/0004_rename_blogpagerelatedlink_servicespagecarousel.py b/services/migrations/0004_rename_blogpagerelatedlink_servicespagecarousel.py new file mode 100644 index 00000000..1b2ad8a0 --- /dev/null +++ b/services/migrations/0004_rename_blogpagerelatedlink_servicespagecarousel.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.8 on 2024-09-14 15:57 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('services', '0003_blogpagerelatedlink'), + ('wagtailimages', '0026_delete_uploadedimage'), + ] + + operations = [ + migrations.RenameModel( + old_name='BlogPageRelatedLink', + new_name='ServicesPageCarousel', + ), + ] diff --git a/services/migrations/0005_rename_carouse_image_servicespagecarousel_carousel_image_and_more.py b/services/migrations/0005_rename_carouse_image_servicespagecarousel_carousel_image_and_more.py new file mode 100644 index 00000000..c2330a45 --- /dev/null +++ b/services/migrations/0005_rename_carouse_image_servicespagecarousel_carousel_image_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.8 on 2024-09-14 15:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('services', '0004_rename_blogpagerelatedlink_servicespagecarousel'), + ] + + operations = [ + migrations.RenameField( + model_name='servicespagecarousel', + old_name='carouse_image', + new_name='carousel_image', + ), + migrations.RenameField( + model_name='servicespagecarousel', + old_name='carouse_name', + new_name='carousel_name', + ), + ] diff --git a/services/migrations/__pycache__/0001_initial.cpython-310.pyc b/services/migrations/__pycache__/0001_initial.cpython-310.pyc index a89ff067..78e93973 100644 Binary files a/services/migrations/__pycache__/0001_initial.cpython-310.pyc and b/services/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/services/migrations/__pycache__/0002_rename_sf5img_servicespage_section_five_img_and_more.cpython-310.pyc b/services/migrations/__pycache__/0002_rename_sf5img_servicespage_section_five_img_and_more.cpython-310.pyc index f483d85d..8c1756a9 100644 Binary files a/services/migrations/__pycache__/0002_rename_sf5img_servicespage_section_five_img_and_more.cpython-310.pyc and b/services/migrations/__pycache__/0002_rename_sf5img_servicespage_section_five_img_and_more.cpython-310.pyc differ diff --git a/services/migrations/__pycache__/0003_blogpagerelatedlink.cpython-310.pyc b/services/migrations/__pycache__/0003_blogpagerelatedlink.cpython-310.pyc new file mode 100644 index 00000000..0f692581 Binary files /dev/null and b/services/migrations/__pycache__/0003_blogpagerelatedlink.cpython-310.pyc differ diff --git a/services/migrations/__pycache__/0004_rename_blogpagerelatedlink_servicespagecarousel.cpython-310.pyc b/services/migrations/__pycache__/0004_rename_blogpagerelatedlink_servicespagecarousel.cpython-310.pyc new file mode 100644 index 00000000..434338c4 Binary files /dev/null and b/services/migrations/__pycache__/0004_rename_blogpagerelatedlink_servicespagecarousel.cpython-310.pyc differ diff --git a/services/migrations/__pycache__/0005_rename_carouse_image_servicespagecarousel_carousel_image_and_more.cpython-310.pyc b/services/migrations/__pycache__/0005_rename_carouse_image_servicespagecarousel_carousel_image_and_more.cpython-310.pyc new file mode 100644 index 00000000..19696de2 Binary files /dev/null and b/services/migrations/__pycache__/0005_rename_carouse_image_servicespagecarousel_carousel_image_and_more.cpython-310.pyc differ diff --git a/services/migrations/__pycache__/__init__.cpython-310.pyc b/services/migrations/__pycache__/__init__.cpython-310.pyc index e901b30a..1937568e 100644 Binary files a/services/migrations/__pycache__/__init__.cpython-310.pyc and b/services/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/services/models.py b/services/models.py index 3f524a14..b0d5068f 100644 --- a/services/models.py +++ b/services/models.py @@ -2,11 +2,13 @@ from __future__ import unicode_literals from django.db import models from wagtail.fields import RichTextField -from wagtail.admin.panels import FieldPanel, MultiFieldPanel -from wagtail.models import Page +from wagtail.admin.panels import FieldPanel, MultiFieldPanel, InlinePanel +from wagtail.models import Page, Orderable +from modelcluster.models import ParentalKey from saburly.custom_editor import FULL_EDITOR + class ServicesPage(Page): section_one_title = RichTextField(blank=True, features=FULL_EDITOR) section_one_text = RichTextField(blank=True, features=FULL_EDITOR) @@ -97,4 +99,24 @@ class ServicesPage(Page): FieldPanel('sub_section_six'), FieldPanel('sub_section_six_img'), ], heading="Section 5 Subfields"), + + InlinePanel('carousel_services', heading="Carousel Services", label="Carousel Services"), + ] + +class ServicesPageCarousel(Orderable): + + page = ParentalKey(ServicesPage, on_delete=models.CASCADE, related_name='carousel_services') + carousel_name = models.CharField(max_length=255, blank=True) + carousel_image = models.ForeignKey( + 'wagtailimages.Image', + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name='+' + ) + + panels = [ + FieldPanel('carousel_name'), + FieldPanel('carousel_image'), + ] \ No newline at end of file diff --git a/static/css/style.css b/static/css/style.css index a9be78a8..cbba6df8 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -198,7 +198,9 @@ body.side-menu.active { .content-open:before { position: absolute; top: 0; - bottom: 0; + right: 0; + left: 0; + bottom: -2000000000px; width: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 99; @@ -220,3 +222,39 @@ body.side-menu.active { .block-scroll{ overflow: hidden; } + +.carousel-slider{ + width: 100%; + height: 130px; + overflow: hidden; +} +.carousel-slider .carousel-list{ + display: flex; + width: 100%; + min-width: calc(100px * 16); + position: relative; +} +.carousel-slider .carousel-list .carousel-item{ + width: 100px; + height: 100px; + position: absolute; + left: 100%; + animation: autoRun 16s linear infinite; + animation-delay: calc((16s / 16) * (var(--position) - 1)); +} + .carousel-slider .carousel-list .carousel-item img{ + width: 100%; + } + + @keyframes autoRun { + from{ + left: 100%; + }to{ + left: calc(100px * -1); + } + } + + .carousel-slider:hover .carousel-item{ + animation-play-state: paused!important; + } + diff --git a/templates/base.html b/templates/base.html index b1f267ca..11499edd 100644 --- a/templates/base.html +++ b/templates/base.html @@ -41,13 +41,15 @@ const content = document.querySelector('.content'); const headermove = document.getElementById('header'); const body = document.body; + const footermove = document.getElementById('footer'); sideToggle.addEventListener('click', function() { sideMenu.classList.toggle('active'); this.classList.toggle('menu-opened'); content.classList.toggle('content-open'); headermove.classList.toggle('header-move'); - body.classList.toggle('block-scroll') + body.classList.toggle('block-scroll'); + footermove.classList.toggle('header-move'); }); sideCloseButtons.forEach(button => { @@ -57,6 +59,7 @@ content.classList.remove('content-open'); headermove.classList.remove('header-move'); body.classList.remove('block-scroll'); + footermove.classList.remove('header-move'); }); }); }) @@ -76,7 +79,7 @@ } prevScrollPos = currentScrollPos; - }; + }; diff --git a/templates/footer.html b/templates/footer.html index 97685365..524fb1ca 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -1,6 +1,5 @@ {%load static%} -