diff --git a/.github/Open Notebook.onetoc2 b/.github/Open Notebook.onetoc2 new file mode 100644 index 0000000000..46d3dfb491 Binary files /dev/null and b/.github/Open Notebook.onetoc2 differ diff --git a/.github/workflows/Open Notebook.onetoc2 b/.github/workflows/Open Notebook.onetoc2 new file mode 100644 index 0000000000..4c67a1352e Binary files /dev/null and b/.github/workflows/Open Notebook.onetoc2 differ diff --git a/Open Notebook.onetoc2 b/Open Notebook.onetoc2 new file mode 100644 index 0000000000..1d87dfbc0e Binary files /dev/null and b/Open Notebook.onetoc2 differ diff --git a/cloudant/Open Notebook.onetoc2 b/cloudant/Open Notebook.onetoc2 new file mode 100644 index 0000000000..4c5ec74924 Binary files /dev/null and b/cloudant/Open Notebook.onetoc2 differ diff --git a/cloudant/data/Open Notebook.onetoc2 b/cloudant/data/Open Notebook.onetoc2 new file mode 100644 index 0000000000..3aa72389c3 Binary files /dev/null and b/cloudant/data/Open Notebook.onetoc2 differ diff --git a/functions/Open Notebook.onetoc2 b/functions/Open Notebook.onetoc2 new file mode 100644 index 0000000000..d603e900a8 Binary files /dev/null and b/functions/Open Notebook.onetoc2 differ diff --git a/functions/sample/Open Notebook.onetoc2 b/functions/sample/Open Notebook.onetoc2 new file mode 100644 index 0000000000..686bb151e1 Binary files /dev/null and b/functions/sample/Open Notebook.onetoc2 differ diff --git a/functions/sample/nodejs/Open Notebook.onetoc2 b/functions/sample/nodejs/Open Notebook.onetoc2 new file mode 100644 index 0000000000..692c0cedd0 Binary files /dev/null and b/functions/sample/nodejs/Open Notebook.onetoc2 differ diff --git a/functions/sample/python/Open Notebook.onetoc2 b/functions/sample/python/Open Notebook.onetoc2 new file mode 100644 index 0000000000..ffb385006c Binary files /dev/null and b/functions/sample/python/Open Notebook.onetoc2 differ diff --git a/server/Open Notebook.onetoc2 b/server/Open Notebook.onetoc2 new file mode 100644 index 0000000000..789f35cfd7 Binary files /dev/null and b/server/Open Notebook.onetoc2 differ diff --git a/server/db.sqlite3 b/server/db.sqlite3 new file mode 100644 index 0000000000..b08c2e15cc Binary files /dev/null and b/server/db.sqlite3 differ diff --git a/server/djangoapp/Open Notebook.onetoc2 b/server/djangoapp/Open Notebook.onetoc2 new file mode 100644 index 0000000000..1bf59f8f63 Binary files /dev/null and b/server/djangoapp/Open Notebook.onetoc2 differ diff --git a/server/djangoapp/templates/Open Notebook.onetoc2 b/server/djangoapp/templates/Open Notebook.onetoc2 new file mode 100644 index 0000000000..46febaf634 Binary files /dev/null and b/server/djangoapp/templates/Open Notebook.onetoc2 differ diff --git a/server/djangoapp/templates/djangoapp/Open Notebook.onetoc2 b/server/djangoapp/templates/djangoapp/Open Notebook.onetoc2 new file mode 100644 index 0000000000..1d3f4873f8 Binary files /dev/null and b/server/djangoapp/templates/djangoapp/Open Notebook.onetoc2 differ diff --git a/server/djangoapp/templates/djangoapp/about.html b/server/djangoapp/templates/djangoapp/about.html new file mode 100644 index 0000000000..bb525d5275 --- /dev/null +++ b/server/djangoapp/templates/djangoapp/about.html @@ -0,0 +1,5 @@ + +

+Welcome to Best Cars dealership, home to the best cars in North America. We sell domestic and imported cars at reasonable prices. +

+ \ No newline at end of file diff --git a/server/djangoapp/templates/djangoapp/contact.html b/server/djangoapp/templates/djangoapp/contact.html new file mode 100644 index 0000000000..cda9b530e4 --- /dev/null +++ b/server/djangoapp/templates/djangoapp/contact.html @@ -0,0 +1,5 @@ + +

+Contact Us +

+ \ No newline at end of file diff --git a/server/djangoapp/templates/djangoapp/dealer_details.html b/server/djangoapp/templates/djangoapp/dealer_details.html index 25bd9a223d..a07427aa5e 100644 --- a/server/djangoapp/templates/djangoapp/dealer_details.html +++ b/server/djangoapp/templates/djangoapp/dealer_details.html @@ -13,6 +13,85 @@ + + + + + Dealership Review + {% load static %} + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/djangoapp/templates/djangoapp/index.html b/server/djangoapp/templates/djangoapp/index.html index 1a9ee6e39a..a936d5ecfb 100644 --- a/server/djangoapp/templates/djangoapp/index.html +++ b/server/djangoapp/templates/djangoapp/index.html @@ -14,9 +14,45 @@ - - This is the index page of your Django app! + + diff --git a/server/djangoapp/templates/djangoapp/login.html b/server/djangoapp/templates/djangoapp/login.html new file mode 100644 index 0000000000..f09e58bbfe --- /dev/null +++ b/server/djangoapp/templates/djangoapp/login.html @@ -0,0 +1,13 @@ +
+ {% csrf_token %} +
+

Login

+ + + + +
+ +
+
+
\ No newline at end of file diff --git a/server/djangoapp/templates/djangoapp/registration.html b/server/djangoapp/templates/djangoapp/registration.html index ae11ea4b71..bdbfcff5c6 100644 --- a/server/djangoapp/templates/djangoapp/registration.html +++ b/server/djangoapp/templates/djangoapp/registration.html @@ -6,6 +6,23 @@ - +
+
+

Sign Up

+
+
+
+
+
+
+
+
+
+
+ {% csrf_token %} +
+
+
+
\ No newline at end of file diff --git a/server/djangoapp/urls.py b/server/djangoapp/urls.py index 37b1c89d01..72297cdeab 100644 --- a/server/djangoapp/urls.py +++ b/server/djangoapp/urls.py @@ -9,15 +9,19 @@ # view refers to the view function # name the URL - # path for about view + path(route='about/', view=views.about, name='about'), # path for contact us view + path(route='contact/', view=views.contact, name='contact'), # path for registration + path('registration/', views.registration_request, name='registration'), # path for login + path('login/', views.login_request, name='login'), # path for logout + path('logout/', views.logout_request, name='logout'), path(route='', view=views.get_dealerships, name='index'), diff --git a/server/djangoapp/views.py b/server/djangoapp/views.py index 61cc664da0..5331308ecd 100644 --- a/server/djangoapp/views.py +++ b/server/djangoapp/views.py @@ -18,24 +18,79 @@ # Create an `about` view to render a static about page -# def about(request): -# ... +def about(request): + context = {} + if request.method == "GET": + return render(request, 'djangoapp/about.html', context) # Create a `contact` view to return a static contact page -#def contact(request): +def contact(request): + context = {} + if request.method == "GET": + return render(request, 'djangoapp/contact.html', context) # Create a `login_request` view to handle sign in request -# def login_request(request): -# ... +def login_request(request): + context = {} + # Handles POST request + if request.method == "POST": + # Get username and password from request.POST dictionary + username = request.POST['username'] + password = request.POST['psw'] + # Try to check if provide credential can be authenticated + user = authenticate(username=username, password=password) + if user is not None: + # If user is valid, call login method to login current user + login(request, user) + return redirect('djangoapp:index') + else: + # If not, return to login page again + return render(request, 'djangoapp/user_login.html', context) + else: + return render(request, 'djangoapp/user_login.html', context) # Create a `logout_request` view to handle sign out request -# def logout_request(request): -# ... + +def logout_request(request): + # Get the user object based on session id in request + print("Log out the user `{}`".format(request.user.username)) + # Logout user in the request + logout(request) + # Redirect user back to course list view + return redirect('djangoapp:index') # Create a `registration_request` view to handle sign up request -# def registration_request(request): -# ... +def registration_request(request): + context = {} + # If it is a GET request, just render the registration page + if request.method == 'GET': + return render(request, 'djangoapp/registration.html', context) + # If it is a POST request + elif request.method == 'POST': + # Get user information from request.POST + username = request.POST['username'] + password = request.POST['psw'] + first_name = request.POST['firstname'] + last_name = request.POST['lastname'] + user_exist = False + try: + # Check if user already exists + User.objects.get(username=username) + user_exist = True + except: + # If not, simply log this is a new user + logger.debug("{} is new user".format(username)) + # If it is a new user + if not user_exist: + # Create user in auth_user table + user = User.objects.create_user(username=username, first_name=first_name, last_name=last_name, + password=password) + # Login the user and redirect to course list page + login(request, user) + return redirect("djangoapp:index") + else: + return render(request, 'djangoapp/registration.html', context) # Update the `get_dealerships` view to render the index page with a list of dealerships def get_dealerships(request): diff --git a/server/djangobackend/Open Notebook.onetoc2 b/server/djangobackend/Open Notebook.onetoc2 new file mode 100644 index 0000000000..da6015054b Binary files /dev/null and b/server/djangobackend/Open Notebook.onetoc2 differ diff --git a/server/static/Open Notebook.onetoc2 b/server/static/Open Notebook.onetoc2 new file mode 100644 index 0000000000..3dacf1e5f1 Binary files /dev/null and b/server/static/Open Notebook.onetoc2 differ diff --git a/server/static/admin/Open Notebook.onetoc2 b/server/static/admin/Open Notebook.onetoc2 new file mode 100644 index 0000000000..4595023fbd Binary files /dev/null and b/server/static/admin/Open Notebook.onetoc2 differ diff --git a/server/static/admin/css/Open Notebook.onetoc2 b/server/static/admin/css/Open Notebook.onetoc2 new file mode 100644 index 0000000000..c6b6c198ff Binary files /dev/null and b/server/static/admin/css/Open Notebook.onetoc2 differ diff --git a/server/static/admin/css/vendor/Open Notebook.onetoc2 b/server/static/admin/css/vendor/Open Notebook.onetoc2 new file mode 100644 index 0000000000..75fc93661c Binary files /dev/null and b/server/static/admin/css/vendor/Open Notebook.onetoc2 differ diff --git a/server/static/admin/css/vendor/select2/Open Notebook.onetoc2 b/server/static/admin/css/vendor/select2/Open Notebook.onetoc2 new file mode 100644 index 0000000000..df86ced6e8 Binary files /dev/null and b/server/static/admin/css/vendor/select2/Open Notebook.onetoc2 differ diff --git a/server/static/admin/fonts/Open Notebook.onetoc2 b/server/static/admin/fonts/Open Notebook.onetoc2 new file mode 100644 index 0000000000..731257b1bf Binary files /dev/null and b/server/static/admin/fonts/Open Notebook.onetoc2 differ diff --git a/server/static/admin/img/Open Notebook.onetoc2 b/server/static/admin/img/Open Notebook.onetoc2 new file mode 100644 index 0000000000..5595ba89ab Binary files /dev/null and b/server/static/admin/img/Open Notebook.onetoc2 differ diff --git a/server/static/admin/img/gis/Open Notebook.onetoc2 b/server/static/admin/img/gis/Open Notebook.onetoc2 new file mode 100644 index 0000000000..396c88af7e Binary files /dev/null and b/server/static/admin/img/gis/Open Notebook.onetoc2 differ diff --git a/server/static/admin/js/Open Notebook.onetoc2 b/server/static/admin/js/Open Notebook.onetoc2 new file mode 100644 index 0000000000..f31a85167b Binary files /dev/null and b/server/static/admin/js/Open Notebook.onetoc2 differ diff --git a/server/static/admin/js/admin/Open Notebook.onetoc2 b/server/static/admin/js/admin/Open Notebook.onetoc2 new file mode 100644 index 0000000000..384e6b655b Binary files /dev/null and b/server/static/admin/js/admin/Open Notebook.onetoc2 differ diff --git a/server/static/admin/js/vendor/Open Notebook.onetoc2 b/server/static/admin/js/vendor/Open Notebook.onetoc2 new file mode 100644 index 0000000000..08c7ce9d13 Binary files /dev/null and b/server/static/admin/js/vendor/Open Notebook.onetoc2 differ diff --git a/server/static/admin/js/vendor/jquery/Open Notebook.onetoc2 b/server/static/admin/js/vendor/jquery/Open Notebook.onetoc2 new file mode 100644 index 0000000000..c75ccc1cda Binary files /dev/null and b/server/static/admin/js/vendor/jquery/Open Notebook.onetoc2 differ diff --git a/server/static/admin/js/vendor/select2/Open Notebook.onetoc2 b/server/static/admin/js/vendor/select2/Open Notebook.onetoc2 new file mode 100644 index 0000000000..0f6db16c77 Binary files /dev/null and b/server/static/admin/js/vendor/select2/Open Notebook.onetoc2 differ diff --git a/server/static/admin/js/vendor/select2/i18n/Open Notebook.onetoc2 b/server/static/admin/js/vendor/select2/i18n/Open Notebook.onetoc2 new file mode 100644 index 0000000000..09ec5358df Binary files /dev/null and b/server/static/admin/js/vendor/select2/i18n/Open Notebook.onetoc2 differ diff --git a/server/static/admin/js/vendor/xregexp/Open Notebook.onetoc2 b/server/static/admin/js/vendor/xregexp/Open Notebook.onetoc2 new file mode 100644 index 0000000000..4e4ca4a124 Binary files /dev/null and b/server/static/admin/js/vendor/xregexp/Open Notebook.onetoc2 differ diff --git a/server/static/media/Open Notebook.onetoc2 b/server/static/media/Open Notebook.onetoc2 new file mode 100644 index 0000000000..91669308ab Binary files /dev/null and b/server/static/media/Open Notebook.onetoc2 differ diff --git a/server/static/media/emoji/Open Notebook.onetoc2 b/server/static/media/emoji/Open Notebook.onetoc2 new file mode 100644 index 0000000000..3fd32cb0c3 Binary files /dev/null and b/server/static/media/emoji/Open Notebook.onetoc2 differ