From 8a842d364d7ad3b4ed86b741eac4b2565bb0747a Mon Sep 17 00:00:00 2001 From: Faheed Date: Mon, 29 Dec 2025 04:50:49 +0300 Subject: [PATCH] tenhal landing page added --- .gitignore | 31 ++ landing_page/__init__.py | 0 landing_page/admin.py | 85 +++ landing_page/apps.py | 5 + landing_page/middleware.py | 20 + landing_page/migrations/0001_initial.py | 117 ++++ ..._options_alter_inquiry_options_and_more.py | 61 +++ landing_page/migrations/0003_product_image.py | 18 + landing_page/migrations/0004_visitorlog.py | 28 + landing_page/migrations/__init__.py | 0 landing_page/models.py | 120 +++++ landing_page/tasks.py | 33 ++ landing_page/tests.py | 3 + landing_page/urls.py | 7 + landing_page/views.py | 35 ++ locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 3541 bytes locale/ar/LC_MESSAGES/django.po | 199 +++++++ manage.py | 22 + requirements.txt | 27 + static/css/main.css | 244 +++++++++ static/images/android-chrome-192x192.png | Bin 0 -> 20277 bytes static/images/android-chrome-512x512.png | Bin 0 -> 96751 bytes static/images/apple-touch-icon.png | Bin 0 -> 17809 bytes static/images/favicon-16x16.png | Bin 0 -> 473 bytes static/images/favicon-32x32.png | Bin 0 -> 1272 bytes static/images/favicon.ico | Bin 0 -> 15406 bytes static/images/site.webmanifest | 1 + static/js/main.js | 182 +++++++ templates/admin/visitor_log_changelist.html | 43 ++ templates/index.html | 507 ++++++++++++++++++ tenhal/__init__.py | 0 tenhal/asgi.py | 16 + tenhal/settings.py | 203 +++++++ tenhal/urls.py | 21 + tenhal/wsgi.py | 16 + 35 files changed, 2044 insertions(+) create mode 100644 .gitignore create mode 100644 landing_page/__init__.py create mode 100644 landing_page/admin.py create mode 100644 landing_page/apps.py create mode 100644 landing_page/middleware.py create mode 100644 landing_page/migrations/0001_initial.py create mode 100644 landing_page/migrations/0002_alter_expertise_options_alter_inquiry_options_and_more.py create mode 100644 landing_page/migrations/0003_product_image.py create mode 100644 landing_page/migrations/0004_visitorlog.py create mode 100644 landing_page/migrations/__init__.py create mode 100644 landing_page/models.py create mode 100644 landing_page/tasks.py create mode 100644 landing_page/tests.py create mode 100644 landing_page/urls.py create mode 100644 landing_page/views.py create mode 100644 locale/ar/LC_MESSAGES/django.mo create mode 100644 locale/ar/LC_MESSAGES/django.po create mode 100755 manage.py create mode 100644 requirements.txt create mode 100644 static/css/main.css create mode 100644 static/images/android-chrome-192x192.png create mode 100644 static/images/android-chrome-512x512.png create mode 100644 static/images/apple-touch-icon.png create mode 100644 static/images/favicon-16x16.png create mode 100644 static/images/favicon-32x32.png create mode 100644 static/images/favicon.ico create mode 100644 static/images/site.webmanifest create mode 100644 static/js/main.js create mode 100644 templates/admin/visitor_log_changelist.html create mode 100644 templates/index.html create mode 100644 tenhal/__init__.py create mode 100644 tenhal/asgi.py create mode 100644 tenhal/settings.py create mode 100644 tenhal/urls.py create mode 100644 tenhal/wsgi.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..467ce30 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +# --- Python and Django --- +*.py[cod] +__pycache__/ +*.so +.Python +env/ +venv/ +staticfiles/ +media/ + +# --- Databases (IMPORTANT for SQLite) --- +# We ignore the database so your local data doesn't overwrite your AWS data +db.sqlite3 +db.sqlite3-journal +db.sqlite3-wal +db.sqlite3-shm + +# --- Secrets and Environment --- +.env +.venv +env/ +venv/ +.secret_key + +# --- Operating System --- +.DS_Store +Thumbs.db + +# --- GeoIP --- +# If you download these manually on AWS, ignore them here +geoip/*.mmdb \ No newline at end of file diff --git a/landing_page/__init__.py b/landing_page/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/landing_page/admin.py b/landing_page/admin.py new file mode 100644 index 0000000..e26cdaa --- /dev/null +++ b/landing_page/admin.py @@ -0,0 +1,85 @@ +from django.contrib import admin +from .models import ( + LandingPageSettings, Partners, Expertise, + Product, Inquiry, Testimonial, TeamMember +) + +@admin.register(LandingPageSettings) +class LandingPageSettingsAdmin(admin.ModelAdmin): + list_display = ('logo', 'company_address_en') + +@admin.register(Partners) +class PartnersAdmin(admin.ModelAdmin): + list_display = ('name_en', 'name_ar', 'order') + list_editable = ('order',) + ordering = ('order',) + +@admin.register(Expertise) +class ExpertiseAdmin(admin.ModelAdmin): + list_display = ('title_en', 'title_ar', 'order') + list_editable = ('order',) + ordering = ('order',) + +@admin.register(Product) +class ProductAdmin(admin.ModelAdmin): + list_display = ('name_en', 'name_ar', 'order', 'link') + list_editable = ('order',) + ordering = ('order',) + +@admin.register(Inquiry) +class InquiryAdmin(admin.ModelAdmin): + list_display = ('name', 'email','message', 'created_at') + readonly_fields = ('created_at',) + +@admin.register(Testimonial) +class TestimonialAdmin(admin.ModelAdmin): + list_display = ('client_name_en', 'client_name_ar', 'order') + list_editable = ('order',) + ordering = ('order',) + +@admin.register(TeamMember) +class TeamMemberAdmin(admin.ModelAdmin): + list_display = ('name_en', 'name_ar', 'role_en', 'order') + list_editable = ('order',) + ordering = ('order',) + + + +# admin.py +import json +from django.contrib import admin +from django.db.models import Count +from rangefilter.filters import DateRangeFilterBuilder # Improved range picker +from .models import VisitorLog + +@admin.register(VisitorLog) +class VisitorLogAdmin(admin.ModelAdmin): + list_display = ('ip_address', 'country', 'city', 'timestamp') + + # 1. Add the Date Range Filter to the sidebar + list_filter = ( + ("timestamp", DateRangeFilterBuilder()), + 'country', + ) + + change_list_template = 'admin/visitor_log_changelist.html' + + def changelist_view(self, request, extra_context=None): + # 2. Get the current filtered results based on your date selection + response = super().changelist_view(request, extra_context) + + try: + # This captures the exact filtered queryset being shown in the list + qs = response.context_data['cl'].queryset + except (AttributeError, KeyError): + return response + + # 3. Aggregate data from the FILTERED queryset + country_stats = list(qs.values('country').annotate(total=Count('id')).order_by('-total')[:10]) + city_stats = list(qs.values('city').annotate(total=Count('id')).order_by('-total')[:10]) + + extra_context = extra_context or {} + extra_context['country_data'] = json.dumps(country_stats) + extra_context['city_data'] = json.dumps(city_stats) + + return super().changelist_view(request, extra_context=extra_context) \ No newline at end of file diff --git a/landing_page/apps.py b/landing_page/apps.py new file mode 100644 index 0000000..547ffb0 --- /dev/null +++ b/landing_page/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class LandingPageConfig(AppConfig): + name = 'landing_page' diff --git a/landing_page/middleware.py b/landing_page/middleware.py new file mode 100644 index 0000000..6658948 --- /dev/null +++ b/landing_page/middleware.py @@ -0,0 +1,20 @@ +# middleware.py +import logging +from django_q.tasks import async_task + +logger = logging.getLogger(__name__) + +class AnalyticsMiddleware: + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + ip = request.META.get('REMOTE_ADDR') + + # LOG 1: Check if Middleware is even being triggered + print(f"DEBUG: Middleware triggered for IP: {ip}") + + # Hand off to the queue + async_task('landing_page.tasks.log_visitor_location', ip) + + return self.get_response(request) \ No newline at end of file diff --git a/landing_page/migrations/0001_initial.py b/landing_page/migrations/0001_initial.py new file mode 100644 index 0000000..244ee6a --- /dev/null +++ b/landing_page/migrations/0001_initial.py @@ -0,0 +1,117 @@ +# Generated by Django 6.0 on 2025-12-28 16:44 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Expertise', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title_en', models.CharField(blank=True, max_length=100, null=True)), + ('title_ar', models.CharField(blank=True, max_length=100, null=True)), + ('description_en', models.TextField(blank=True, null=True)), + ('description_ar', models.TextField(blank=True, null=True)), + ('icon_svg', models.TextField(help_text='Paste SVG code here')), + ('order', models.IntegerField(default=0)), + ], + options={ + 'ordering': ['order'], + }, + ), + migrations.CreateModel( + name='Inquiry', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('email', models.EmailField(max_length=254)), + ('message', models.TextField()), + ('created_at', models.DateTimeField(auto_now_add=True)), + ], + ), + migrations.CreateModel( + name='LandingPageSettings', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('logo', models.ImageField(upload_to='logos/')), + ('company_address_en', models.TextField()), + ('company_address_ar', models.TextField()), + ('company_email', models.JSONField(help_text='Save as a list of emails')), + ('company_phone', models.JSONField(help_text='Save as a list of phone numbers')), + ('facebook_url', models.URLField(blank=True, null=True)), + ('twitter_url', models.URLField(blank=True, null=True)), + ('linkedin_url', models.URLField(blank=True, null=True)), + ('instagram_url', models.URLField(blank=True, null=True)), + ('hero_image', models.ImageField(upload_to='hero_images/')), + ], + ), + migrations.CreateModel( + name='Partners', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name_en', models.CharField(blank=True, max_length=100, null=True)), + ('name_ar', models.CharField(blank=True, max_length=100, null=True)), + ('logo', models.ImageField(blank=True, null=True, upload_to='partners/')), + ('order', models.IntegerField(default=0)), + ], + options={ + 'ordering': ['order'], + }, + ), + migrations.CreateModel( + name='Product', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name_en', models.CharField(blank=True, max_length=100, null=True)), + ('name_ar', models.CharField(blank=True, max_length=100, null=True)), + ('description_en', models.TextField(blank=True, null=True)), + ('description_ar', models.TextField(blank=True, null=True)), + ('features_en', models.JSONField(help_text='English features list')), + ('features_ar', models.JSONField(help_text='Arabic features list')), + ('order', models.IntegerField(default=0)), + ('link', models.URLField(blank=True, null=True)), + ], + options={ + 'ordering': ['order'], + }, + ), + migrations.CreateModel( + name='TeamMember', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name_en', models.CharField(blank=True, max_length=100, null=True)), + ('name_ar', models.CharField(blank=True, max_length=100, null=True)), + ('role_en', models.CharField(blank=True, max_length=100, null=True)), + ('role_ar', models.CharField(blank=True, max_length=100, null=True)), + ('photo', models.ImageField(upload_to='team_members/')), + ('bio_en', models.TextField(blank=True, null=True)), + ('bio_ar', models.TextField(blank=True, null=True)), + ('order', models.IntegerField(default=0)), + ], + options={ + 'ordering': ['order'], + }, + ), + migrations.CreateModel( + name='Testimonial', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('client_name_en', models.CharField(blank=True, max_length=100, null=True)), + ('client_name_ar', models.CharField(blank=True, max_length=100, null=True)), + ('feedback_en', models.TextField(blank=True, null=True)), + ('feedback_ar', models.TextField(blank=True, null=True)), + ('client_photo', models.ImageField(blank=True, null=True, upload_to='testimonials/')), + ('order', models.IntegerField(default=0)), + ], + options={ + 'ordering': ['order'], + }, + ), + ] diff --git a/landing_page/migrations/0002_alter_expertise_options_alter_inquiry_options_and_more.py b/landing_page/migrations/0002_alter_expertise_options_alter_inquiry_options_and_more.py new file mode 100644 index 0000000..cf3e8a2 --- /dev/null +++ b/landing_page/migrations/0002_alter_expertise_options_alter_inquiry_options_and_more.py @@ -0,0 +1,61 @@ +# Generated by Django 6.0 on 2025-12-28 20:29 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('landing_page', '0001_initial'), + ] + + operations = [ + migrations.AlterModelOptions( + name='expertise', + options={'ordering': ['order'], 'verbose_name_plural': 'Expertise Areas'}, + ), + migrations.AlterModelOptions( + name='inquiry', + options={'ordering': ['-created_at'], 'verbose_name_plural': 'Inquiries'}, + ), + migrations.AlterModelOptions( + name='landingpagesettings', + options={'verbose_name_plural': 'Landing Page Settings'}, + ), + migrations.AlterModelOptions( + name='partners', + options={'ordering': ['order'], 'verbose_name_plural': 'Partners'}, + ), + migrations.AlterModelOptions( + name='product', + options={'ordering': ['order'], 'verbose_name_plural': 'Products'}, + ), + migrations.AlterModelOptions( + name='teammember', + options={'ordering': ['order'], 'verbose_name_plural': 'Team Members'}, + ), + migrations.AlterModelOptions( + name='testimonial', + options={'ordering': ['order'], 'verbose_name_plural': 'Testimonials'}, + ), + migrations.AlterField( + model_name='landingpagesettings', + name='company_email', + field=models.JSONField(default=list, help_text='Save as a list of emails as JSON i.e. ["", ""]'), + ), + migrations.AlterField( + model_name='landingpagesettings', + name='company_phone', + field=models.JSONField(default=list, help_text='Save as a list of phone numbers as JSON i.e. ["", ""]'), + ), + migrations.AlterField( + model_name='product', + name='features_ar', + field=models.JSONField(default=list, help_text='Arabic features list as JSON array i.e. ["الميزة 1", "الميزة 2"]'), + ), + migrations.AlterField( + model_name='product', + name='features_en', + field=models.JSONField(default=list, help_text='English features list as JSON array i.e. ["Feature 1", "Feature 2"]'), + ), + ] diff --git a/landing_page/migrations/0003_product_image.py b/landing_page/migrations/0003_product_image.py new file mode 100644 index 0000000..16811e3 --- /dev/null +++ b/landing_page/migrations/0003_product_image.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0 on 2025-12-28 20:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('landing_page', '0002_alter_expertise_options_alter_inquiry_options_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='product', + name='image', + field=models.ImageField(blank=True, null=True, upload_to='products/'), + ), + ] diff --git a/landing_page/migrations/0004_visitorlog.py b/landing_page/migrations/0004_visitorlog.py new file mode 100644 index 0000000..393340e --- /dev/null +++ b/landing_page/migrations/0004_visitorlog.py @@ -0,0 +1,28 @@ +# Generated by Django 6.0 on 2025-12-28 23:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('landing_page', '0003_product_image'), + ] + + operations = [ + migrations.CreateModel( + name='VisitorLog', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('ip_address', models.GenericIPAddressField()), + ('country', models.CharField(blank=True, max_length=100, null=True)), + ('region', models.CharField(blank=True, max_length=100, null=True)), + ('city', models.CharField(blank=True, max_length=100, null=True)), + ('timestamp', models.DateTimeField(auto_now_add=True)), + ], + options={ + 'verbose_name_plural': 'Visitor Logs', + 'ordering': ['-timestamp'], + }, + ), + ] diff --git a/landing_page/migrations/__init__.py b/landing_page/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/landing_page/models.py b/landing_page/models.py new file mode 100644 index 0000000..d75e355 --- /dev/null +++ b/landing_page/models.py @@ -0,0 +1,120 @@ +from django.db import models + +class LandingPageSettings(models.Model): + logo = models.ImageField(upload_to='logos/') + company_address_en = models.TextField() + company_address_ar = models.TextField() + company_email = models.JSONField(help_text="Save as a list of emails as JSON i.e. [\"\", \"\"]",default=list) + company_phone = models.JSONField(help_text="Save as a list of phone numbers as JSON i.e. [\"\", \"\"]",default=list) + facebook_url = models.URLField(blank=True, null=True) + twitter_url = models.URLField(blank=True, null=True) + linkedin_url = models.URLField(blank=True, null=True) + instagram_url = models.URLField(blank=True, null=True) + hero_image = models.ImageField(upload_to='hero_images/') + + def __str__(self): + return "Landing Page Settings" + class Meta: + verbose_name_plural = "Landing Page Settings" + +class Partners(models.Model): + name_en = models.CharField(max_length=100, blank=True, null=True) + name_ar = models.CharField(max_length=100, blank=True, null=True) + logo = models.ImageField(upload_to='partners/', blank=True, null=True) + order = models.IntegerField(default=0) + + class Meta: + ordering = ['order'] + verbose_name_plural = "Partners" + def __str__(self): + return self.name_en or "Partner" + +class Expertise(models.Model): + title_en = models.CharField(max_length=100, blank=True, null=True) + title_ar = models.CharField(max_length=100, blank=True, null=True) + description_en = models.TextField(blank=True, null=True) + description_ar = models.TextField(blank=True, null=True) + icon_svg = models.TextField(help_text="Paste SVG code here") + order = models.IntegerField(default=0) + + class Meta: + ordering = ['order'] + verbose_name_plural = "Expertise Areas" + def __str__(self): + return self.title_en or "Expertise" + +class Product(models.Model): + name_en = models.CharField(max_length=100, blank=True, null=True) + name_ar = models.CharField(max_length=100, blank=True, null=True) + description_en = models.TextField(blank=True, null=True) + description_ar = models.TextField(blank=True, null=True) + features_en = models.JSONField(help_text="English features list as JSON array i.e. [\"Feature 1\", \"Feature 2\"]",default=list) + features_ar = models.JSONField(help_text="Arabic features list as JSON array i.e. [\"الميزة 1\", \"الميزة 2\"]",default=list) + order = models.IntegerField(default=0) + image = models.ImageField(upload_to='products/', blank=True, null=True) + link = models.URLField(blank=True, null=True) + + class Meta: + ordering = ['order'] + verbose_name_plural = "Products" + def __str__(self): + return self.name_en or "Product" + + +class Inquiry(models.Model): + name = models.CharField(max_length=100) + email = models.EmailField() + message = models.TextField() + created_at = models.DateTimeField(auto_now_add=True) + + def __str__(self): + return f"{self.email} - {self.message[:20]}" + class Meta: + ordering = ['-created_at'] + verbose_name_plural = "Inquiries" + +class Testimonial(models.Model): + client_name_en = models.CharField(max_length=100, blank=True, null=True) + client_name_ar = models.CharField(max_length=100, blank=True, null=True) + feedback_en = models.TextField(null=True, blank=True) + feedback_ar = models.TextField(null=True, blank=True) + client_photo = models.ImageField(upload_to='testimonials/', blank=True, null=True) + order = models.IntegerField(default=0) + + class Meta: + ordering = ['order'] + verbose_name_plural = "Testimonials" + def __str__(self): + return self.client_name_en or "Client" + +class TeamMember(models.Model): + name_en = models.CharField(max_length=100, blank=True, null=True) + name_ar = models.CharField(max_length=100, blank=True, null=True) + role_en = models.CharField(max_length=100, blank=True, null=True) + role_ar = models.CharField(max_length=100, blank=True, null=True) + photo = models.ImageField(upload_to='team_members/') + bio_en = models.TextField(null=True, blank=True) + bio_ar = models.TextField(null=True, blank=True) + order = models.IntegerField(default=0) + + class Meta: + ordering = ['order'] + verbose_name_plural = "Team Members" + def __str__(self): + return self.name_en or "Team Member" + + + + +# models.py +class VisitorLog(models.Model): + ip_address = models.GenericIPAddressField() + country = models.CharField(max_length=100, null=True, blank=True) + region = models.CharField(max_length=100, null=True, blank=True) # State/Province + city = models.CharField(max_length=100, null=True, blank=True) + timestamp = models.DateTimeField(auto_now_add=True) + class Meta: + ordering = ['-timestamp'] + verbose_name_plural = "Visitor Logs" + def __str__(self): + return f"{self.ip_address} from {self.city}, {self.country}" \ No newline at end of file diff --git a/landing_page/tasks.py b/landing_page/tasks.py new file mode 100644 index 0000000..4603272 --- /dev/null +++ b/landing_page/tasks.py @@ -0,0 +1,33 @@ +# your_app/services.py +from django.contrib.gis.geoip2 import GeoIP2 +from .models import VisitorLog + +def log_visitor_location(ip_address): + # if ip_address in ['127.0.0.1', 'localhost']: + # return + if ip_address.startswith(('127.', '192.168.', '10.', '172.16.')): + VisitorLog.objects.create( + ip_address=ip_address, + country="Local Network", + city="Development Machine", + region="Home" + ) + print(f"DEBUG: Logged local IP {ip_address}") + return + + try: + g = GeoIP2() + loc = g.city(ip_address) + VisitorLog.objects.create( + ip_address=ip_address, + country=loc.get('country_name'), + region=loc.get('region'), + city=loc.get('city') + ) + except Exception: + # If the IP is not in the database (like your WiFi IP) + VisitorLog.objects.create( + ip_address=ip_address, + country="Anonymous/Private", + city="N/A" + ) \ No newline at end of file diff --git a/landing_page/tests.py b/landing_page/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/landing_page/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/landing_page/urls.py b/landing_page/urls.py new file mode 100644 index 0000000..d9ad700 --- /dev/null +++ b/landing_page/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.home, name='home'), + path('contact/submit/', views.submit_inquiry, name='submit_inquiry'), +] \ No newline at end of file diff --git a/landing_page/views.py b/landing_page/views.py new file mode 100644 index 0000000..58cdde1 --- /dev/null +++ b/landing_page/views.py @@ -0,0 +1,35 @@ +from django.shortcuts import render +from django.http import JsonResponse +from .models import ( + LandingPageSettings, Partners, Expertise, + Product, Testimonial, TeamMember, Inquiry +) + +def home(request): + # 1. Get current language + current_lang = request.LANGUAGE_CODE or 'en' + + # 2. Fetch data + context = { + 'settings': LandingPageSettings.objects.first(), + 'partners': Partners.objects.all(), + 'expertise': Expertise.objects.all(), + 'products': Product.objects.all(), + 'testimonials': Testimonial.objects.all(), + 'team': TeamMember.objects.all(), + 'current_lang': current_lang, + } + return render(request, 'index.html', context) + +def submit_inquiry(request): + if request.method == 'POST': + try: + Inquiry.objects.create( + name=request.POST.get('name'), + email=request.POST.get('email'), + message=request.POST.get('message') + ) + return JsonResponse({'status': 'success', 'message': 'Message sent successfully!'}) + except Exception as e: + return JsonResponse({'status': 'error', 'message': str(e)}, status=400) + return JsonResponse({'status': 'error', 'message': 'Invalid request'}, status=400) \ No newline at end of file diff --git a/locale/ar/LC_MESSAGES/django.mo b/locale/ar/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d3fcb87b311f59f0f88aa75727494de27b103ac9 GIT binary patch literal 3541 zcmZ{lO>7)z8OPs-wty*wwv++^`UYqUgmu?;f)bmhauX*tjgu<5>@euP5uF>)FlB zY?9?vf8rWc1c)n$hRCsrjx$>IrcG<-+g(&g|L+b&|<%-mmB5 z|2*&JPmewLBg0eT{UqB=}|1Iw;tuGM|vw3LU6qS%x8I(zjD>{1zz>7w3hzL zS^c~BQT?nNeoh=7wdbS8RI8d;FPyUDesndc`mq_FY_t-4 zk&mgV$d6&4j|= zCSEn^(2jd`?4Jy3LE_czMC66>I_u5&=Cq&K@q`%tDRaj6ru-X84L@ujY4XW1_WjtBR!Y zWz4h>nzIe-cT8KnW6QSvq*n`_aIJTh{JqJ#-)qjbBINDFqER<|4dNo+*m_ZQ8X2ky zy0n`?l{&O7wQDxeB5}sQ$*K*)E3F_3kWXa{Lfe1DPPSrd8OL_I(TY&3=!sY#Xzi18 zyDLp>E|7a$HYaI^splA9Y58$tPx>~fz^lh*B5FBhC)>6t zlzF)ky<%Nsxlgt23(D49k|9;ch8{&GWtl9EPL*Dw!1ThPJwJTn#o^N<_N9>v1w)ev*q+ox|uDyLAshPq;F>P41Q|eU^U%N zf64aMbSGPJCoQ9mY{|IgooopMtKDI`mEOu$(lwKAXWzrmqD^nHyqK;tyPCdbvu|^J zGrfy3d1TuHTjU@&_=|K4_niN~#qMS~#-jY}Xq!oOXeFDsT4CEpwk)d}Y-Mvqfv+ug z-sK#Q6cYPMnvk;Z7-Cz@<}t98pUFdzHqHb-3v%*U@(?o3)gFA$u)9J?o^N95jzI9k&G0B-Y+;@(jq^7`-1&CtPlZJA{U2e}fo6^U*;t80dEY4IDx#T8yu z6jIExnH#{R#A*6w`V+(DT}W@?3T5x*vfpEALwDlc%4J;Raz%0_y4&>Azx!j6%ZVU+ zL(fm>el60iYTj&)n74CT=wOx1I2mt{%_jfxxWOHatfY6{3UcZ?(_=UCTIS;OQ=?3E zJC{*z-bM2UX?1_AoSYgOtSzTMM>kbh$Mnx!dP|pfjvZ, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-12-28 22:58+0000\n" +"PO-Revision-Date: 2025-12-29 02:00+0300\n" +"Last-Translator: Gemini\n" +"Language-Team: Arabic\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#: templates/index.html:7 +msgid "AI Product and Services" +msgstr "منتجات وخدمات الذكاء الاصطناعي" + +#: templates/index.html:279 templates/index.html:326 +msgid "Services" +msgstr "خدماتنا" + +#: templates/index.html:280 templates/index.html:327 +msgid "Team" +msgstr "الفريق" + +#: templates/index.html:281 templates/index.html:328 templates/index.html:681 +msgid "Products" +msgstr "المنتجات" + +#: templates/index.html:282 templates/index.html:329 +msgid "Testimonials" +msgstr "آراء العملاء" + +#: templates/index.html:296 +msgid "Arabic" +msgstr "العربية" + +#: templates/index.html:309 +msgid "English" +msgstr "الإنجليزية" + +#: templates/index.html:316 +msgid "Get Started" +msgstr "ابدأ الآن" + +#: templates/index.html:330 +msgid "Contact" +msgstr "اتصل بنا" + +#: templates/index.html:336 +msgid "Digital Transformation Partner" +msgstr "شريك التحول الرقمي" + +#: templates/index.html:344 +msgid "Our Services" +msgstr "خدماتنا" + +#: templates/index.html:345 +msgid "Contact Sales" +msgstr "اتصل بالمبيعات" + +#: templates/index.html:392 +msgid "Our Expertise" +msgstr "خبراتنا" + +#: templates/index.html:393 +msgid "Engineering Services" +msgstr "الخدمات الهندسية" + +#: templates/index.html:419 +msgid "No expertise listed yet." +msgstr "لا توجد خبرات مدرجة بعد." + +#: templates/index.html:430 +msgid "Software Products" +msgstr "المنتجات البرمجية" + +#: templates/index.html:431 +msgid "Proprietary Solutions" +msgstr "حلول مملوكة وحصرية" + +#: templates/index.html:454 +msgid "Enterprise Solution" +msgstr "حلول المؤسسات" + +#: templates/index.html:468 templates/index.html:470 +msgid "Request Demo" +msgstr "طلب عرض توضيحي" + +#: templates/index.html:501 +msgid "No products available." +msgstr "لا توجد منتجات متاحة حالياً." + +#: templates/index.html:513 +msgid "Leadership" +msgstr "القيادة" + +#: templates/index.html:514 +msgid "Meet Team" +msgstr "تعرف على الفريق" + +#: templates/index.html:555 +msgid "Success Stories" +msgstr "قصص النجاح" + +#: templates/index.html:556 +msgid "Trusted by Leaders" +msgstr "موثوقون من قبل قادة الصناعة" + +#: templates/index.html:595 +msgid "Ready to build?" +msgstr "هل أنت مستعد للتنفيذ؟" + +#: templates/index.html:596 +msgid "" +"Our solutions architects typically respond to project inquiries within 24 " +"business hours." +msgstr "عادة ما يقوم مهندسو الحلول لدينا بالرد على استفسارات المشاريع في غضون 24 ساعة عمل." + +#: templates/index.html:602 +msgid "Address" +msgstr "العنوان" + +#: templates/index.html:611 +msgid "Call Us" +msgstr "اتصل بنا" + +#: templates/index.html:620 +msgid "Email Us" +msgstr "راسلنا بريدياً" + +#: templates/index.html:628 +msgid "Working Hours" +msgstr "ساعات العمل" + +#: templates/index.html:629 +msgid "Sunday - Thursday" +msgstr "الأحد - الخميس" + +#: templates/index.html:639 +msgid "Full Name" +msgstr "الاسم الكامل" + +#: templates/index.html:640 +msgid "Your full name" +msgstr "اسمك الكامل" + +#: templates/index.html:641 +msgid "Work Email" +msgstr "بريد العمل الإلكتروني" + +#: templates/index.html:643 +msgid "Message" +msgstr "الرسالة" + +#: templates/index.html:644 +msgid "Tell us about your project..." +msgstr "أخبرنا عن مشروعك..." + +#: templates/index.html:645 +msgid "Send Message" +msgstr "إرسال الرسالة" + +#: templates/index.html:654 +msgid "Message sent successfully!" +msgstr "تم إرسال الرسالة بنجاح!" + +#: templates/index.html:662 +msgid "" +"Empowering global enterprises through elite engineering and AI products." +msgstr "تمكين الشركات العالمية من خلال هندسة متميزة ومنتجات الذكاء الاصطناعي." + +#: templates/index.html:665 +msgid "Expertise" +msgstr "الخبرات" + +#: templates/index.html:695 +msgid "Company" +msgstr "الشركة" + +#: templates/index.html:697 +msgid "About Us" +msgstr "من نحن" + +#: templates/index.html:743 +msgid "Built with Engineering Excellence" +msgstr "صُمم بامتياز هندسي" + +#: templates/index.html:872 +msgid "Sending..." +msgstr "جاري الإرسال..." \ No newline at end of file diff --git a/manage.py b/manage.py new file mode 100755 index 0000000..7873b74 --- /dev/null +++ b/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tenhal.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6b71e46 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,27 @@ +aiohappyeyeballs==2.6.1 +aiohttp==3.13.2 +aiosignal==1.4.0 +asgiref==3.11.0 +attrs==25.4.0 +certifi==2025.11.12 +charset-normalizer==3.4.4 +Django==6.0 +django-admin-rangefilter==0.13.5 +django-extensions==4.1 +django-picklefield==3.4.0 +django-q2==1.9.0 +frozenlist==1.8.0 +geoip2==5.2.0 +gunicorn==23.0.0 +idna==3.11 +maxminddb==3.0.0 +multidict==6.7.0 +packaging==25.0 +pillow==12.0.0 +propcache==0.4.1 +requests==2.32.5 +setproctitle==1.3.7 +sqlparse==0.5.5 +typing_extensions==4.15.0 +urllib3==2.6.2 +yarl==1.22.0 diff --git a/static/css/main.css b/static/css/main.css new file mode 100644 index 0000000..1a4e1ad --- /dev/null +++ b/static/css/main.css @@ -0,0 +1,244 @@ + + /* --- CSS STYLES --- */ + :root { + --background: #ffffff; + --foreground: #09090b; + --card: #ffffff; + --primary: #18181b; + --primary-foreground: #fafafa; + --secondary: #f4f4f5; + --secondary-foreground: #18181b; + --muted: #f4f4f5; + --muted-foreground: #71717a; + --border: #e4e4e7; + --input: #e4e4e7; + --radius: 0.5rem; + --section-spacing: clamp(60px, 10vw, 120px); + --container-max: 1200px; + --gutter: 20px; + --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif; + --font-arabic: "Cairo", ui-sans-serif, system-ui, sans-serif; + } + + /* Apply Arabic font if language is Arabic */ + html[lang="ar"] { --font-sans: "Cairo", ui-sans-serif, system-ui, sans-serif; } + + * { margin: 0; padding: 0; box-sizing: border-box; } + html { scroll-behavior: smooth; } + body { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; color: var(--foreground); line-height: 1.6; overflow-x: hidden; letter-spacing: -0.01em; } + + /* Directionality helper */ + + .container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--gutter); } + a { text-decoration: none; color: inherit; transition: 0.2s; } + ul { list-style: none; } + + /* Typography */ + h1, h2, h3 { letter-spacing: -0.025em; line-height: 1.1; margin-bottom: 1rem; } + h1 { font-size: clamp(2.25rem, 8vw, 4rem); } + h2 { font-size: clamp(1.75rem, 5vw, 2.5rem); } + h3 { font-size: 1.25rem; font-weight: 600; } + p { color: var(--muted-foreground); } + .lead { font-size: clamp(1.1rem, 3vw, 1.25rem); } + + /* Navigation */ + header { position: fixed; top: 0; left: 0; right: 0; height: 6rem; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); z-index: 1000; display: flex; align-items: center; } + .nav-inner { display: flex; justify-content: space-between; align-items: center; width: 100%; } + .logo { font-weight: 800; font-size: 1.25rem; letter-spacing: -0.05em; display: flex; align-items: center; gap: 0.5rem; text-decoration: none; color: inherit;} + .logo img { height: 70px; width: auto; } + .nav-links { display: flex; gap: 1.5rem; } + .nav-links a { font-size: 0.875rem; font-weight: 500; color: var(--muted-foreground); } + .nav-links a:hover { color: var(--foreground); } + .mobile-toggle { display: none; background: none; border: none; cursor: pointer; color: var(--foreground); } + + /* Language Switcher */ + .lang-switch { + display: flex; gap: 0.5rem; align-items: center; font-size: 0.8rem; font-weight: 600; + margin: 0 1rem; cursor: pointer; border: 1px solid var(--border); padding: 4px 8px; border-radius: 4px; + } + .lang-switch:hover { background: var(--secondary); } + + /* Mobile Overlay */ + .nav-overlay { position: fixed; top: 6rem; left: 0; width: 100%; height: 0; background: var(--background); overflow: hidden; transition: 0.3s cubic-bezier(0.16, 1, 0.3, 1); z-index: 999; display: flex; flex-direction: column; padding: 0 1.5rem; } + .nav-overlay.open { height: calc(100vh - 6rem); padding-top: 2rem; } + .nav-overlay a { font-size: 1.5rem; font-weight: 600; padding: 1.25rem 0; border-bottom: 1px solid var(--border); } + + /* Hero & Visuals */ + .hero { padding: 8rem 0 var(--section-spacing); background: radial-gradient(#e4e4e7 1px, transparent 1px); background-size: 24px 24px; } + .hero-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 3rem; align-items: center; } + .hero-visual { border: 1px solid var(--border); border-radius: var(--radius); height: 320px; background: white; position: relative; overflow: hidden; box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.05); } + .hero-visual-bg { width: 100%; height: 100%; background: linear-gradient(to right, #f4f4f5 1px, transparent 1px), linear-gradient(to bottom, #f4f4f5 1px, transparent 1px); background-size: 20px 20px; } + .hero-img { width: 100%; height: 100%; object-fit: cover; display: block; } + + + /* --- Marquee --- */ + .partners-section { + padding: 2.5rem 0; + border-top: 1px solid var(--border); + border-bottom: 1px solid var(--border); + overflow: hidden; + + } + + .marquee-track { + display: flex; + gap: 3rem; /* Reduced from 6rem to 3rem for tighter look with fewer items */ + width: max-content; + /* ADJUSTMENT 1: Added padding to ensure track has width even with few items */ + padding: 0 1rem; + /* ADJUSTMENT 2: Increased animation duration from 40s to 80s for smoother speed */ + animation: marquee 120s linear infinite; + } + + .partner-logo { + height: 40px; + width: auto; + object-fit: contain; + filter: grayscale(100%); + opacity: 0.5; + } + + /* Keep existing text style for names without logos */ + .partner-item { + font-weight: 700; + color: #d4d4d8; + font-size: 1.1rem; + /* ADJUSTMENT 3: Ensure text doesn't break or wrap */ + white-space: nowrap; + /* Flexbox to align text vertically with logos if they appear mixed */ + display: flex; + align-items: center; + /* Give text elements some space if mixed with logos */ + padding: 0 0.5rem; + } + + @keyframes marquee { + from { transform: translateX(0); } + to { transform: translateX(-50%); } + } + + + + /* Cards & Badge */ + .badge { display: inline-block; padding: 0.25rem 0.75rem; background: var(--secondary); border-radius: 99px; font-size: 0.75rem; font-weight: 600; margin-bottom: 1.5rem; } + + /* Carousel Styles (Shared) */ + .section-header { display: flex; justify-content: space-between; align-items: end; margin-bottom: 2rem; } + .carousel-container { position: relative; } + + .carousel-track { + display: flex; + gap: 1.5rem; + overflow-x: auto; + scroll-behavior: smooth; + padding-bottom: 1rem; + -ms-overflow-style: none; + scrollbar-width: none; + scroll-snap-type: x mandatory; + } + .carousel-track::-webkit-scrollbar { display: none; } + + .carousel-item { flex: 0 0 auto; scroll-snap-align: start; width: 100%; } + + @media (min-width: 768px) { + .services-track .carousel-item { width: calc(33.333% - 1rem); } + .testimonials-track .carousel-item { width: calc(50% - 0.75rem); } + .team-track .carousel-item { width: calc(25% - 1.125rem); } + } + + .card { padding: 2rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); transition: transform 0.2s, box-shadow 0.2s; height: 100%; display: flex; flex-direction: column; } + .card:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0,0,0,0.05); } + .card-icon { width: 3rem; height: 3rem; background: var(--secondary); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; color: var(--foreground); } + + /* Testimonial Specifics */ + .testimonial-img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid var(--secondary); margin: 0 auto 1.5rem auto; display: block; } + .testimonial-text { font-size: 1.125rem; font-weight: 500; color: var(--foreground); margin-bottom: auto; text-align: center; } + .testimonial-author { text-align: center; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--secondary); } + .testimonial-author-name { font-size: 0.9rem; font-weight: 700; color: var(--foreground); display: block; margin-bottom: 0.25rem; } + .testimonial-author-role { font-size: 0.8rem; color: var(--muted-foreground); } + + /* Team Specifics */ + .team-card { text-align: center; align-items: center; justify-content: center; } + .team-card:hover { border-color: var(--foreground); } + .team-img-wrapper { width: 96px; height: 96px; margin-bottom: 1.25rem; border-radius: 50%; background: var(--muted); overflow: hidden; flex-shrink: 0; } + .team-img-wrapper img { width: 100%; height: 100%; object-fit: cover; } + + /* Carousel Controls */ + .carousel-controls { display: flex; gap: 0.5rem; } + .slider-btn { + background: white; border: 1px solid var(--border); color: var(--foreground); + width: 40px; height: 40px; border-radius: 50%; cursor: pointer; + display: flex; align-items: center; justify-content: center; transition: 0.2s; flex-shrink: 0; + } + .slider-btn:hover { background: var(--secondary); border-color: var(--foreground); } + + /* Product Section (Dark) */ + .product-section { background: #18181b; color: white; padding: var(--section-spacing) 0; position: relative; } + + .product-slider-wrapper { position: relative; width: 100%; overflow: hidden; } + + .product-slide { + display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; + opacity: 0; position: absolute; top: 0; left: 0; width: 100%; + transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1); + transform: translateY(30px); z-index: 0; pointer-events: none; visibility: hidden; + } + .product-slide.active { opacity: 1; position: relative; transform: translateY(0); z-index: 10; pointer-events: all; visibility: visible; } + + .product-ui-mockup { + background: #27272a; border: 1px solid #3f3f46; border-radius: var(--radius); aspect-ratio: 16/10; padding: 1.5rem; + display: flex; flex-direction: column; gap: 1rem; box-shadow: 0 20px 50px -10px rgba(0,0,0,0.5); + } + + @keyframes popIn { 0% { transform: scale(0.95); opacity: 0; } 100% { transform: scale(1); opacity: 1; } } + .product-slide.active .product-ui-mockup { animation: popIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; } + + .ui-block { background: #3f3f46; border-radius: 4px; } + .feature-list { list-style: none; margin-top: 1.5rem; } + .feature-list li { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; color: #d4d4d8; } + + /* Product Controls */ + .slider-controls { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; margin-bottom: 2rem; } + .slider-controls .slider-btn { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); color: white; } + .slider-controls .slider-btn:hover { background: white; color: #18181b; } + .slider-indicators { display: flex; gap: 0.5rem; } + .indicator { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.2); cursor: pointer; transition: 0.2s; } + .indicator.active { background: white; width: 20px; border-radius: 4px; } + + /* Form Controls */ + .contact-wrapper { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: white; } + .contact-info { background: var(--secondary); padding: 3.5rem; } + .contact-form-box { padding: 3.5rem; } + .form-label { display: block; font-size: 0.875rem; font-weight: 500; margin-bottom: 0.5rem; } + .form-control { width: 100%; padding: 0.75rem; border: 1px solid var(--input); border-radius: var(--radius); margin-bottom: 1.25rem; font-family: inherit; transition: 0.2s; } + .form-control:focus { outline: none; border-color: var(--foreground); } + textarea.form-control { min-height: 120px; resize: vertical; } + .btn { display: inline-flex; align-items: center; justify-content: center; padding: 0 1.5rem; height: 3rem; font-size: 0.875rem; font-weight: 500; border-radius: var(--radius); cursor: pointer; border: 1px solid transparent; transition: 0.2s; } + .btn-primary { background: var(--primary); color: var(--primary-foreground); } + .btn-primary:hover { opacity: 0.9; } + .btn-outline { border: 1px solid var(--border); background: transparent; } + .btn-outline:hover { background: var(--secondary); } + .btn-lg { height: 3.5rem; padding: 0 2rem; font-size: 1rem; } + + /* Reveal Animation */ + .reveal { opacity: 0; transform: translateY(20px); transition: 0.8s cubic-bezier(0.16, 1, 0.3, 1); } + .reveal.active { opacity: 1; transform: translateY(0); } + + /* Footer */ + footer { padding: 5rem 0 2.5rem; border-top: 1px solid var(--border); } + .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 4rem; } + .footer-links li { margin-bottom: 0.75rem; font-size: 0.875rem; color: var(--muted-foreground); cursor: pointer; transition: 0.2s;} + .footer-links li:hover { color: var(--foreground); } + + @media (max-width: 1024px) { + .hero-grid, .product-slide, .contact-wrapper, .footer-grid { grid-template-columns: 1fr; } + .nav-links, .nav-cta { display: none; } + .mobile-toggle { display: block; } + .product-slide { gap: 2rem; text-align: center; } + .feature-list li { justify-content: center; } + .slider-controls { justify-content: center; } + .contact-info, .contact-form-box { padding: 2rem; } + .carousel-item { width: 85%; } + .section-header { flex-direction: column; align-items: flex-start; gap: 1rem; } + } + \ No newline at end of file diff --git a/static/images/android-chrome-192x192.png b/static/images/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..4a0af6a37a742a9fe58d7c061b6056c6fcddeadd GIT binary patch literal 20277 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

xlf|bqfRNdOz0r;${ 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 UdKJxufG42W(hA_RmxliT2T~z50ssI2 literal 0 HcmV?d00001 diff --git a/static/images/apple-touch-icon.png b/static/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..80678fc2968627be0697842611e093843fa58553 GIT binary patch literal 17809 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 literal 0 HcmV?d00001 diff --git a/static/images/favicon-16x16.png b/static/images/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..418be084b6805ccec7371db8ad796d91aa372430 GIT binary patch literal 473 zcmV;~0Ve*5P)2`ys4=<_nmuh@0|0w=XXl$e{u)@0|{0wR$J6H_zn>>V>a zInB6lmPj;e%diE2!ku5p$>|lv?gHFJ1@Z@5vjrH2Vt8<8J9dhl0T{TEf!e9Lq}! z;`0o2xAOY-P9PNKuNn(LM=!5$IrN`#coO#`S@-t+tgLPje04}=jR7`x!HVweTf7~O86`Qr4$Wywe)ti(bQN^Pe+Ti z-9le?2Yp@b^!IjRNKQgM7C>Sk)qUE49{>OV|NkOOY6AcO00v1!K~w_(XS=xJB8fwL P00000NkvXXu0mjfnF-dx literal 0 HcmV?d00001 diff --git a/static/images/favicon-32x32.png b/static/images/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..c3687913b1f121a6ce060652303ce66980c63ee4 GIT binary patch literal 1272 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 F{0CG2(yssj literal 0 HcmV?d00001 diff --git a/static/images/site.webmanifest b/static/images/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/static/images/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/static/js/main.js b/static/js/main.js new file mode 100644 index 0000000..7ceba91 --- /dev/null +++ b/static/js/main.js @@ -0,0 +1,182 @@ +// --- Toggle Mobile Menu --- + // --- Mobile Navigation --- + function toggleMenu() { + document.getElementById('mobile-nav').classList.toggle('open'); + } + + // --- Intersection Observer for Scroll Animations --- + const observer = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) entry.target.classList.add('active'); + }); + }, { threshold: 0.1 }); + + document.querySelectorAll('.reveal').forEach(el => observer.observe(el)); + + // --- Generic Horizontal Scroll Logic (Services, Team, Testimonials) --- + function scrollCarousel(trackId, direction) { + const track = document.getElementById(trackId); + if (!track) return; + const firstItem = track.querySelector('.carousel-item'); + if (!firstItem) return; + const itemWidth = firstItem.offsetWidth; + const gap = 24; + const scrollAmount = itemWidth + gap; + + // Adjust direction for RTL + let scrollDir = direction; + if (document.dir === 'rtl') { + scrollDir = direction * -1; + } + + if (scrollDir === -1) { + track.scrollBy({ left: -scrollAmount, behavior: 'smooth' }); + } else { + track.scrollBy({ left: scrollAmount, behavior: 'smooth' }); + } + } + + // --- Product Slider Logic (Fade) --- + const slides = document.querySelectorAll('.product-slide'); + const indicators = document.querySelectorAll('.indicator'); + const prevBtn = document.getElementById('prev-btn'); + const nextBtn = document.getElementById('next-btn'); + const productWrapper = document.querySelector('.product-slider-wrapper'); + + let currentSlide = 0; + const totalSlides = slides.length; + let slideInterval; + + if(totalSlides > 0) { + function showSlide(index) { + if (index >= totalSlides) currentSlide = 0; + else if (index < 0) currentSlide = totalSlides - 1; + else currentSlide = index; + + slides.forEach(slide => slide.classList.remove('active')); + indicators.forEach(ind => ind.classList.remove('active')); + + slides[currentSlide].classList.add('active'); + indicators[currentSlide].classList.add('active'); + } + + function nextSlide() { + showSlide(currentSlide + 1); + } + + function prevSlide() { + showSlide(currentSlide - 1); + } + + if(nextBtn) { + nextBtn.addEventListener('click', () => { + nextSlide(); + resetTimer(); + }); + } + + if(prevBtn) { + prevBtn.addEventListener('click', () => { + prevSlide(); + resetTimer(); + }); + } + + indicators.forEach((ind, index) => { + ind.addEventListener('click', () => { + showSlide(index); + resetTimer(); + }); + }); + + function startTimer() { + slideInterval = setInterval(nextSlide, 5000); + } + + function resetTimer() { + clearInterval(slideInterval); + startTimer(); + } + + if(productWrapper) { + productWrapper.addEventListener('mouseenter', () => clearInterval(slideInterval)); + productWrapper.addEventListener('mouseleave', startTimer); + startTimer(); + } + } + + // --- Form Submission (AJAX) --- + function showToast(message) { + const toast = document.getElementById('toast'); + toast.textContent = message; + toast.style.transform = 'translateY(0)'; + + setTimeout(() => { + toast.style.transform = 'translateY(150%)'; + }, 3000); + } + + document.getElementById('contactForm').addEventListener('submit', function(e) { + e.preventDefault(); + const formData = new FormData(this); + const submitBtn = this.querySelector('button[type="submit"]'); + const originalText = submitBtn.textContent; + + submitBtn.textContent = '{% trans "Sending..." %}'; + submitBtn.disabled = true; + + fetch("{% url 'submit_inquiry' %}", { + method: 'POST', + body: formData, + headers: { + 'X-Requested-With': 'XMLHttpRequest' + } + }) + .then(response => response.json()) + .then(data => { + if(data.status === 'success') { + showToast(data.message); + document.getElementById('contactForm').reset(); + } else { + showToast('Error: ' + (data.message || 'Something went wrong')); + } + }) + .catch(error => { + showToast('Error: Could not submit form.'); + console.error('Error:', error); + }) + .finally(() => { + submitBtn.textContent = originalText; + submitBtn.disabled = false; + }); + }); + + // --- Marquee Width Fix --- + // Ensures the partner list is always wide enough to scroll smoothly + function adjustMarqueeWidth() { + const track = document.getElementById('marquee-track'); + if (!track) return; + + // Get the rendered width of the single list + const currentWidth = track.scrollWidth; + // Target width: We want the track to be at least 200% of screen width + // so it has enough room to scroll off-screen before resetting. + const targetWidth = window.innerWidth * 2.0; + + // Calculate how many times we need to repeat the list to reach target width + const repeats = Math.max(2, Math.ceil(targetWidth / currentWidth)); + + // Get the raw HTML content (the first run of the loop) + const originalContent = track.innerHTML; + + // Rebuild the track with the repeated content + track.innerHTML = ''; + for (let i = 0; i < repeats; i++) { + track.innerHTML += originalContent; + } + } + + // Run on load and resize + window.addEventListener('load', adjustMarqueeWidth); + window.addEventListener('resize', adjustMarqueeWidth); + \ No newline at end of file diff --git a/templates/admin/visitor_log_changelist.html b/templates/admin/visitor_log_changelist.html new file mode 100644 index 0000000..39a5a41 --- /dev/null +++ b/templates/admin/visitor_log_changelist.html @@ -0,0 +1,43 @@ +{% extends "admin/change_list.html" %} + +{% block content %} +
+
+

Top Countries (Filtered)

+ +
+ +
+

Top Cities (Filtered)

+ +
+
+ +{{ block.super }} + + + +{% endblock %} \ No newline at end of file diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..47fe4a1 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,507 @@ +{% load static i18n %} + + + + + + {% if settings %}{{ settings.company_name|default:"Tenhal" }}{% else %}Tenhal{% endif %} | {% trans 'AI Product and Services' %} + + + + + + + + + + + + + + + +
+ + + +
+
+
+
{% trans "Digital Transformation Partner" %}
+

+ {% if current_lang == 'ar' %}تمكين المستقبل الرقمي للمملكة{% else %}Empowering the Kingdom’s Digital Future.{% endif %} +

+

+ {% if current_lang == 'ar' %}نحن نقدم خبرة هندسية عالمية وحلول ذكاء اصطناعي محلية لمساعدة الشركات السعودية على النمو والابتكار.{% else %}We deliver world-class engineering expertise and localized AI solutions to help Saudi enterprises scale, innovate, and lead the next era of technology.{% endif %} +

+ +
+
+
+
+
+
+
+
+
+
+ {% if settings and settings.hero_image %} + Tenhal Software Platform + {% else %} + Placeholder + {% endif %} +
+
+
+
+
+ +
+ +
+ {% for partner in partners %} + {% if partner.logo %} + + {% else %} + {% if current_lang == 'ar' %}{{ partner.name_ar }}{% else %}{{ partner.name_en }}{% endif %} + {% endif %} + {% empty %} + KAAUHHammadi Hospital + {% endfor %} + + + +
+
+ + +
+
+
+
+
+
{% trans "Our Expertise" %}
+

{% trans "Engineering Services" %}

+
+ +
+
+ + +
+
+ + +
+
+
+
{% trans "Software Products" %}
+

{% trans "Proprietary Solutions" %}

+
+ +
+
+ {% for product in products %} +
+ {% endfor %} +
+
+ + +
+ +
+ {% for product in products %} +
+
+

{% if current_lang == 'ar' %}{{ product.name_ar }}{% else %}{{ product.name_en }}{% endif %}

+
{% trans "Enterprise Solution" %}
+

{% if current_lang == 'ar' %}{{ product.description_ar }}{% else %}{{ product.description_en }}{% endif %}

+
    + {% if current_lang == 'ar' %} + {% for feature in product.features_ar %} +
  • {{ feature }}
  • + {% endfor %} + {% else %} + {% for feature in product.features_en %} +
  • {{ feature }}
  • + {% endfor %} + {% endif %} +
+ {% if product.link %} + {% trans "Request Demo" %} + {% else %} + {% trans "Request Demo" %} + {% endif %} +
+ + {% if product.link %} + +
+
+
+
+
+ {% if product.image %} +
+
+
+
+
+
+ Mockup +
+
+
+
+ {% endif%} +
+
+ + {% endif%} + +
+ {% empty %} +
{% trans "No products available." %}
+ {% endfor %} +
+
+
+ + +
+
+
+
+
+
{% trans "Leadership" %}
+

{% trans "Meet Team" %}

+
+ +
+
+ + +
+
+ + +
+
+
+
+
+
{% trans "Success Stories" %}
+

{% trans "Trusted by Leaders" %}

+
+ +
+
+ + +
+
+ +
+
+
+
+

{% trans "Ready to build?" %}

+

{% trans "Our solutions architects typically respond to project inquiries within 24 business hours." %}

+ +
+ {% if settings %} + {% if settings.company_address_en %} +
+
{% trans "Address" %}
+
+ {% if current_lang == 'ar' %}{{ settings.company_address_ar }}{% else %}{{ settings.company_address_en }}{% endif %} +
+
+ {% endif %} + + {% if settings.company_phone %} +
+
{% trans "Call Us" %}
+ {% for phone in settings.company_phone %} +
{{ phone }}
+ {% endfor %} +
+ {% endif %} + + {% if settings.company_email %} +
+
{% trans "Email Us" %}
+ {% for email in settings.company_email %} +
{{ email }}
+ {% endfor %} +
+ {% endif %} + +
+
{% trans "Working Hours" %}
+
{% trans "Sunday - Thursday" %}
+
9:00AM - 05:00PM
+
+ {% endif %} +
+
+ +
+
+ {% csrf_token %} + + + + + + + +
+
+
+
+
+ + +
+ {% trans "Message sent successfully!" %} +
+ +
+
+ +
+

© {% now "Y" %} tenhal.sa

+

{% trans "Built with Engineering Excellence" %}

+
+
+
+ + + + \ No newline at end of file diff --git a/tenhal/__init__.py b/tenhal/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tenhal/asgi.py b/tenhal/asgi.py new file mode 100644 index 0000000..e377ce5 --- /dev/null +++ b/tenhal/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for tenhal project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tenhal.settings') + +application = get_asgi_application() diff --git a/tenhal/settings.py b/tenhal/settings.py new file mode 100644 index 0000000..13cfd2e --- /dev/null +++ b/tenhal/settings.py @@ -0,0 +1,203 @@ +""" +Django settings for tenhal project. + +Generated by 'django-admin startproject' using Django 6.0. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/6.0/ref/settings/ +""" + +from pathlib import Path +import environ +import os + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +env = environ.Env( + # set casting, default value + DEBUG=(bool, False) +) +environ.Env.read_env(os.path.join(BASE_DIR, '.env')) + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = env('SECRET_KEY') + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = env('DEBUG') +# ALLOWED_HOSTS = ['*'] +ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=[]) + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'rangefilter', + 'landing_page', + 'django_extensions', + 'django_q', + +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.locale.LocaleMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'landing_page.middleware.AnalyticsMiddleware', # Custom Analytics Middleware +] + +ROOT_URLCONF = 'tenhal.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': ['templates'], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'tenhal.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/6.0/ref/settings/#databases + +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.sqlite3', +# 'NAME': BASE_DIR / 'db.sqlite3', +# } +# } + +# settings.py + +# 1. Database Optimization (Django 5.1+) +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + 'OPTIONS': { + 'timeout': 20, # Wait 20s for locks + 'transaction_mode': 'IMMEDIATE', # Prevents deadlocks + 'init_command': ( + 'PRAGMA journal_mode=WAL;' # Read while writing + 'PRAGMA synchronous=NORMAL;' # Fast writes + 'PRAGMA mmap_size=134217728;' # 128MB Memory mapping for speed + 'PRAGMA cache_size=2000;' # Increase page cache + ), + }, + } +} + +# 2. Django-Q2 Settings +Q_CLUSTER = { + 'name': 'LandingPageQueue', + 'workers': 2, # Keep workers low for SQLite (1-2 is best) + 'recycle': 500, # Restart workers occasionally to free memory + 'timeout': 60, # Kill task if it hangs + 'retry': 120, # Retry task after 2 mins if it failed + 'orm': 'default', # USE SQLITE AS THE QUEUE + 'save_limit': 100, # Only keep last 100 successful tasks (Prevents DB bloat) + 'ack_failures': True, # Remove failed tasks from queue after retry + 'poll': 0.5, # How often to check for new tasks (seconds) +} + + +# Password validation +# https://docs.djangoproject.com/en/6.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/6.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/6.0/howto/static-files/ + +STATIC_URL = 'static/' + + +STATICFILES_DIRS = [ + BASE_DIR / 'static', +] + +# The absolute path to the directory where collectstatic will gather files for deployment +STATIC_ROOT = BASE_DIR / 'staticfiles' + + +MEDIA_URL = '/media/' # The URL prefix for user-uploaded media files +MEDIA_ROOT = BASE_DIR / 'media' + + + +# 3. Define Languages (English and Arabic) +LANGUAGE_CODE = 'en' # Default language +LANGUAGES = [ + ('en', 'English'), + ('ar', 'Arabic'), +] + +# 4. Use cookies to remember language choice +LANGUAGE_COOKIE_NAME = 'django_language' + +LOCALE_PATHS = [ + BASE_DIR / 'locale' +] + +# Path to the directory containing GeoLite2-City.mmdb and GeoLite2-Country.mmdb +GEOIP_PATH = BASE_DIR / 'geoip' + + + +# 3. Security Headers (Required for 10k visitors) +SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') +SECURE_SSL_REDIRECT = True +SESSION_COOKIE_SECURE = True +CSRF_COOKIE_SECURE = True \ No newline at end of file diff --git a/tenhal/urls.py b/tenhal/urls.py new file mode 100644 index 0000000..23a59c4 --- /dev/null +++ b/tenhal/urls.py @@ -0,0 +1,21 @@ +from django.contrib import admin +from django.urls import path, include +# Import this for /en/ and /ar/ prefixes +from django.conf.urls.i18n import i18n_patterns +# Import the built-in view +from django.views.i18n import set_language +from django.conf import settings +from django.conf.urls.static import static + +urlpatterns = [ + path('admin/', admin.site.urls), +] + i18n_patterns( + path('', include('landing_page.urls')), # Replace 'tenhal' with your app name + + # Add this URL for the form to work + path('set_language/', set_language, name='set_language'), +) + +if settings.DEBUG: + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \ No newline at end of file diff --git a/tenhal/wsgi.py b/tenhal/wsgi.py new file mode 100644 index 0000000..378644b --- /dev/null +++ b/tenhal/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for tenhal project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tenhal.settings') + +application = get_wsgi_application()
+ +