提交 79306732 编写于 作者: Y yuenblue

aaa

上级 4f61bdcc
from django import forms
from common.models import ArticleSummary,ArticleContent
from django.core.paginator import Paginator
from common.forms import ToppingSelect
from common.models import Category
from ..caches import cache_category
class ArticleIndexForm(forms.Form):
"""CategoryIndexForm definition."""
catid = forms.IntegerField()
status = forms.IntegerField()
keywords=forms.CharField(max_length=25)
page = forms.IntegerField()
catid=forms.ModelChoiceField(queryset=None,
label="所属栏目",help_text="请选择栏目",widget=ToppingSelect(attrs={'class':'form-select'}),empty_label="所有栏目")
status = forms.ChoiceField(choices=ArticleSummary.Status.choices,widget=forms.Select(attrs={'class':'form-select'}))
keywords=forms.CharField(max_length=25,help_text='aaaa',widget=forms.TextInput(attrs={'class':'form-control','placeholder':'请输入搜索关键字'}))
# page = forms.IntegerField()
def search(self)->Paginator:
paginator=Paginator(['john', 'paul', 'george', 'ringo','aaaa','bbbb','cccc'],3)
pass
return paginator
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['catid'].queryset=cache_category.categories['category_order'][Category.Usage.Article]["data"]
class ArticleSummaryForm(forms.ModelForm):
class Meta:
......
......@@ -2,17 +2,18 @@ from django import forms
from common.models import Category
from ..caches import cache_category
from django.utils.html import format_html
class ToppingSelect(forms.Select):
def create_option(self, name, value, label, selected, index, subindex=None, attrs=None):
# option = super().create_option(name, value, label, selected, index, subindex, attrs)
# if value:
# option['attrs']['data-price'] = value.instance.order_select
if value:
aa="&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp"
from common.forms import ToppingSelect
# class ToppingSelect(forms.Select):
# def create_option(self, name, value, label, selected, index, subindex=None, attrs=None):
# # option = super().create_option(name, value, label, selected, index, subindex, attrs)
# # if value:
# # option['attrs']['data-price'] = value.instance.order_select
# if value:
# aa="&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp"
label = format_html("%s┊┈┈%s&nbsp&nbsp"%(aa*(value.instance.layer_select-1),value.instance.name))
option = super().create_option(name, value, label, selected, index, subindex, attrs)
return option
# label = format_html("%s┊┈┈%s&nbsp&nbsp"%(aa*(value.instance.layer_select-1),value.instance.name))
# option = super().create_option(name, value, label, selected, index, subindex, attrs)
# return option
class CategoryIndexForm(forms.Form):
"""CategoryIndexForm definition."""
......
......@@ -8,27 +8,15 @@
{% block content_filter %}
<form action="{% url 'adm:article-index' %}" method="get" class="row align-items-center ">
<div class="col-md-auto" style="min-width: 12rem">
<select class="form-select" id="floatingselect" aria-label="Default select example">
<option selected>所有栏目</option>
<option value="1">新闻</option>
<option value="2">组图</option>
<option value="3">视频</option>
</select>
{{form.catid}}
</div>
<div class="col-md-auto" style="min-width: 12rem">
<select class="form-select" id="floatingselect2" aria-label="Default select example">
<option selected>所有状态</option>
<option value="1">待审核</option>
<option value="2">审核成功</option>
<option value="3">审核失败</option>
<option value="3">编辑中</option>
<option value="3">被丢弃</option>
</select>
{{form.status}}
</div>
<div class="col">
<div class="input-group">
<input type="text" class="form-control" placeholder="请输入关键字" aria-label="待搜索关键字" aria-describedby="待搜索关键字">
<button class="btn btn-outline-secondary" type="button" id="button-addon2">搜索</button>
{{form.keywords}}
<button class="btn btn-outline-secondary" type="submit" id="button-addon2">搜索</button>
</div>
</div>
</form>
......
import os
import unittest
import random
from datetime import datetime
from django.utils import timezone
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
import django
django.setup()
from ..forms.article import ArticleIndexForm
# from article.models import Summary,Content,Additions
from common.models import Category,ArticleSummary
class TestArticle(unittest.TestCase):
"""docstring for TestArticle."""
def testForm(self):
......@@ -14,11 +16,40 @@ class TestArticle(unittest.TestCase):
form.full_clean()
print(form.search())
pass
def testBbb(self):
aa=timezone.now()
# aa.tzname
print(aa)
def testAAa(self):
from datetime import timezone,timedelta
aa=timezone(timedelta(hours=8))
aa.tzname(None)
bb=datetime.now(aa)
print(bb.tzname())
print(bb.tzinfo)
pass
def test_clear(self):
ArticleSummary.objects.all().delete()
pass
def test_create(self):
"""
Purpose:
"""
aa=timezone.get_current_timezone()
bb=timezone.is_aware(timezone.now())
for cat in Category.objects.filter(usage=Category.Usage.Article).all():
num=random.randint(3,10)
for id in range(1,random.randint(6,33)):
article=ArticleSummary()
article.title=f"{cat.name}#{id}"
article.category=cat
article.status=ArticleSummary.Status.Passed
# article.create_at=str(datetime.now())
# article.update_at=timezone.now()
article.save()
# article.title=f"{}"
pass
pass
# end def
......
......@@ -9,7 +9,7 @@ category_urlpatterns=[
]
article_urlpatterns=[
path('index/',article.ArticleIndexView.as_view(),{},name='article-index'),
path('pendingcheck/',article.ArticleIndexView.as_view(),{"catid":0,'status':2},name='article-pendingcheck'),
# path('pendingcheck/',article.ArticleIndexView.as_view(),{"catid":0,'status':2},name='article-pendingcheck'),
# path('index/<int:catid>/<int:status>/<int:page>/<str:keywords>/',article.ArticleIndexView.as_view(),{},name='article-search'),
path('edit/<int:id>/',article.ArticleEditView.as_view(),name='article-edit'),
path('edit/',article.ArticleEditView.as_view(),name='article-create'),
......
from django.http import HttpRequest
from django.shortcuts import render
from django.views import View
from django.core.paginator import Paginator
from ..forms.article import ArticleIndexForm
class ArticleIndexView(View):
def get(self, request: HttpRequest,catid=0,status=0):
......@@ -8,13 +9,15 @@ class ArticleIndexView(View):
catid=request.GET.get('catid',catid)
status=request.GET.get('status',status)
keywords=request.GET.get('keywords','')
data={"catid":catid,"status":status,'kewords':keywords,'page':page}
data={"catid":catid,"status":status,'keywords':keywords,'page':page}
form = ArticleIndexForm(data)
return render(request,'adm/article-index.html',{})
form.full_clean()
paginator=form.search()
return render(request,'adm/article-index.html',{'form':form,"paginator":paginator})
def post(self,request: HttpRequest,id=0):
pass
form = ArticleIndexForm(request.POST)
class ArticleEditView(View):
def post(self, request: HttpRequest,id=0):
......
......@@ -126,11 +126,11 @@ DEFAULT_ADMMENU=[
'sort':1,
'path':'index',
},
{
'name':'待审核',
'sort':1,
'path':'pendingcheck',
},
# {
# 'name':'待审核',
# 'sort':1,
# 'path':'pendingcheck',
# },
{
'name':'编辑文档',
'sort':1,
......@@ -187,15 +187,13 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
USE_TZ = False
# Static files (CSS, JavaScript, Images)
......
from django import forms
from django.utils.html import format_html
class ToppingSelect(forms.Select):
def create_option(self, name, value, label, selected, index, subindex=None, attrs=None):
# option = super().create_option(name, value, label, selected, index, subindex, attrs)
# if value:
# option['attrs']['data-price'] = value.instance.order_select
if value:
aa="&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp"
label = format_html("%s┊┈┈%s&nbsp&nbsp"%(aa*(value.instance.layer_select-1),value.instance.name))
option = super().create_option(name, value, label, selected, index, subindex, attrs)
return option
\ No newline at end of file
from django.utils import timezone
from django.db import models
from .category import Category
from .tag import Tag
......@@ -6,6 +7,7 @@ class ArticleSummary(models.Model):
"""Model definition for Summary."""
class Status(models.IntegerChoices):
"""docstring for Status."""
All=0,"所有状态"
Unfinished=1,"编辑中"
PendingCheck=2,"待审核"
Refused=3,"审核失败"
......@@ -18,8 +20,8 @@ class ArticleSummary(models.Model):
description = models.CharField(max_length = 150)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
tags = models.ManyToManyField(Tag)
create_at = models.DateTimeField(auto_now=False, auto_now_add=False)
update_at = models.DateTimeField(auto_now=False, auto_now_add=False)
create_at = models.DateTimeField(default=timezone.now())
update_at = models.DateTimeField(default=timezone.now())
status = models.IntegerField(choices=Status.choices,default=Status.Unfinished)
......
from django.db import models
import datetime
# from .fields import FieldGroup
# class ContentClasses(models.Model):
......@@ -57,6 +58,9 @@ class Category(models.Model):
seo_keywords = models.CharField(max_length = 255,blank=True)
seo_description = models.CharField(max_length = 255,blank=True)
content = models.TextField(blank=True)
create_at = models.DateTimeField(auto_now=False, auto_now_add=True,null=True)
update_at = models.DateTimeField(auto_now=True, auto_now_add=False,null=True)
# filed_group = models.ForeignKey(FieldGroup, on_delete=models.CASCADE,blank=True)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册