Prach Pongpanich 2 jaren geleden
bovenliggende
commit
556f0a29fa

+ 3 - 0
app/course/models.py

@@ -5,4 +5,7 @@ from django.db import models
5 5
 class Course(models.Model):
6 6
     name        = models.CharField(max_length=255, blank=True, null=True)
7 7
     description = models.TextField(null=True)
8
+    created_at  = models.DateTimeField(auto_now_add=True,editable=False)
9
+    updated_at  = models.DateTimeField(auto_now=True,editable=False)
10
+    is_active   = models.BooleanField(default=True)
8 11
 

+ 2 - 1
app/course/urls.py

@@ -1,6 +1,7 @@
1 1
 from django.urls import path
2
-from .views import index
2
+from .views import index, course_edit
3 3
 
4 4
 urlpatterns = [
5 5
     path('', index, name='index'),
6
+    path('edit', course_edit, name='course_edit'),
6 7
 ]

+ 19 - 0
app/course/views.py

@@ -1,6 +1,25 @@
1 1
 from django.shortcuts import render
2
+import requests, json
3
+from django.http import JsonResponse, HttpResponse
4
+from .models import Course
2 5
 
3 6
 # Create your views here.
4 7
 
5 8
 def index(request):
6 9
    return render(request, 'course/list.html')
10
+
11
+def course_edit(request):
12
+
13
+    if request.method == 'GET':
14
+        action = request.GET.get('action', '')
15
+        if action == 'load':
16
+            data = []
17
+            return JsonResponse({'status':'ok', 'result': data})
18
+
19
+    if request.method == 'POST':
20
+        print('my post')
21
+        data = json.loads(request.body)
22
+        #SysLogs.objects.create(user_name=user_name, user_txt=user_txt, msg=msg, url = url)
23
+        #return JsonResponse({'status':'ok'})
24
+
25
+    return render(request, 'course/edit.html')

+ 21 - 0
app/node_modules/.package-lock.json

@@ -95,6 +95,27 @@
95 95
         "node": ">= 8"
96 96
       }
97 97
     },
98
+    "node_modules/@vue/reactivity": {
99
+      "version": "3.1.5",
100
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
101
+      "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==",
102
+      "dependencies": {
103
+        "@vue/shared": "3.1.5"
104
+      }
105
+    },
106
+    "node_modules/@vue/shared": {
107
+      "version": "3.1.5",
108
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
109
+      "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA=="
110
+    },
111
+    "node_modules/alpinejs": {
112
+      "version": "3.12.1",
113
+      "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.12.1.tgz",
114
+      "integrity": "sha512-GjEmZscHuCPv/XRbzabQLFH3I1+M3TbZqEsLDuYai/Yw+pE1IL7DK4ejRfqBSaysi4wWZ1k5IqVG2aefhWWqsQ==",
115
+      "dependencies": {
116
+        "@vue/reactivity": "~3.1.1"
117
+      }
118
+    },
98 119
     "node_modules/any-promise": {
99 120
       "version": "1.3.0",
100 121
       "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",

+ 22 - 0
app/package-lock.json

@@ -6,6 +6,7 @@
6 6
   "packages": {
7 7
     "": {
8 8
       "dependencies": {
9
+        "alpinejs": "^3.12.1",
9 10
         "daisyui": "^2.51.6"
10 11
       },
11 12
       "devDependencies": {
@@ -103,6 +104,27 @@
103 104
         "node": ">= 8"
104 105
       }
105 106
     },
107
+    "node_modules/@vue/reactivity": {
108
+      "version": "3.1.5",
109
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
110
+      "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==",
111
+      "dependencies": {
112
+        "@vue/shared": "3.1.5"
113
+      }
114
+    },
115
+    "node_modules/@vue/shared": {
116
+      "version": "3.1.5",
117
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
118
+      "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA=="
119
+    },
120
+    "node_modules/alpinejs": {
121
+      "version": "3.12.1",
122
+      "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.12.1.tgz",
123
+      "integrity": "sha512-GjEmZscHuCPv/XRbzabQLFH3I1+M3TbZqEsLDuYai/Yw+pE1IL7DK4ejRfqBSaysi4wWZ1k5IqVG2aefhWWqsQ==",
124
+      "dependencies": {
125
+        "@vue/reactivity": "~3.1.1"
126
+      }
127
+    },
106 128
     "node_modules/any-promise": {
107 129
       "version": "1.3.0",
108 130
       "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",

+ 1 - 0
app/package.json

@@ -7,6 +7,7 @@
7 7
     "tailwindcss": "^3.3.2"
8 8
   },
9 9
   "dependencies": {
10
+    "alpinejs": "^3.12.1",
10 11
     "daisyui": "^2.51.6"
11 12
   }
12 13
 }

+ 1 - 0
app/templates/base.html

@@ -13,6 +13,7 @@
13 13
   {% load static %}
14 14
   <link rel="stylesheet" href="{% static 'css/main.css' %}">
15 15
   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
16
+  <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.12.1/dist/cdn.min.js"></script>
16 17
 </head>
17 18
 <body>
18 19
 <div>

+ 1 - 1
app/templates/course/list.html

@@ -5,7 +5,7 @@
5 5
 <div class="text-xl font-semibold inline-block">title
6 6
   <div class="inline-block float-right">
7 7
     <div class="inline-block float-right">
8
-    <button class="btn px-6 btn-sm normal-case btn-primary">Add New</button>
8
+    <a href="{% url 'course_edit' %}" class="btn px-6 btn-sm normal-case btn-primary">Create</a>
9 9
     </div>
10 10
   </div>
11 11
 </div>

+ 1 - 0
app/tmt_learning/settings.py

@@ -42,6 +42,7 @@ INSTALLED_APPS = [
42 42
     'django.contrib.sessions',
43 43
     'django.contrib.messages',
44 44
     'django.contrib.staticfiles',
45
+    'widget_tweaks',
45 46
     'course',
46 47
 ]
47 48