Skip to content
This repository was archived by the owner on May 5, 2023. It is now read-only.

Commit 5093b2a

Browse files
committed
Merge branch 'develop'
2 parents d67a924 + 3fb31ed commit 5093b2a

File tree

12 files changed

+226
-68
lines changed

12 files changed

+226
-68
lines changed

MANIFEST.in

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ include README.md
33
include requirements.txt
44

55
recursive-include django_covid19/spider *
6+
recursive-include django_covid19/locale *
67
recursive-include docs *
78
recursive-include demo *
89
recursive-include demo_proj manage.py

demo_proj/ncov/settings.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
# Internationalization
111111
# https://docs.djangoproject.com/en/2.2/topics/i18n/
112112

113-
LANGUAGE_CODE = 'en-us'
113+
LANGUAGE_CODE = 'zh-Hans'
114114

115115
TIME_ZONE = 'UTC'
116116

django_covid19/admin.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.urls import reverse
33
from django.utils.html import format_html
44
from django.utils.safestring import mark_safe
5+
from django.utils.translation import ugettext_lazy as _
56

67
from . import models
78
import json
@@ -30,18 +31,20 @@ class StatisticsAdmin(BaseAdmin):
3031

3132
def jsonGlobalStatistics(self, obj):
3233
return self.to_json(obj.globalStatistics)
33-
jsonGlobalStatistics.short_description = '全球疫情'
34+
jsonGlobalStatistics.short_description = _('globalStatistics')
3435
jsonGlobalStatistics.admin_order_field = 'globalStatistics'
3536

3637
def jsonDomesticStatistics(self, obj):
3738
return self.to_json(obj.domesticStatistics)
38-
jsonDomesticStatistics.short_description = '国内疫情'
39+
jsonDomesticStatistics.short_description = _('domesticStatistics')
3940
jsonDomesticStatistics.admin_order_field = 'domesticStatistics'
4041

4142
def jsonInternationalStatistics(self, obj):
4243
return self.to_json(obj.internationalStatistics)
43-
jsonInternationalStatistics.short_description = '国际疫情'
44-
jsonInternationalStatistics.admin_order_field = 'internationalStatistics'
44+
jsonInternationalStatistics.short_description \
45+
= _('internationalStatistics')
46+
jsonInternationalStatistics.admin_order_field \
47+
= 'internationalStatistics'
4548

4649
def to_json(self, data):
4750
try:

django_covid19/apps.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
from django.apps import AppConfig
2+
from django.utils.translation import ugettext_lazy as _
23

34

45
class DjangoCovid19Config(AppConfig):
56
name = 'django_covid19'
6-
verbose_name = '新冠肺炎疫情'
7+
verbose_name = _('django_covid19')
78

89
def ready(self):
910
import django_covid19.signals
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
# SOME DESCRIPTIVE TITLE.
2+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3+
# This file is distributed under the same license as the PACKAGE package.
4+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5+
#
6+
#, fuzzy
7+
msgid ""
8+
msgstr ""
9+
"Project-Id-Version: PACKAGE VERSION\n"
10+
"Report-Msgid-Bugs-To: \n"
11+
"POT-Creation-Date: 2020-05-22 13:32+0800\n"
12+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14+
"Language-Team: LANGUAGE <[email protected]>\n"
15+
"Language: \n"
16+
"MIME-Version: 1.0\n"
17+
"Content-Type: text/plain; charset=UTF-8\n"
18+
"Content-Transfer-Encoding: 8bit\n"
19+
"Plural-Forms: nplurals=1; plural=0;\n"
20+
21+
#: admin.py:34 models.py:16
22+
msgid "globalStatistics"
23+
msgstr "全球疫情"
24+
25+
#: admin.py:39 models.py:17
26+
msgid "domesticStatistics"
27+
msgstr "国内疫情"
28+
29+
#: admin.py:45 models.py:18
30+
msgid "internationalStatistics"
31+
msgstr "国际疫情"
32+
33+
#: apps.py:7
34+
msgid "django_covid19"
35+
msgstr "新冠肺炎疫情"
36+
37+
#: management/commands/crawl.py:27
38+
msgid "Crawl data from DingXiangYuan."
39+
msgstr ""
40+
41+
#: models.py:19
42+
msgid "remarks"
43+
msgstr ""
44+
45+
#: models.py:20
46+
msgid "notes"
47+
msgstr ""
48+
49+
#: models.py:21
50+
msgid "generalRemark"
51+
msgstr ""
52+
53+
#: models.py:22
54+
msgid "WHOArticle"
55+
msgstr "WHO 文章"
56+
57+
#: models.py:23
58+
msgid "recommends"
59+
msgstr "防护知识"
60+
61+
#: models.py:24
62+
msgid "timelines"
63+
msgstr "时间线事件"
64+
65+
#: models.py:25
66+
msgid "Wiki"
67+
msgstr ""
68+
69+
#: models.py:26
70+
msgid "goodsGuides"
71+
msgstr "购物指南"
72+
73+
#: models.py:27
74+
msgid "rumors"
75+
msgstr "辟谣与防护"
76+
77+
#: models.py:28 models.py:51 models.py:68 models.py:109
78+
msgid "modifyTime"
79+
msgstr "修改时间"
80+
81+
#: models.py:29 models.py:50 models.py:67 models.py:108
82+
msgid "createTime"
83+
msgstr "创建时间"
84+
85+
#: models.py:30
86+
msgid "crawlTime"
87+
msgstr "抓取时间"
88+
89+
#: models.py:33 models.py:34
90+
msgid "Statistics"
91+
msgstr "统计数据"
92+
93+
#: models.py:39 models.py:60
94+
msgid "locationId"
95+
msgstr "地区编码"
96+
97+
#: models.py:40
98+
msgid "provinceName"
99+
msgstr "省名"
100+
101+
#: models.py:41
102+
msgid "provinceShortName"
103+
msgstr "短省名"
104+
105+
#: models.py:42 models.py:62
106+
msgid "currentConfirmedCount"
107+
msgstr "现存确诊"
108+
109+
#: models.py:43 models.py:63
110+
msgid "confirmedCount"
111+
msgstr "累计确诊"
112+
113+
#: models.py:44 models.py:64
114+
msgid "suspectedCount"
115+
msgstr "疑似病例"
116+
117+
#: models.py:45 models.py:65
118+
msgid "curedCount"
119+
msgstr "累计治愈"
120+
121+
#: models.py:46 models.py:66
122+
msgid "deadCount"
123+
msgstr "累计死亡"
124+
125+
#: models.py:47
126+
msgid "comment"
127+
msgstr "备注"
128+
129+
#: models.py:48
130+
msgid "statisticsData"
131+
msgstr "统计数据 URL"
132+
133+
#: models.py:49
134+
msgid "dailyData"
135+
msgstr "日统计数据"
136+
137+
#: models.py:54 models.py:55
138+
msgid "Province"
139+
msgstr "国内省份"
140+
141+
#: models.py:61
142+
msgid "cityName"
143+
msgstr "城市名称"
144+
145+
#: models.py:70
146+
msgid "province"
147+
msgstr "国内省份"
148+
149+
#: models.py:79 models.py:80
150+
msgid "City"
151+
msgstr "国内城市"
152+
153+
#: models.py:112 models.py:113
154+
msgid "Country"
155+
msgstr "国家或地区"

django_covid19/management/commands/crawl.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from scrapy.crawler import CrawlerProcess
1010
from scrapy.utils.project import get_project_settings
1111
from django.core.management.base import BaseCommand
12+
from django.utils.translation import ugettext_lazy as _
1213

1314
class Scraper:
1415
def __init__(self):
@@ -23,7 +24,7 @@ def run_spiders(self):
2324

2425
class Command(BaseCommand):
2526

26-
help = 'Crawl data from DingXiangYuan.'
27+
help = _('Crawl data from DingXiangYuan.')
2728

2829
def handle(self, *args, **options):
2930
scraper = Scraper()

django_covid19/models.py

+50-56
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from django.db import models
22
from django.utils import timezone
33
from django_mysql.models import JSONField
4+
from django.utils.translation import ugettext_lazy as _
45

56

67
class Statistics(models.Model):
@@ -12,76 +13,71 @@ class Statistics(models.Model):
1213
'wikis', 'goodsGuides', 'rumors'
1314
)
1415

15-
globalStatistics = models.TextField(default='{}')
16-
domesticStatistics = models.TextField(default='{}')
17-
internationalStatistics = models.TextField(default='{}')
18-
remarks = models.TextField(default='[]')
19-
notes = models.TextField(default='[]')
20-
generalRemark = models.TextField(default='')
21-
WHOArticle = models.TextField(verbose_name='WHO 文章', default='{}')
22-
recommends = models.TextField(verbose_name='防护知识', default='[]')
23-
timelines = models.TextField(verbose_name='时间线事件', default='[]')
24-
wikis = models.TextField(verbose_name='Wiki', default='[]')
25-
goodsGuides = models.TextField(verbose_name='购物指南', default='[]')
26-
rumors = models.TextField(verbose_name='辟谣与防护', default='[]')
27-
modifyTime = models.DateTimeField(null=True)
28-
createTime = models.DateTimeField(null=True)
29-
crawlTime = models.DateTimeField(
30-
"抓取时间", default=timezone.now, editable=False)
16+
globalStatistics = models.TextField(_('globalStatistics'), default='{}')
17+
domesticStatistics = models.TextField(_('domesticStatistics'), default='{}')
18+
internationalStatistics = models.TextField(_('internationalStatistics'), default='{}')
19+
remarks = models.TextField(_('remarks'), default='[]')
20+
notes = models.TextField(_('notes'), default='[]')
21+
generalRemark = models.TextField(_('generalRemark'), default='')
22+
WHOArticle = models.TextField(_('WHOArticle'), default='{}')
23+
recommends = models.TextField(_('recommends'), default='[]')
24+
timelines = models.TextField(_('timelines'), default='[]')
25+
wikis = models.TextField(_('Wiki'), default='[]')
26+
goodsGuides = models.TextField(_('goodsGuides'), default='[]')
27+
rumors = models.TextField(_('rumors'), default='[]')
28+
modifyTime = models.DateTimeField(_('modifyTime'), null=True)
29+
createTime = models.DateTimeField(_('createTime'), null=True)
30+
crawlTime = models.DateTimeField(_('crawlTime'), default=timezone.now, editable=False)
3131

3232
class Meta:
33-
verbose_name = '统计数据'
34-
verbose_name_plural = '统计数据'
33+
verbose_name = _('Statistics')
34+
verbose_name_plural = _('Statistics')
3535

3636

3737
class Province(models.Model):
3838

39-
locationId = models.IntegerField()
40-
provinceName = models.CharField(max_length=50)
41-
provinceShortName = models.CharField(max_length=20)
42-
currentConfirmedCount = models.IntegerField(default=0)
43-
confirmedCount = models.IntegerField(default=0)
44-
suspectedCount = models.IntegerField(default=0)
45-
curedCount = models.IntegerField(default=0)
46-
deadCount = models.IntegerField(default=0)
47-
comment = models.CharField(max_length=200)
48-
statisticsData = models.CharField(max_length=500)
49-
dailyData = models.TextField()
50-
created = models.DateTimeField(
51-
'创建时间', auto_now_add=True, editable=False)
52-
updated = models.DateTimeField(
53-
'更新时间', auto_now=True, editable=False)
39+
locationId = models.IntegerField(_('locationId'))
40+
provinceName = models.CharField(_('provinceName'), max_length=50)
41+
provinceShortName = models.CharField(_('provinceShortName'), max_length=20)
42+
currentConfirmedCount = models.IntegerField(_('currentConfirmedCount'), default=0)
43+
confirmedCount = models.IntegerField(_('confirmedCount'), default=0)
44+
suspectedCount = models.IntegerField(_('suspectedCount'), default=0)
45+
curedCount = models.IntegerField(_('curedCount'), default=0)
46+
deadCount = models.IntegerField(_('deadCount'), default=0)
47+
comment = models.CharField(_('comment'), max_length=200)
48+
statisticsData = models.CharField(_('statisticsData'), max_length=500)
49+
dailyData = models.TextField(_('dailyData'))
50+
createTime = models.DateTimeField(_('createTime'), auto_now_add=True, editable=False)
51+
modifyTime = models.DateTimeField(_('modifyTime'), auto_now=True, editable=False)
5452

5553
class Meta:
56-
verbose_name = '国内省份'
57-
verbose_name_plural = '国内省份'
54+
verbose_name = _('Province')
55+
verbose_name_plural = _('Province')
5856

5957

6058
class City(models.Model):
6159

62-
locationId = models.IntegerField()
63-
cityName = models.CharField(max_length=50)
64-
currentConfirmedCount = models.IntegerField(default=0)
65-
confirmedCount = models.IntegerField(default=0)
66-
suspectedCount = models.IntegerField(default=0)
67-
curedCount = models.IntegerField(default=0)
68-
deadCount = models.IntegerField(default=0)
69-
created = models.DateTimeField(
70-
'创建时间', auto_now_add=True, editable=False)
71-
updated = models.DateTimeField(
72-
'更新时间', auto_now=True, editable=False)
60+
locationId = models.IntegerField(_('locationId'))
61+
cityName = models.CharField(_('cityName'), max_length=50)
62+
currentConfirmedCount = models.IntegerField(_('currentConfirmedCount'), default=0)
63+
confirmedCount = models.IntegerField(_('confirmedCount'), default=0)
64+
suspectedCount = models.IntegerField(_('suspectedCount'), default=0)
65+
curedCount = models.IntegerField(_('curedCount'), default=0)
66+
deadCount = models.IntegerField(_('deadCount'), default=0)
67+
createTime = models.DateTimeField(_('createTime'), auto_now_add=True, editable=False)
68+
modifyTime = models.DateTimeField(_('modifyTime'), auto_now=True, editable=False)
7369
province = models.ForeignKey(
74-
"Province", on_delete=models.CASCADE, related_name="cities",
75-
db_column="provinceId"
70+
"Province", verbose_name=_('province'), on_delete=models.CASCADE,
71+
related_name="cities", db_column="provinceId"
7672
)
7773

7874
@property
7975
def provinceName(self):
8076
return self.province.provinceName
8177

8278
class Meta:
83-
verbose_name = "国内城市"
84-
verbose_name_plural = "国内城市"
79+
verbose_name = _('City')
80+
verbose_name_plural = _('City')
8581

8682

8783
class Country(models.Model):
@@ -109,11 +105,9 @@ class Country(models.Model):
109105
sort = models.IntegerField(null=True)
110106
operator = models.CharField(max_length=50, null=True)
111107
dailyData = models.TextField()
112-
created = models.DateTimeField(
113-
'创建时间', auto_now_add=True, editable=False)
114-
updated = models.DateTimeField(
115-
'更新时间', auto_now=True, editable=False)
108+
createTime = models.DateTimeField(_('createTime'), auto_now_add=True, editable=False)
109+
modifyTime = models.DateTimeField(_('modifyTime'), auto_now=True, editable=False)
116110

117111
class Meta:
118-
verbose_name = "国家地区"
119-
verbose_name_plural = "国家地区"
112+
verbose_name = _('Country')
113+
verbose_name_plural = _('Country')

django_covid19/spider/nCoV/items.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import scrapy
99

1010
from scrapy_djangoitem import DjangoItem
11-
from covid19 import models
11+
from django_covid19 import models
1212

1313

1414
class StatisticsItem(DjangoItem):

django_covid19/urls.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Wire up our API using automatic URL routing.
66
# Additionally, we include login URLs for the browsable API.
77

8-
app_name = 'ncov'
8+
app_name = 'django_covid19'
99

1010
urlpatterns = [
1111
path('statistics/', views.StatisticsListView.as_view(), name='statistics-list'),

0 commit comments

Comments
 (0)