initial
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
from django.contrib import admin
|
||||
from project.models import *
|
||||
|
||||
admin.site.register(projectPageSEO)
|
||||
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class ProjectConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'project'
|
||||
@@ -0,0 +1,13 @@
|
||||
from django import forms
|
||||
from project.models import *
|
||||
|
||||
# About Page SEO Form
|
||||
class projectPageSEOForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = projectPageSEO
|
||||
fields = '__all__'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
for field in self.fields.values():
|
||||
field.widget.attrs['class'] = 'form-control'
|
||||
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 4.2.4 on 2023-09-17 06:07
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='projectPageSEO',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('meta_title', models.CharField(blank=True, max_length=500, null=True)),
|
||||
('meta_description', models.CharField(blank=True, max_length=1000, null=True)),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
from django.db import models
|
||||
|
||||
class projectPageSEO(models.Model):
|
||||
meta_title = models.CharField(max_length=500, blank=True, null=True)
|
||||
meta_description = models.CharField(max_length=1000, blank=True, null=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.meta_title
|
||||
@@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
@@ -0,0 +1,7 @@
|
||||
from django.urls import path
|
||||
from project.views import *
|
||||
|
||||
urlpatterns = [
|
||||
path('projects/', projectPageFront, name='projectPageFront'),
|
||||
path('project/details/<str:slug>/', projectDetails, name='projectDetails'),
|
||||
]
|
||||
@@ -0,0 +1,41 @@
|
||||
from django.shortcuts import render, get_object_or_404
|
||||
from home.models import projectSection, projectCategory
|
||||
from project.models import projectPageSEO
|
||||
from django.core.paginator import Paginator, EmptyPage
|
||||
|
||||
def projectPageFront(request):
|
||||
seo = projectPageSEO.objects.first()
|
||||
project_categories = projectCategory.objects.all()
|
||||
projects = projectSection.objects.all().order_by('?')
|
||||
|
||||
items_per_page = 9
|
||||
|
||||
paginator = Paginator(projects, items_per_page)
|
||||
|
||||
page_number = request.GET.get('page')
|
||||
|
||||
try:
|
||||
projects = paginator.get_page(page_number)
|
||||
except EmptyPage:
|
||||
projects = paginator.get_page(paginator.num_pages)
|
||||
|
||||
context = {
|
||||
'seo': seo,
|
||||
'projects': projects,
|
||||
'project_categories': project_categories,
|
||||
}
|
||||
|
||||
return render(request, 'front/main/project.html', context)
|
||||
|
||||
def projectDetails(request, slug):
|
||||
project = get_object_or_404(projectSection, slug=slug)
|
||||
projects = projectSection.objects.exclude(slug=slug).order_by('?')
|
||||
|
||||
context = {
|
||||
'project' : project,
|
||||
'projects' : projects,
|
||||
}
|
||||
return render(request, 'front/main/partial/project-details.html', context)
|
||||
|
||||
def error_404(request, exception):
|
||||
return render(request, 'error/404.html', status=404)
|
||||
Reference in New Issue
Block a user