Skip to content

Commit

Permalink
Added empty dashboard screen and starting requirements
Browse files Browse the repository at this point in the history
  • Loading branch information
robotichead committed Jul 7, 2020
1 parent f42e98b commit 53c6e37
Show file tree
Hide file tree
Showing 62 changed files with 305 additions and 183 deletions.
4 changes: 2 additions & 2 deletions NearBeach/static/NearBeach/NearBeach.min.js

Large diffs are not rendered by default.

Binary file modified NearBeach/static/NearBeach/NearBeach.min.js.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/NearBeach.png.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/NearBeach_Small.png.gz
Binary file not shown.
2 changes: 1 addition & 1 deletion NearBeach/static/NearBeach/login.min.js

Large diffs are not rendered by default.

Binary file modified NearBeach/static/NearBeach/login.min.js.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard.min.js.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/bg.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/bold.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/bottom.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/cmp-bg.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/connect.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/connector.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/cylinder.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/delete.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/draw/drawbg.jpg.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/help.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/hexagon.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/house.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/image.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/middle.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/open.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/paste.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/preferences.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/press.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/refresh.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/rhombus.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/rounded.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/saveas.gif.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/text.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/toback.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/tofront.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/top.gif.gz
Binary file not shown.
Binary file modified NearBeach/static/NearBeach/whiteboard/images/triangle.gif.gz
Binary file not shown.
@@ -0,0 +1,6 @@
{% extends "NearBeach/template.html" %}
{% block content %}
<h1>Permission Denied</h1>
Sorry, you do not have access to this page. You have been redirected here.
{% endblock %}

4 changes: 4 additions & 0 deletions NearBeach/templates/NearBeach/dashboard/dashboard.html
@@ -0,0 +1,4 @@
{% extends 'NearBeach/template.html' %}
{% block content %}
<h1>Dashboard</h1>
{% endblock %}
22 changes: 4 additions & 18 deletions NearBeach/templates/NearBeach/partials/footer.html
@@ -1,22 +1,8 @@
{% load static %}
<!-- Load NearBeach Webpack File -->
<script type="text/javascript" src="{% static 'NearBeach/NearBeach.min.js' %}"></script>

<!-- ERROR MODAL -->
<div class="modal" tabindex="-1" role="dialog" id="error_modal">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Loading Errors</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" id="error_modal_body">
<div class="alert alert-danger">We are sorry, but NearBeach experienced the following errors:</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- ADD IN ERROR MODAL HERE -->
</body>
</html>
168 changes: 48 additions & 120 deletions NearBeach/templates/NearBeach/partials/header.html
Expand Up @@ -5,136 +5,64 @@
<title>NearBeach Beta</title>

{% load static %}
<!-- Load NearBeach Webpack File -->
<script type="text/javascript" src="{% static 'NearBeach/NearBeach.min.js' %}"></script>

<!-- fav icon -->
<link rel="shortcut icon" type="image/png" href="{% static '/NearBeach/NearBeach_Small.png' %}"/>
<style>
.col-3 {
flex: 0 0 24%;
}

.container-fluid {
overflow: scroll;

}

.requirement-kanban {
height: calc(100vh - 139px);
}

.card-block {
min-height: 200px;
}

#timeline {
height: calc(100vh - 139px);
}

body {
overflow-x: hidden;
}
</style>
</head>
<body>
<header>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="{% url 'dashboard' %}">NearBeach</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<!--DASHBOARD-->
<li class="nav-item active">
<a class="nav-link" href="{% url 'dashboard' %}">Dashboard</a>
</li>

<!--MY PROFILE-->
<li class="nav-item active">
<a class="nav-link" href="{% url 'my_profile' %}">My Profile</a>
</li>

<!--TIMELINE-->
<li class="nav-item active">
<a class="nav-link" href="{% url 'timeline' %}">Timeline</a>
</li>

{% if new_item_permission >= 3 %}
<!--NEW ITEMS-->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-light" href="javascript:void(0)" id="new_items_dropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
New Items
</a>
<div class="dropdown-menu bg-dark" aria-labelledby="new_items_dropdown">
<a class="dropdown-item text-light" href="{% url 'new_customer' 0 %}">New Customer</a>
<a class="dropdown-item text-light" href="{% url 'new_kanban_board' %}">New Kanban Board</a>
<a class="dropdown-item text-light" href="{% url 'new_opportunity' %}">New Opportunity</a>
<a class="dropdown-item text-light" href="{% url 'new_organisation' %}">New Organisation</a>
<a class="dropdown-item text-light" href="{% url 'new_project' %}">New Project</a>
<a class="dropdown-item text-light" href="{% url 'new_request_for_change' %}">New Request For Change</a>
<a class="dropdown-item text-light" href="{% url 'new_requirement' %}">New Requirement</a>
<a class="dropdown-item text-light" href="{% url 'new_task' %}">New Task</a>
</div>
<nav class="scrollhide-nav">
<div class="top-bar">
<!-- Left side of navbar -->
<div class="top-bar-left">
<ul class="dropdown menu" data-dropdown-menu>
<a href="{% url 'dashboard' %}" class="menu-text"> NearBeach</a>

<!--TIMELINE-->
<li>
<a href="#"><i class="fas fa-stream"></i> Timeline</a>
</li>
{% endif %}

<!--SEARCH-->
<!--Temp code - might be replaced by a proper search functionality-->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-light" href="javascript:void(0)" id="list_dropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
List Objects
</a>
<div class="dropdown-menu bg-dark" aria-labelledby="list_dropdown">
<a class="dropdown-item text-light" href="{% url 'search' %}">List All</a>
<a class="dropdown-item text-light" href="{% url 'search_tags' %}">List by Tag</a>
<a class="dropdown-item text-light" href="{% url 'search_customer' %}">List Customers</a>
<a class="dropdown-item text-light" href="{% url 'search_kanban' %}">List Kanban Boards</a>
<a class="dropdown-item text-light" href="{% url 'search_organisation' %}">List Organisations</a>
</div>
</li>

{% if administration_permission >= 1 %}
<!--CONFIGURATION-->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-light" href="javascript:void(0)" id="configuration_dropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Configuration
</a>
<div class="dropdown-menu bg-dark" aria-labelledby="administration_dropdown">
<a class="dropdown-item text-light" href="{% url 'bug_client_list' %}">Bug Client List</a>
<a class="dropdown-item text-light" href="{% url 'search_templates' %}">Edit Templates</a>
<a class="dropdown-item text-light" href="{% url 'list_of_tags' %}">List of Tags</a>
<a class="dropdown-item text-light" href="{% url 'list_of_taxes_information' %}">List of Taxes</a>
<a class="dropdown-item text-light" href="{% url 'product_and_service_search' %}">Products and Services</a>
</div>
<!--NEW ITEMS-->
<li>
<a href="#"><i class="fas fa-plus"></i> New Object</a>
<ul class="menu vertical">
<li><a href="#">New Customer</a></li>
<li><a href="#">New Kanban Board</a></li>
<li><a href="#">New Opportunity</a></li>
<li><a href="#">New Organisation</a></li>
<li><a href="#">New Project</a></li>
<li><a href="#">New Request For Change</a></li>
<li><a href="#">New Requirement</a></li>
<li><a href="#">New Task</a></li>
</ul>
</li>

<!--ADMINISTRATION-->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle text-light" href="javascript:void(0)" id="administration_dropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Administration
</a>
<div class="dropdown-menu bg-dark" aria-labelledby="administration_dropdown">
<a class="dropdown-item text-light" href="{% url 'diagnostic_information' %}">Diagnostics</a>
<a class="dropdown-item text-light" href="{% url 'search_group' %}">Groups</a>
<a class="dropdown-item text-light" href="{% url 'search_permission_set' %}">Permission Sets</a>
<a class="dropdown-item text-light" href="{% url 'search_users' %}">Users</a>
</div>
<li>
<a href="#"><i class="fas fa-search"></i> Find Objects</a>
<ul class="menu vertical">
<li><a href="#">List All</a></li>
<li><a href="#">List by Tag</a></li>
<li><a href="#">List Customers</a></li>
<li><a href="#">List Kanban Boards</a></li>
<li><a href="#">List Organisations</a></li>
</ul>
</li>
{% endif %}
</ul>

<!--SEARCH FIELD-->
<form action={% url 'search' %} method="post" class="search_for form-inline my-2 my-lg-0">
{% csrf_token %}
<input id="id_search_for" name="search_for" class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-secondary" type="submit">Search</button>
</form>

<!--LOGOUT-->
<a class="btn btn-dark" href="{% url 'logout' %}">Logout</a>
</ul>
</div>

<!-- Right side of navbar -->
<div class="top-bar-right">
<!--USER DROPDOWN -->
<ul class="dropdown menu" data-dropdown-menu>
<li>
<a href="#"><i class="fas fa-user-tie"></i> User</a>
<ul class="menu vertical">
<li><a href="#"><i class="far fa-id-badge"></i> My Profile</a></li>
<li><a href="#"><i class="fas fa-sign-out-alt"></i> Logout</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
@@ -0,0 +1,4 @@
{% extends 'NearBeach/template.html' %}
{% block content %}

{% endblock %}
13 changes: 13 additions & 0 deletions NearBeach/templates/NearBeach/template.html
@@ -0,0 +1,13 @@
{% include 'NearBeach/partials/header.html' %}
<div class="container">
<div id="app">
{% if user.is_authenticated %}
{% block content %}
{% endblock %}
{% else %}
<h1>Permission denied</h1>
<p>You currently do not have permission to view this page!</p>
{% endif %}
</div>
</div>
{% include 'NearBeach/partials/footer.html' %}
4 changes: 3 additions & 1 deletion NearBeach/urls.py
Expand Up @@ -24,9 +24,11 @@
views_administration, \
views_whiteboard
"""
from .views import authentication_views
from .views import authentication_views, \
dashboard_views

urlpatterns = [
re_path(r'^dashboard/$', dashboard_views.dashboard,name='dashboard'),
re_path(r'^login', authentication_views.login, name='login'),
re_path(r'^logout', authentication_views.logout, name='logout'),
]
Expand Down
3 changes: 0 additions & 3 deletions NearBeach/user_permissions.py
@@ -1,11 +1,8 @@
"""
This python script will return the user's permission level for ANY given permission
"""
import json
from .models import *
from django.db.models import Max
from django.http import HttpResponseRedirect
from django.urls import reverse

"""
Permission table
Expand Down
14 changes: 13 additions & 1 deletion NearBeach/views/authentication_views.py
Expand Up @@ -170,7 +170,7 @@ def login(request):
#Check to make sure it isn't first time login -> need to setup functionalities
check_first_time_login(request)

return HttpResponseRedirect(reverse('alerts'))
return HttpResponseRedirect(reverse('dashboard'))

# Setup background image
# If user-agent string contains iOS or Safari, show default image
Expand Down Expand Up @@ -204,3 +204,15 @@ def logout(request):
# log the user out and go to login page
auth.logout(request)
return HttpResponseRedirect(reverse('login'))


@login_required(login_url='login',redirect_field_name="")
def permission_denied(request):
# Load the template
t = loader.get_template('NearBeach/authentication/permission_denied.html')

# context
c = {
}

return HttpResponse(t.render(c, request))
38 changes: 38 additions & 0 deletions NearBeach/views/dashboard_views.py
@@ -0,0 +1,38 @@
# Import Forms
from ..forms import *

# Import Django Libraries
from django.contrib import auth
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from django.urls import reverse


# Import Python Libraries
import json, urllib.parse, random

# Import user permission library
from ..user_permissions import return_user_permission_level

@login_required(login_url='login',redirect_field_name="")
def dashboard(request):
"""
Due to a bug - if the user goes to /admin/ and logs in there, they will by pass this one session request. It is
placed here to make sure. :)
"""
request.session['is_superuser'] = request.user.is_superuser

#Get user's default permissions
permission_results = return_user_permission_level(request, None, 'project')

# Load the template
t = loader.get_template('NearBeach/dashboard/dashboard.html')

# context
c = {
'new_item_permission': permission_results['new_item'],
'administration_permission': permission_results['administration'],
}

return HttpResponse(t.render(c, request))

0 comments on commit 53c6e37

Please sign in to comment.