ds.GeoLocationField(max_length=100) 130 194
 
@@ -133,6 +197,36 @@ class Place(models.Model):
133 197
 
134 198
     more_info  = models.JSONField(null=True, blank=True)
135 199
 
200
+    def __str__(self):
201
+        return f"{self.address} ({self.geolocation})"
202
+class Points(models.Model):
203
+    #src  = models.ForeignKey(Place, on_delete=models.SET_NULL, null=True, blank=False, related_name='src')
204
+    dest  = models.ForeignKey(Place, on_delete=models.SET_NULL, null=True, blank=False, related_name='dest')
205
+    address = map_fields.AddressField(max_length=200, null=True)
206
+    geolocation = map_fields.GeoLocationField(max_length=100, null=True)
207
+
208
+    distance = models.DecimalField(null=True, blank=True, decimal_places=2, max_digits=7, verbose_name="Distance (km)")
209
+    duration = models.CharField(max_length=200, null=True, blank=True)
210
+
211
+    directions  = models.JSONField(null=True, blank=True)
212
+
213
+    def save(self, *args, **kwargs):
214
+        geocode_result = gmaps.geocode('1600 Amphitheatre Parkway, Mountain View, CA')
215
+        print(geocode_result)
216
+        print(self.geolocation)
217
+        origin = [(self.geolocation.lat, self.geolocation.lon)]
218
+        dest = [(self.dest.geolocation.lat, self.dest.geolocation.lon)]
219
+        dst = gmaps.distance_matrix(origin, dest)
220
+        dirs = gmaps.directions(origin[0], dest[0])
221
+        self.directions = dirs
222
+        print(dirs)
223
+        self.distance = dst['rows'][0]['elements'][0]['distance']['value'] / 1000
224
+        self.duration = dst['rows'][0]['elements'][0]['duration']['text']
225
+        print(dst)
226
+        super(Points, self).save(*args, **kwargs)
227
+
228
+
229
+
136 230
 class Hospital(models.Model):
137 231
     title = models.CharField(max_length=200)
138 232
     location = models.PointField(blank=True, null=True)
@@ -190,3 +284,5 @@ class PatientLog(models.Model):
190 284
     updated_at = models.DateTimeField(auto_now=True)
191 285
 
192 286
 
287
+
288
+

+ 7 - 0
app/backend/templates/backend/import_file.html

@@ -0,0 +1,7 @@
1
+{% extends "base.html" %}
2
+
3
+{% block title %}My amazing blog{% endblock %}
4
+
5
+{% block content %}
6
+Import File
7
+{% endblock %}

+ 8 - 0
app/backend/templates/backend/index.html

@@ -0,0 +1,8 @@
1
+{% extends "base.html" %}
2
+
3
+{% block title %}My amazing blog{% endblock %}
4
+
5
+{% block content %}
6
+Hello world
7
+<a href="{% url "import_file" %}">Import</a>
8
+{% endblock %}

backend/tests.py → app/backend/tests.py


+ 1 - 0
backend/urls.py

@@ -4,4 +4,5 @@ from . import views
4 4
 
5 5
 urlpatterns = [
6 6
     path('', views.index, name='index'),
7
+    path('import_file', views.import_file, name='import_file'),
7 8
 ]

+ 11 - 0
app/backend/views.py

@@ -0,0 +1,11 @@
1
+from django.shortcuts import render
2
+
3
+# Create your views here.
4
+from django.http import HttpResponse
5
+
6
+
7
+def index(request):
8
+    return render(request, 'backend/index.html')
9
+
10
+def import_file(request):
11
+    return render(request, 'backend/import_file.html')

manage.py → app/manage.py


uploads/2021/07/18/67224.jpg → app/media/uploads/2021/07/18/67224.jpg


文件差异内容过多而无法显示
+ 10715 - 0
app/media/uploads/2021/07/22/citizeninfo_health_20200314.csv


文件差异内容过多而无法显示
+ 10715 - 0
app/media/uploads/2021/07/22/citizeninfo_health_20200314_W9jk8Vu.csv


+ 1 - 0
requirements.txt

@@ -5,3 +5,4 @@ django-smart-selects
5 5
 django-colorfield
6 6
 googlemaps
7 7
 django-json-widget
8
+django-import-export

backend/__init__.py → app/shaqfindbed/__init__.py


shaqfindbed/__pycache__/__init__.cpython-39.pyc → app/shaqfindbed/__pycache__/__init__.cpython-39.pyc


二进制
app/shaqfindbed/__pycache__/settings.cpython-39.pyc


二进制
shaqfindbed/__pycache__/urls.cpython-39.pyc


shaqfindbed/__pycache__/wsgi.cpython-39.pyc → app/shaqfindbed/__pycache__/wsgi.cpython-39.pyc


shaqfindbed/asgi.py → app/shaqfindbed/asgi.py


+ 3 - 2
shaqfindbed/settings.py

@@ -33,12 +33,13 @@ ALLOWED_HOSTS = []
33 33
 # Application definition
34 34
 
35 35
 INSTALLED_APPS = [
36
+    'django.contrib.staticfiles',
36 37
     'django.contrib.admin',
37 38
     'django.contrib.auth',
38 39
     'django.contrib.contenttypes',
39 40
     'django.contrib.sessions',
40 41
     'django.contrib.messages',
41
-    'django.contrib.staticfiles',
42
+    'import_export',
42 43
     'django_google_maps',
43 44
     'django.contrib.gis',
44 45
     'smart_selects',
@@ -62,7 +63,7 @@ ROOT_URLCONF = 'shaqfindbed.urls'
62 63
 TEMPLATES = [
63 64
     {
64 65
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
65
-        'DIRS': [],
66
+        'DIRS': [os.path.join(BASE_DIR, 'templates')],
66 67
         'APP_DIRS': True,
67 68
         'OPTIONS': {
68 69
             'context_processors': [

+ 1 - 1
shaqfindbed/urls.py

@@ -23,7 +23,7 @@ urlpatterns = [
23 23
     path('backend/', include('backend.urls')),
24 24
     path('admin/', admin.site.urls),
25 25
     url(r'^chaining/', include('smart_selects.urls')),
26
-]
26
+] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
27 27
 
28 28
 if settings.DEBUG:
29 29
     urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

shaqfindbed/wsgi.py → app/shaqfindbed/wsgi.py


二进制
app/static/.DS_Store


二进制
app/static/admin/.DS_Store


staticfile/admin/css/autocomplete.css → app/static/admin/css/autocomplete.css


+ 0 - 0
staticfile/admin/css/base.css


部分文件因为文件数量过多而无法显示

tum/fm99-app-rev - Gogs: Simplico Git Service

暫無描述

tum 06e4cee796 ios www 3 年之前
..
assets 06e4cee796 ios www 3 年之前
svg 06e4cee796 ios www 3 年之前
IBMPlexSansThai-Regular.ttf 06e4cee796 ios www 3 年之前
IBMPlexSansThai-SemiBold.ttf 06e4cee796 ios www 3 年之前
K2D-Light.ttf 06e4cee796 ios www 3 年之前
Montserrat-Medium.ttf 06e4cee796 ios www 3 年之前
Prompt-Medium.ttf 06e4cee796 ios www 3 年之前
Prompt-Regular.ttf 06e4cee796 ios www 3 年之前
background_982645-1-min.png 06e4cee796 ios www 3 年之前
bg-content-min.jpg 06e4cee796 ios www 3 年之前
common.js 06e4cee796 ios www 3 年之前
common.js.map 06e4cee796 ios www 3 年之前
default-node_modules_ionic_core_dist_esm_parse-71f28cd7_js-node_modules_ionic_core_dist_esm_t-0c999b.js 06e4cee796 ios www 3 年之前
default-node_modules_ionic_core_dist_esm_parse-71f28cd7_js-node_modules_ionic_core_dist_esm_t-0c999b.js.map 06e4cee796 ios www 3 年之前
index.html 06e4cee796 ios www 3 年之前
main.js 06e4cee796 ios www 3 年之前
main.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_index-0bc00b33_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_index-0bc00b33_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_input-shims-6ed8f5a5_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_input-shims-6ed8f5a5_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-alert_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-alert_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-app_8_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-app_8_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-back-button_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-back-button_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-backdrop_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-backdrop_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-button_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-button_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-card_5_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-card_5_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-checkbox_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-checkbox_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-chip_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-chip_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-col_3_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-col_3_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-datetime-button_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-datetime-button_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-fab_3_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-fab_3_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-img_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-img_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-input_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-input_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-item_8_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-item_8_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-loading_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-loading_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-menu_3_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-menu_3_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-modal_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-modal_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-nav_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-nav_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-picker-column-internal_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-picker-column-internal_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-picker-internal_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-picker-internal_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-popover_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-popover_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-radio_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-radio_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-range_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-range_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-route_4_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-route_4_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-searchbar_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-searchbar_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-segment_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-segment_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-select_3_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-select_3_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-slide_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-slide_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-spinner_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-spinner_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-split-pane_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-split-pane_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-tab_2_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-tab_2_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-text_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-text_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-textarea_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-textarea_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-toast_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-toast_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-toggle_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-toggle_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_status-tap-20472ffa_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_status-tap-20472ffa_js.js.map 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_swiper_bundle-28080340_js.js 06e4cee796 ios www 3 年之前
node_modules_ionic_core_dist_esm_swiper_bundle-28080340_js.js.map 06e4cee796 ios www 3 年之前
polyfills-core-js.js 06e4cee796 ios www 3 年之前
polyfills-core-js.js.map 06e4cee796 ios www 3 年之前
polyfills-dom.js 06e4cee796 ios www 3 年之前
polyfills-dom.js.map 06e4cee796 ios www 3 年之前
polyfills.js 06e4cee796 ios www 3 年之前
polyfills.js.map 06e4cee796 ios www 3 年之前
runtime.js 06e4cee796 ios www 3 年之前
runtime.js.map 06e4cee796 ios www 3 年之前
src_app_article_article_module_ts.js 06e4cee796 ios www 3 年之前
src_app_article_article_module_ts.js.map 06e4cee796 ios www 3 年之前
src_app_home_home_module_ts.js 06e4cee796 ios www 3 年之前
src_app_home_home_module_ts.js.map 06e4cee796 ios www 3 年之前
src_app_navtabs_navtabs_module_ts.js 06e4cee796 ios www 3 年之前
src_app_navtabs_navtabs_module_ts.js.map 06e4cee796 ios www 3 年之前
src_app_news-detail_news-detail_module_ts.js 06e4cee796 ios www 3 年之前
src_app_news-detail_news-detail_module_ts.js.map 06e4cee796 ios www 3 年之前
src_app_news_news_module_ts.js 06e4cee796 ios www 3 年之前
src_app_news_news_module_ts.js.map 06e4cee796 ios www 3 年之前
src_app_youtube_youtube_module_ts.js 06e4cee796 ios www 3 年之前
src_app_youtube_youtube_module_ts.js.map 06e4cee796 ios www 3 年之前
styles.css 06e4cee796 ios www 3 年之前
styles.css.map 06e4cee796 ios www 3 年之前
vendor.js 06e4cee796 ios www 3 年之前
vendor.js.map 06e4cee796 ios www 3 年之前
Вход - Gogs: Simplico Git Service

Вход