Skip to content

Commit df6eccf

Browse files
author
yangjian
committed
适配django4.2
1 parent 14a54a6 commit df6eccf

7 files changed

Lines changed: 164 additions & 37 deletions

MrDoc/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
}
139139
}
140140

141+
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
141142

142143
# Password validation
143144
# https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Generated by Django 4.2.16 on 2024-10-17 13:11
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('app_admin', '0008_useroptions'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='emaiverificationcode',
15+
name='id',
16+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
17+
),
18+
migrations.AlterField(
19+
model_name='registercode',
20+
name='id',
21+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
22+
),
23+
migrations.AlterField(
24+
model_name='useroptions',
25+
name='id',
26+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
27+
),
28+
]
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 4.2.16 on 2024-10-17 13:11
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('app_api', '0003_appusertoken'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='appusertoken',
15+
name='id',
16+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
17+
),
18+
migrations.AlterField(
19+
model_name='usertoken',
20+
name='id',
21+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
22+
),
23+
]
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Generated by Django 4.2.16 on 2024-10-17 13:11
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('app_doc', '0040_auto_20220311_1600'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='attachment',
15+
name='id',
16+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
17+
),
18+
migrations.AlterField(
19+
model_name='doc',
20+
name='id',
21+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
22+
),
23+
migrations.AlterField(
24+
model_name='dochistory',
25+
name='id',
26+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
27+
),
28+
migrations.AlterField(
29+
model_name='docshare',
30+
name='id',
31+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
32+
),
33+
migrations.AlterField(
34+
model_name='doctag',
35+
name='id',
36+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
37+
),
38+
migrations.AlterField(
39+
model_name='doctemp',
40+
name='id',
41+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
42+
),
43+
migrations.AlterField(
44+
model_name='image',
45+
name='id',
46+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
47+
),
48+
migrations.AlterField(
49+
model_name='imagegroup',
50+
name='id',
51+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
52+
),
53+
migrations.AlterField(
54+
model_name='mycollect',
55+
name='id',
56+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
57+
),
58+
migrations.AlterField(
59+
model_name='project',
60+
name='id',
61+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
62+
),
63+
migrations.AlterField(
64+
model_name='projectcollaborator',
65+
name='id',
66+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
67+
),
68+
migrations.AlterField(
69+
model_name='projectreport',
70+
name='id',
71+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
72+
),
73+
migrations.AlterField(
74+
model_name='projectreportfile',
75+
name='id',
76+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
77+
),
78+
migrations.AlterField(
79+
model_name='projecttoc',
80+
name='id',
81+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
82+
),
83+
migrations.AlterField(
84+
model_name='tag',
85+
name='id',
86+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
87+
),
88+
]

app_doc/report_html2pdf.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
from selenium.common.exceptions import TimeoutException
1010
from selenium.webdriver.support.ui import WebDriverWait
1111
from selenium.webdriver.support.expected_conditions import staleness_of
12-
from webdriver_manager.chrome import ChromeDriverManager
13-
from webdriver_manager.utils import ChromeType
12+
from webdriver_manager.chrome import ChromeDriverManager,ChromeType
1413
from django.conf import settings
1514
from django.utils.translation import gettext_lazy as _
1615
import sys
@@ -66,15 +65,19 @@ def __get_pdf_from_html(path: str, timeout: int, install_driver: bool, print_opt
6665

6766
# 使用指定的chromedriver
6867
if settings.CHROMIUM_DRIVER_PATH is not None:
69-
driver = webdriver.Chrome(executable_path=settings.CHROMIUM_DRIVER_PATH,options=webdriver_options)
68+
from selenium.webdriver.chrome.service import Service
69+
# 创建 Service 对象
70+
service = Service(executable_path=settings.CHROMIUM_DRIVER_PATH)
71+
driver = webdriver.Chrome(service=service, options=webdriver_options)
7072
# 使用默认的chromedriver
7173
else:
7274
driver = webdriver.Chrome(options=webdriver_options)
7375

7476
driver.get(path)
7577

7678
try:
77-
WebDriverWait(driver, timeout).until(staleness_of(driver.find_element_by_tag_name('html')))
79+
from selenium.webdriver.common.by import By
80+
WebDriverWait(driver, timeout).until(staleness_of(driver.find_element(By.TAG_NAME, 'html')))
7881
except TimeoutException:
7982
calculated_print_options = {
8083
'landscape': False,

app_doc/report_utils.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ def validate_title(title):
4040
return new_title
4141

4242
# 导出MD文件压缩包
43-
@logger.catch()
4443
class ReportMD():
4544
def __init__(self,project_id):
4645
# 查询文集信息
@@ -240,7 +239,6 @@ def work(self):
240239

241240

242241
# 导出EPUB
243-
@logger.catch()
244242
class ReportEPUB():
245243
def __init__(self,project_id):
246244
self.project = Project.objects.get(id=project_id)
@@ -674,7 +672,6 @@ def work(self):
674672

675673

676674
# 导出PDF
677-
@logger.catch()
678675
class ReportPDF():
679676
def __init__(self,project_id,user_id):
680677
# 查询文集信息
@@ -997,18 +994,3 @@ def work(self):
997994
with open(temp_file_path, 'a+', encoding='utf-8') as htmlfile:
998995
htmlfile.write(self.doc_str + self.content_str + "</body></html>")
999996

1000-
1001-
if __name__ == '__main__':
1002-
# app = ReportMD(
1003-
# project_id=7
1004-
# )
1005-
# app.work()
1006-
1007-
# app = ReportEPUB(project_id=20)
1008-
# app.work()
1009-
1010-
app = ReportPDF(project_id=20)
1011-
app.work()
1012-
1013-
# app = ReportDocx(project_id=20)
1014-
# app.work()

requirements.txt

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
django==2.2.*
2-
beautifulsoup4==4.8.2
1+
django==4.2.*
2+
beautifulsoup4==4.12.3
33
lxml
4-
pillow>=7.1.0,<10.0
5-
loguru==0.4.1
6-
importlib-metadata==4.7.1
7-
djangorestframework==3.11.2
8-
requests==2.24.0
4+
pillow>=10.1
5+
loguru==0.7.2
6+
importlib-metadata==8.5.0
7+
djangorestframework==3.15.2
8+
requests==2.32.3
99
whoosh==2.7.4
10-
django-haystack==3.1.1
11-
Markdown==3.3.3
10+
django-haystack==3.3.0
11+
Markdown==3.7
1212
jieba==0.42.1
13-
mammoth==1.4.13
14-
markdownify==0.6.0
15-
selenium==3.141.0
16-
webdriver_manager==3.3.0
17-
PyYAML==6.0.1
18-
django-cors-headers>=3.10.0
13+
mammoth==1.8.0
14+
markdownify==0.13.1
15+
selenium==4.25.0
16+
webdriver_manager==4.0.2
17+
PyYAML==6.0.2
18+
qiniu==7.14.0
19+
mysqlclient
20+
django-cors-headers==4.4.0

0 commit comments

Comments
 (0)