You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@senssoft.apache.org by ar...@apache.org on 2016/10/21 16:12:40 UTC
[47/48] incubator-senssoft-tap git commit: Endpoints updates for
front end connections
Endpoints updates for front end connections
Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/commit/9cd21f5b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/tree/9cd21f5b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/diff/9cd21f5b
Branch: refs/heads/master
Commit: 9cd21f5bb1bfc9d5eb139d771e19b6a8ced63b54
Parents: 39ef689
Author: Arthi Vezhavendan <ar...@gmail.com>
Authored: Tue Oct 11 15:04:26 2016 -0400
Committer: Arthi Vezhavendan <ar...@gmail.com>
Committed: Tue Oct 11 15:04:26 2016 -0400
----------------------------------------------------------------------
.gitignore | 2 +
app_mgr/__init__.py | 1 +
app_mgr/admin.py | 1 +
app_mgr/apps.py | 1 +
app_mgr/distillviews.py | 15 +
app_mgr/migrations/0001_initial.py | 1 +
app_mgr/migrations/0002_membership_is_admin.py | 1 +
app_mgr/migrations/0003_auto_20160629_0112.py | 1 +
app_mgr/migrations/0004_auto_20160629_0252.py | 1 +
app_mgr/models.py | 14 -
app_mgr/permissions.py | 1 +
app_mgr/serializers.py | 1 +
app_mgr/signals/handlers.py | 1 +
app_mgr/templates/index.html | 22 +
app_mgr/templates/main.html | 22 +
app_mgr/templates/registration/login.html | 1 +
app_mgr/templates/registration/register.html | 1 +
.../registration/reset_password_confirm.html | 1 +
.../registration/reset_password_done.html | 1 +
.../registration/reset_password_email.html | 1 +
.../registration/reset_password_form.html | 1 +
app_mgr/templates/user_profile.html | 1 +
app_mgr/templates/userpage.html | 1 +
app_mgr/tests.py | 14 -
app_mgr/urls.py | 3 +-
app_mgr/views.py | 1 +
public/actions/app.js | 3 +-
public/components/AppProfile.js | 40 ++
public/components/AppResults.jsx | 90 ++--
public/components/Profile.js | 39 ++
public/components/Settings.js | 53 +++
public/components/UserProfile.js | 30 ++
public/components/UserSettings.js | 25 ++
public/components/visualizations/Counts.jsx | 2 +-
public/containers/App.js | 40 ++
requirements.txt | 1 +
semantic.json | 2 +-
semantic/src/definitions/modules/accordion.less | 438 +++++++++----------
semantic/src/definitions/modules/dimmer.js | 5 +-
semantic/src/definitions/modules/dropdown.less | 2 +-
semantic/src/definitions/modules/shape.js | 32 +-
tap/settings.py | 135 ++++++
tap/settings/archive/secret2.py | 12 +
tap/settings/archive/settings2.py | 135 ++++++
tap/settings/dev.py | 3 +-
tap/settings/production.py | 1 +
tap/settings/settings.py | 181 ++++++++
tap/urls.py | 10 +-
tap/wsgi.py | 1 +
templates/main.html | 22 +
vagrant/settings.py | 135 ++++++
51 files changed, 1249 insertions(+), 299 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 2c1979d..9df8927 100755
--- a/.gitignore
+++ b/.gitignore
@@ -26,5 +26,7 @@ build
static/*
!static/admin/
+archive/*
+
/public/neon_counts.js
/public/neon_graph.js
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/__init__.py
----------------------------------------------------------------------
diff --git a/app_mgr/__init__.py b/app_mgr/__init__.py
index f6f9a61..8df9d62 100644
--- a/app_mgr/__init__.py
+++ b/app_mgr/__init__.py
@@ -12,4 +12,5 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
default_app_config = 'app_mgr.apps.AppMgrConfig'
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/admin.py
----------------------------------------------------------------------
diff --git a/app_mgr/admin.py b/app_mgr/admin.py
index 023c186..1b519a4 100644
--- a/app_mgr/admin.py
+++ b/app_mgr/admin.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
from django.contrib import admin
from django.contrib.contenttypes.admin import GenericTabularInline
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/apps.py
----------------------------------------------------------------------
diff --git a/app_mgr/apps.py b/app_mgr/apps.py
index b9e48b3..dd4b7e6 100644
--- a/app_mgr/apps.py
+++ b/app_mgr/apps.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
from django.apps import AppConfig
class AppMgrConfig(AppConfig):
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/distillviews.py
----------------------------------------------------------------------
diff --git a/app_mgr/distillviews.py b/app_mgr/distillviews.py
index 080b0f2..c021819 100644
--- a/app_mgr/distillviews.py
+++ b/app_mgr/distillviews.py
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
from django.shortcuts import render, redirect, render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.contrib.sites.shortcuts import get_current_site
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/migrations/0001_initial.py
----------------------------------------------------------------------
diff --git a/app_mgr/migrations/0001_initial.py b/app_mgr/migrations/0001_initial.py
index 3b1e58a..c3bf762 100644
--- a/app_mgr/migrations/0001_initial.py
+++ b/app_mgr/migrations/0001_initial.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-06-23 22:51
from __future__ import unicode_literals
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/migrations/0002_membership_is_admin.py
----------------------------------------------------------------------
diff --git a/app_mgr/migrations/0002_membership_is_admin.py b/app_mgr/migrations/0002_membership_is_admin.py
index 718ad4a..59c1cb8 100644
--- a/app_mgr/migrations/0002_membership_is_admin.py
+++ b/app_mgr/migrations/0002_membership_is_admin.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-06-28 04:39
from __future__ import unicode_literals
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/migrations/0003_auto_20160629_0112.py
----------------------------------------------------------------------
diff --git a/app_mgr/migrations/0003_auto_20160629_0112.py b/app_mgr/migrations/0003_auto_20160629_0112.py
index 2207716..6a0fe37 100644
--- a/app_mgr/migrations/0003_auto_20160629_0112.py
+++ b/app_mgr/migrations/0003_auto_20160629_0112.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-06-29 05:12
from __future__ import unicode_literals
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/migrations/0004_auto_20160629_0252.py
----------------------------------------------------------------------
diff --git a/app_mgr/migrations/0004_auto_20160629_0252.py b/app_mgr/migrations/0004_auto_20160629_0252.py
index d3b0a34..04629c6 100644
--- a/app_mgr/migrations/0004_auto_20160629_0252.py
+++ b/app_mgr/migrations/0004_auto_20160629_0252.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-06-29 06:52
from __future__ import unicode_literals
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/models.py
----------------------------------------------------------------------
diff --git a/app_mgr/models.py b/app_mgr/models.py
old mode 100644
new mode 100755
index f2d084e..ca7d735
--- a/app_mgr/models.py
+++ b/app_mgr/models.py
@@ -1,17 +1,3 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
from django.db import models
from django.conf import settings
from django.contrib.postgres.fields import JSONField
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/permissions.py
----------------------------------------------------------------------
diff --git a/app_mgr/permissions.py b/app_mgr/permissions.py
index 2cc7477..180fe43 100644
--- a/app_mgr/permissions.py
+++ b/app_mgr/permissions.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
from rest_framework.permissions import DjangoObjectPermissions
from django.http import Http404
from guardian.shortcuts import get_perms, get_perms_for_model, get_users_with_perms
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/serializers.py
----------------------------------------------------------------------
diff --git a/app_mgr/serializers.py b/app_mgr/serializers.py
index f7fcc07..2e8bd0e 100644
--- a/app_mgr/serializers.py
+++ b/app_mgr/serializers.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
from rest_framework import serializers
from django.contrib.auth import get_user_model
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/signals/handlers.py
----------------------------------------------------------------------
diff --git a/app_mgr/signals/handlers.py b/app_mgr/signals/handlers.py
index 91fe1c1..20a4b2a 100644
--- a/app_mgr/signals/handlers.py
+++ b/app_mgr/signals/handlers.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
from django.contrib.auth.models import Group
from django.conf import settings
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/index.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/index.html b/app_mgr/templates/index.html
new file mode 100644
index 0000000..fc706b4
--- /dev/null
+++ b/app_mgr/templates/index.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Tap Home</title>
+ {% load staticfiles %}
+ <link rel="stylesheet" href="{% static "semantic.min.css" %}">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
+ <!-- <script src="{% static "jquery-3.0.0.min.js" %}"></script> -->
+ <script src="{% static "semantic.min.js" %}"></script>
+ <link href="{% static "styles.min.css" %}" rel="stylesheet">
+</head>
+<body>
+ <div id="main-container">
+ <div id="react-container" />
+ </div>
+ <!-- <script src="{{ STATIC_URL }}js/components/jquery/dist/jquery.min.js"></script>
+ <script src="{{ STATIC_URL }}js/components/bootstrap/dist/js/bootstrap.min.js"></script>
+ <script src="{{ STATIC_URL }}js/es5-shim.min.js"></script> -->
+ <script src="{% static "app.js" %}"></script>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/main.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/main.html b/app_mgr/templates/main.html
new file mode 100644
index 0000000..fc706b4
--- /dev/null
+++ b/app_mgr/templates/main.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Tap Home</title>
+ {% load staticfiles %}
+ <link rel="stylesheet" href="{% static "semantic.min.css" %}">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
+ <!-- <script src="{% static "jquery-3.0.0.min.js" %}"></script> -->
+ <script src="{% static "semantic.min.js" %}"></script>
+ <link href="{% static "styles.min.css" %}" rel="stylesheet">
+</head>
+<body>
+ <div id="main-container">
+ <div id="react-container" />
+ </div>
+ <!-- <script src="{{ STATIC_URL }}js/components/jquery/dist/jquery.min.js"></script>
+ <script src="{{ STATIC_URL }}js/components/bootstrap/dist/js/bootstrap.min.js"></script>
+ <script src="{{ STATIC_URL }}js/es5-shim.min.js"></script> -->
+ <script src="{% static "app.js" %}"></script>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/registration/login.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/registration/login.html b/app_mgr/templates/registration/login.html
index 684ea00..79f1676 100755
--- a/app_mgr/templates/registration/login.html
+++ b/app_mgr/templates/registration/login.html
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
+
{% extends "main.html" %}
{% block container %}
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/registration/register.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/registration/register.html b/app_mgr/templates/registration/register.html
index 87cd580..5039fcf 100755
--- a/app_mgr/templates/registration/register.html
+++ b/app_mgr/templates/registration/register.html
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
+
{% extends "main.html" %}
{% block container %}
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/registration/reset_password_confirm.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/registration/reset_password_confirm.html b/app_mgr/templates/registration/reset_password_confirm.html
index 4c73a62..4435740 100644
--- a/app_mgr/templates/registration/reset_password_confirm.html
+++ b/app_mgr/templates/registration/reset_password_confirm.html
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
+
{% extends "main.html" %}
{% block title %}Reset Password{% endblock %}
{% block container %}
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/registration/reset_password_done.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/registration/reset_password_done.html b/app_mgr/templates/registration/reset_password_done.html
index 1077f9a..941bdf4 100644
--- a/app_mgr/templates/registration/reset_password_done.html
+++ b/app_mgr/templates/registration/reset_password_done.html
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
+
{% extends "main.html" %}
{% block title %}Password Reset In Progress{% endblock %}
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/registration/reset_password_email.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/registration/reset_password_email.html b/app_mgr/templates/registration/reset_password_email.html
index 4f74fb6..8ce89c7 100644
--- a/app_mgr/templates/registration/reset_password_email.html
+++ b/app_mgr/templates/registration/reset_password_email.html
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
+
{% autoescape off %}
You're receiving this email because you requested a password reset for your user account at {{ site_name }}.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/registration/reset_password_form.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/registration/reset_password_form.html b/app_mgr/templates/registration/reset_password_form.html
index 6eceae8..bb8175b 100644
--- a/app_mgr/templates/registration/reset_password_form.html
+++ b/app_mgr/templates/registration/reset_password_form.html
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
+
{% extends "main.html" %}
{% block title %}Reset Password{% endblock %}
{% block container %}
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/user_profile.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/user_profile.html b/app_mgr/templates/user_profile.html
index 6d15eb6..bd8daed 100644
--- a/app_mgr/templates/user_profile.html
+++ b/app_mgr/templates/user_profile.html
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
+
{% extends "userpage.html" %}
{% block content %}
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/templates/userpage.html
----------------------------------------------------------------------
diff --git a/app_mgr/templates/userpage.html b/app_mgr/templates/userpage.html
index 795a91b..700c8ff 100644
--- a/app_mgr/templates/userpage.html
+++ b/app_mgr/templates/userpage.html
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
+
{% extends "page.html" %}
{% block side_block %}
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/tests.py
----------------------------------------------------------------------
diff --git a/app_mgr/tests.py b/app_mgr/tests.py
old mode 100644
new mode 100755
index c98fdeb..7ce503c
--- a/app_mgr/tests.py
+++ b/app_mgr/tests.py
@@ -1,17 +1,3 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
from django.test import TestCase
# Create your tests here.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/urls.py
----------------------------------------------------------------------
diff --git a/app_mgr/urls.py b/app_mgr/urls.py
index 7992345..6698228 100644
--- a/app_mgr/urls.py
+++ b/app_mgr/urls.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
"""tap URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
@@ -52,7 +53,7 @@ urlpatterns = [
url(r'^org/(?P<pk>[\d]+)/$', views.OrganizationInstanceView.as_view(), name='org-instance'),
url(r'^app/(?P<pk>[\d]+)/$', views.ApplicationInstanceView.as_view(), name='app-instance'),
- url(r'^app/(?P<pk>current+)/$', views.AliasListView.as_view(), name='alias-list'),
+ #url(r'^app/(?P<pk>current+)/$', views.AliasListView.as_view(), name='alias-list'),
url(r'^appresults/(?P<appId>[0-9]{1,2})/(?P<searchType>\w+)/$', distillviews.app_results, name='app-results'),
url(r'^appresults/(?P<appName>\w+)/(?P<searchType>\w+)/$', distillviews.app_results_byname, name='app-results'),
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/app_mgr/views.py
----------------------------------------------------------------------
diff --git a/app_mgr/views.py b/app_mgr/views.py
index 7ce3dfa..8973be8 100644
--- a/app_mgr/views.py
+++ b/app_mgr/views.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
from django.shortcuts import render, redirect, render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.contrib.auth.decorators import login_required
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/actions/app.js
----------------------------------------------------------------------
diff --git a/public/actions/app.js b/public/actions/app.js
index 7c1254e..3badb05 100644
--- a/public/actions/app.js
+++ b/public/actions/app.js
@@ -1,4 +1,5 @@
-import { REQUEST_APP, RECEIVE_APP, REQUEST_APP_UPDATE, CONFIRM_APP_UPDATE, REQUEST_APP_RESULTS, RECEIVE_APP_RESULTS } from '../constants/ActionTypes';
+import { REQUEST_APP, RECEIVE_APP, REQUEST_APP_UPDATE, CONFIRM_APP_UPDATE, REQUEST_APP_RESULTS, RECEIVE_APP_RESULTS }
+ from '../constants/ActionTypes';
export function fetchApp () {
return { type : REQUEST_APP };
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/components/AppProfile.js
----------------------------------------------------------------------
diff --git a/public/components/AppProfile.js b/public/components/AppProfile.js
new file mode 100644
index 0000000..1615194
--- /dev/null
+++ b/public/components/AppProfile.js
@@ -0,0 +1,40 @@
+import React, { Component, PropTypes } from 'react';
+import { Link } from 'react-router';
+
+import Profile from './Profile';
+
+class AppProfile extends Component {
+ render () {
+ const { id, name, users } = this.props;
+
+ return (
+ <div className='ui text container'>
+ <div className='ui vertical basic page segment'>
+ <div className='ui large header'>
+ {name}
+ </div>
+ <Link to={`/app/${id}/settings`}>
+ <div className='ui brown button'>
+ Settings
+ </div>
+ </Link>
+ <Link to={`/app/${id}/results`}>
+ <div className='ui brown button'>
+ Results
+ </div>
+ </Link>
+ </div>
+
+ <Profile feed={['a', 1, 'c']} firstSide={users} firstType={'user'} />
+ </div>
+ );
+ }
+}
+
+AppProfile.propTypes = {
+ id : PropTypes.number,
+ name : PropTypes.string,
+ users : PropTypes.array,
+};
+
+export default AppProfile;
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/components/AppResults.jsx
----------------------------------------------------------------------
diff --git a/public/components/AppResults.jsx b/public/components/AppResults.jsx
index c8671f0..f5d3b84 100644
--- a/public/components/AppResults.jsx
+++ b/public/components/AppResults.jsx
@@ -9,14 +9,14 @@ class AppResults extends Component {
this.state = {
result : 'counts',
metric : 'out_degree',
- ethnicities : [1, 2, 3, 4, 5, 6, 7],
+ educationlevels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
gender : 0,
ab : false,
};
}
componentDidMount() {
- $('#ethnicity-accordion').accordion({
+ $('#education-accordion').accordion({
collapsible : true,
});
$('#results-controls').accordion({
@@ -37,13 +37,13 @@ class AppResults extends Component {
},
});
- $('.ui.ethnicity.checkbox').checkbox({
+ $('.ui.education.checkbox').checkbox({
onChange : () => {
- let ethnicities = [];
- $('input[name=ethnicity]:checked').each((i, el) => {
- ethnicities.push(+$(el).val());
+ let educationlevels = [];
+ $('input[name=education]:checked').each((i, el) => {
+ educationlevels.push(+$(el).val());
});
- this.setState({ ethnicities : ethnicities });
+ this.setState({ educationlevels : educationlevels });
},
});
@@ -93,55 +93,85 @@ class AppResults extends Component {
</div>
<div className='field'>
- <div id='ethnicity-accordion' className='accordion'>
+ <div id='education-accordion' className='accordion'>
<div className='title'>
<i className='dropdown icon'></i>
- Ethnicity
+ Highest Education Level
</div>
<div className='content'>
<div className='ui form'>
<div className='grouped fields'>
<div className='field'>
- <div className='ui ethnicity checkbox'>
- <input type='checkbox' name='ethnicity' value='1' defaultChecked></input>
- <label>Asian</label>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='1' defaultChecked></input>
+ <label>No schooling completed</label>
</div>
</div>
<div className='field'>
- <div className='ui ethnicity checkbox'>
- <input type='checkbox' name='ethnicity' value='2' defaultChecked></input>
- <label>Pacific Islander</label>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='2' defaultChecked></input>
+ <label>Nursery school to 8th grade</label>
</div>
</div>
<div className='field'>
- <div className='ui ethnicity checkbox'>
- <input type='checkbox' name='ethnicity' value='3' defaultChecked></input>
- <label>African American/Of African Descent</label>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='3' defaultChecked></input>
+ <label>9th, 10th, or 11th grade</label>
</div>
</div>
<div className='field'>
- <div className='ui ethnicity checkbox'>
- <input type='checkbox' name='ethnicity' value='4' defaultChecked></input>
- <label>White/Caucasian</label>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='4' defaultChecked></input>
+ <label>12th grade, or no diploma</label>
</div>
</div>
<div className='field'>
- <div className='ui ethnicity checkbox'>
- <input type='checkbox' name='ethnicity' value='5' defaultChecked></input>
- <label>Native American</label>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='5' defaultChecked></input>
+ <label>High school graduate</label>
</div>
</div>
<div className='field'>
- <div className='ui ethnicity checkbox'>
- <input type='checkbox' name='ethnicity' value='6' defaultChecked></input>
- <label>Indian</label>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='6' defaultChecked></input>
+ <label>Some college credit</label>
</div>
</div>
<div className='field'>
- <div className='ui ethnicity checkbox'>
- <input type='checkbox' name='ethnicity' value='7' defaultChecked></input>
- <label>Decline to State</label>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='7' defaultChecked></input>
+ <label>1 or more years of college</label>
+ </div>
+ </div>
+ <div className='field'>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='8' defaultChecked></input>
+ <label>Associate degree</label>
+ </div>
+ </div>
+ <div className='field'>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='9' defaultChecked></input>
+ <label>Bachelors degree</label>
+ </div>
+ </div>
+ <div className='field'>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='10' defaultChecked></input>
+ <label>Masters degree</label>
+ </div>
+ </div>
+ <div className='field'>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='11' defaultChecked></input>
+ <label>Professional degree</label>
+ </div>
+ </div>
+ <div className='field'>
+ <div className='ui education checkbox'>
+ <input type='checkbox' name='education' value='12' defaultChecked></input>
+ <label>Doctorate degree</label>
</div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/components/Profile.js
----------------------------------------------------------------------
diff --git a/public/components/Profile.js b/public/components/Profile.js
new file mode 100644
index 0000000..528166a
--- /dev/null
+++ b/public/components/Profile.js
@@ -0,0 +1,39 @@
+import React, { Component, PropTypes } from 'react';
+
+import Feed from './Feed';
+import Sidebox from './Sidebox';
+
+class Profile extends Component {
+ render() {
+ const { feed, firstSide, secondSide, firstType, secondType } = this.props;
+
+ return(
+ <div className='ui padded grid'>
+ <div className='ten wide column'>
+ <Feed feed={feed} />
+ </div>
+
+ <div className='six wide column'>
+ <Sidebox type={firstType} content={firstSide} />
+ {(() => {
+ if (secondSide) {
+ return(
+ <Sidebox type={secondType} content={secondSide} />
+ );
+ }
+ })()}
+ </div>
+ </div>
+ );
+ }
+}
+
+Profile.propTypes = {
+ feed : PropTypes.array,
+ firstSide : PropTypes.array,
+ firstType : PropTypes.string,
+ secondSide : PropTypes.array,
+ secondType : PropTypes.string,
+};
+
+export default Profile;
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/components/Settings.js
----------------------------------------------------------------------
diff --git a/public/components/Settings.js b/public/components/Settings.js
new file mode 100644
index 0000000..0194d43
--- /dev/null
+++ b/public/components/Settings.js
@@ -0,0 +1,53 @@
+import React, { Component, PropTypes } from 'react';
+
+class Settings extends Component {
+ componentDidMount() {
+ let $settingsControls = $('#settings-menu .item');
+ $settingsControls.on('click', (e) => {
+ $settingsControls.removeClass('active');
+ $(e.target).addClass('active');
+ });
+ }
+
+ render() {
+ const { settings } = this.props;
+
+ return (
+ <div className='ui grid'>
+ <div className='four wide column'>
+ <div id='settings-menu' className='ui vertical fluid tabular menu'>
+ <a className='item active'>
+ Account
+ </a>
+ <a className='item'>
+ Notifications
+ </a>
+ <a className='item'>
+ Organizations
+ </a>
+ </div>
+ </div>
+
+ <div className='twelve wide stretched column'>
+ <div className='ui segment'>
+ <ul>
+ {Object.keys(settings).map((setting, index) => {
+ return (
+ <li key={index}>
+ {setting}, {settings[setting].toString()}
+ </li>
+ );
+ })}
+ </ul>
+ </div>
+ </div>
+ </div>
+ );
+ }
+}
+
+Settings.propTypes = {
+ settings : PropTypes.object,
+};
+
+export default Settings;
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/components/UserProfile.js
----------------------------------------------------------------------
diff --git a/public/components/UserProfile.js b/public/components/UserProfile.js
new file mode 100644
index 0000000..384fe03
--- /dev/null
+++ b/public/components/UserProfile.js
@@ -0,0 +1,30 @@
+import React, { Component, PropTypes } from 'react';
+import { Link } from 'react-router';
+
+import Profile from './Profile';
+
+class UserProfile extends Component {
+ render () {
+ const { email, orgs, apps } = this.props;
+
+ return (
+ <div className='ui text container'>
+ <div className='ui vertical basic page segment'>
+ <div className='ui large header'>
+ {`${email}'s Profile`}
+ </div>
+ </div>
+
+ <Profile feed={['a', 1, 'c']} firstSide={orgs} firstType={'org'} secondSide={apps} secondType={'app'} />
+ </div>
+ );
+ }
+}
+
+UserProfile.propTypes = {
+ email : PropTypes.string,
+ orgs : PropTypes.array,
+ apps : PropTypes.array,
+};
+
+export default UserProfile;
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/components/UserSettings.js
----------------------------------------------------------------------
diff --git a/public/components/UserSettings.js b/public/components/UserSettings.js
new file mode 100644
index 0000000..51dface
--- /dev/null
+++ b/public/components/UserSettings.js
@@ -0,0 +1,25 @@
+import React, { Component, PropTypes } from 'react';
+
+import Settings from './Settings';
+
+class UserSettings extends Component {
+ render () {
+ const { email, settings } = this.props;
+
+ return (
+ <div className='ui text container'>
+ <div className='ui large header'>
+ Settings for {email}
+ </div>
+ <Settings settings={settings} />
+ </div>
+ );
+ }
+}
+
+UserSettings.propTypes = {
+ email : PropTypes.string,
+ settings : PropTypes.object,
+};
+
+export default UserSettings;
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/components/visualizations/Counts.jsx
----------------------------------------------------------------------
diff --git a/public/components/visualizations/Counts.jsx b/public/components/visualizations/Counts.jsx
index a1a2d6e..1540878 100644
--- a/public/components/visualizations/Counts.jsx
+++ b/public/components/visualizations/Counts.jsx
@@ -100,7 +100,7 @@ function subset(data, filters) {
preprocessData(data);
var dataSubset = data.filter((p) => {
- return (filters.gender === 0 || filters.gender == p.intake_data.demographics.Gender) && (filters.ethnicities.includes(+p.intake_data.demographics.Ethnicity));
+ return (filters.gender === 0 || filters.gender == p.intake_data.demographics.Gender) && (filters.educationlevels.includes(+p.intake_data.education["Most school completed"]));
});
var logs = {};
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/public/containers/App.js
----------------------------------------------------------------------
diff --git a/public/containers/App.js b/public/containers/App.js
new file mode 100644
index 0000000..5110ee0
--- /dev/null
+++ b/public/containers/App.js
@@ -0,0 +1,40 @@
+import React, { Component, PropTypes } from 'react';
+import { connect } from 'react-redux';
+
+class App extends Component {
+ render() {
+ const { children, id, name, settings, results, users } = this.props;
+
+ return(
+ <div>
+ {React.cloneElement(children, {
+ id,
+ name,
+ settings,
+ results,
+ users,
+ })}
+ </div>
+ );
+ }
+}
+
+App.propTypes = {
+ id : PropTypes.number,
+ name : PropTypes.string,
+ settings : PropTypes.object,
+ results : PropTypes.object,
+ users : PropTypes.array,
+};
+
+function mapStateToProps(state, ownProps) {
+ return {
+ id : state.app.id,
+ name : state.app.name,
+ settings : state.app.settings,
+ results : state.app.results,
+ users : state.app.users,
+ };
+}
+
+export default connect(mapStateToProps)(App);
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/requirements.txt
----------------------------------------------------------------------
diff --git a/requirements.txt b/requirements.txt
index befdd67..235fdb0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -11,3 +11,4 @@ psycopg2==2.6.1
Pygments==2.1.3
requests==2.10.0
six==1.10.0
+django-webpack-loader==0.3.3
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/semantic.json
----------------------------------------------------------------------
diff --git a/semantic.json b/semantic.json
index edb31cc..17c42f5 100644
--- a/semantic.json
+++ b/semantic.json
@@ -18,5 +18,5 @@
"permission": false,
"autoInstall": false,
"rtl": false,
- "version": "2.2.1"
+ "version": "2.2.2"
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/semantic/src/definitions/modules/accordion.less
----------------------------------------------------------------------
diff --git a/semantic/src/definitions/modules/accordion.less b/semantic/src/definitions/modules/accordion.less
index eaf0776..835f490 100755
--- a/semantic/src/definitions/modules/accordion.less
+++ b/semantic/src/definitions/modules/accordion.less
@@ -1,219 +1,219 @@
-/*!
- * # Semantic UI - Accordion
- * http://github.com/semantic-org/semantic-ui/
- *
- *
- * Released under the MIT license
- * http://opensource.org/licenses/MIT
- *
- */
-
-/*******************************
- Theme
-*******************************/
-
-@type : 'module';
-@element : 'accordion';
-
-@import (multiple) '../../theme.config';
-
-/*******************************
- Accordion
-*******************************/
-
-.ui.accordion,
-.ui.accordion .accordion {
- max-width: 100%;
-}
-.ui.accordion .accordion {
- margin: @childAccordionMargin;
- padding: @childAccordionPadding;
-}
-
-/* Title */
-.ui.accordion .title,
-.ui.accordion .accordion .title {
- cursor: pointer;
-}
-
-/* Default Styling */
-.ui.accordion .title:not(.ui) {
- padding: @titlePadding;
- font-family: @titleFont;
- font-size: @titleFontSize;
- color: @titleColor;
-}
-
-/* Content */
-.ui.accordion .title ~ .content,
-.ui.accordion .accordion .title ~ .content {
- display: none;
-}
-
-/* Default Styling */
-.ui.accordion:not(.styled) .title ~ .content:not(.ui),
-.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
- margin: @contentMargin;
- padding: @contentPadding;
-}
-.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
- padding-bottom: 0em;
-}
-
-/* Arrow */
-.ui.accordion .title .dropdown.icon,
-.ui.accordion .accordion .title .dropdown.icon {
- display: @iconDisplay;
- float: @iconFloat;
- opacity: @iconOpacity;
- width: @iconWidth;
- height: @iconHeight;
- margin: @iconMargin;
- padding: @iconPadding;
- font-size: @iconFontSize;
- transition: @iconTransition;
- vertical-align: @iconVerticalAlign;
- transform: @iconTransform;
-}
-
-/*--------------
- Coupling
----------------*/
-
-/* Menu */
-.ui.accordion.menu .item .title {
- display: block;
- padding: @menuTitlePadding;
-}
-.ui.accordion.menu .item .title > .dropdown.icon {
- float: @menuIconFloat;
- margin: @menuIconMargin;
- transform: @menuIconTransform;
-}
-
-/* Header */
-.ui.accordion .ui.header .dropdown.icon {
- font-size: @iconFontSize;
- margin: @iconMargin;
-}
-
-/*******************************
- States
-*******************************/
-
-.ui.accordion .active.title .dropdown.icon,
-.ui.accordion .accordion .active.title .dropdown.icon {
- transform: @activeIconTransform;
-}
-
-.ui.accordion.menu .item .active.title > .dropdown.icon {
- transform: @activeIconTransform;
-}
-
-/*******************************
- Types
-*******************************/
-
-/*--------------
- Styled
----------------*/
-
-.ui.styled.accordion {
- width: @styledWidth;
-}
-
-.ui.styled.accordion,
-.ui.styled.accordion .accordion {
- border-radius: @styledBorderRadius;
- background: @styledBackground;
- box-shadow: @styledBoxShadow;
-}
-.ui.styled.accordion .title,
-.ui.styled.accordion .accordion .title {
- margin: @styledTitleMargin;
- padding: @styledTitlePadding;
- color: @styledTitleColor;
- font-weight: @styledTitleFontWeight;
- border-top: @styledTitleBorder;
- transition: @styledTitleTransition;
-}
-.ui.styled.accordion > .title:first-child,
-.ui.styled.accordion .accordion .title:first-child {
- border-top: none;
-}
-
-
-/* Content */
-.ui.styled.accordion .content,
-.ui.styled.accordion .accordion .content {
- margin: @styledContentMargin;
- padding: @styledContentPadding;
-}
-.ui.styled.accordion .accordion .content {
- padding: @styledChildContentMargin;
- padding: @styledChildContentPadding;
-}
-
-
-/* Hover */
-.ui.styled.accordion .title:hover,
-.ui.styled.accordion .active.title,
-.ui.styled.accordion .accordion .title:hover,
-.ui.styled.accordion .accordion .active.title {
- background: @styledTitleHoverBackground;
- color: @styledTitleHoverColor;
-}
-.ui.styled.accordion .accordion .title:hover,
-.ui.styled.accordion .accordion .active.title {
- background: @styledHoverChildTitleBackground;
- color: @styledHoverChildTitleColor;
-}
-
-
-/* Active */
-.ui.styled.accordion .active.title {
- background: @styledActiveTitleBackground;
- color: @styledActiveTitleColor;
-}
-.ui.styled.accordion .accordion .active.title {
- background: @styledActiveChildTitleBackground;
- color: @styledActiveChildTitleColor;
-}
-
-
-/*******************************
- States
-*******************************/
-
-/*--------------
- Active
----------------*/
-
-.ui.accordion .active.content,
-.ui.accordion .accordion .active.content {
- display: block;
-}
-
-/*******************************
- Variations
-*******************************/
-
-/*--------------
- Fluid
----------------*/
-
-.ui.fluid.accordion,
-.ui.fluid.accordion .accordion {
- width: 100%;
-}
-
-/*--------------
- Inverted
----------------*/
-
-.ui.inverted.accordion .title:not(.ui) {
- color: @invertedTitleColor;
-}
-
-.loadUIOverrides();
-
+/*!
+ * # Semantic UI - Accordion
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'module';
+@element : 'accordion';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Accordion
+*******************************/
+
+.ui.accordion,
+.ui.accordion .accordion {
+ max-width: 100%;
+}
+.ui.accordion .accordion {
+ margin: @childAccordionMargin;
+ padding: @childAccordionPadding;
+}
+
+/* Title */
+.ui.accordion .title,
+.ui.accordion .accordion .title {
+ cursor: pointer;
+}
+
+/* Default Styling */
+.ui.accordion .title:not(.ui) {
+ padding: @titlePadding;
+ font-family: @titleFont;
+ font-size: @titleFontSize;
+ color: @titleColor;
+}
+
+/* Content */
+.ui.accordion .title ~ .content,
+.ui.accordion .accordion .title ~ .content {
+ display: none;
+}
+
+/* Default Styling */
+.ui.accordion:not(.styled) .title ~ .content:not(.ui),
+.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
+ margin: @contentMargin;
+ padding: @contentPadding;
+}
+.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
+ padding-bottom: 0em;
+}
+
+/* Arrow */
+.ui.accordion .title .dropdown.icon,
+.ui.accordion .accordion .title .dropdown.icon {
+ display: @iconDisplay;
+ float: @iconFloat;
+ opacity: @iconOpacity;
+ width: @iconWidth;
+ height: @iconHeight;
+ margin: @iconMargin;
+ padding: @iconPadding;
+ font-size: @iconFontSize;
+ transition: @iconTransition;
+ vertical-align: @iconVerticalAlign;
+ transform: @iconTransform;
+}
+
+/*--------------
+ Coupling
+---------------*/
+
+/* Menu */
+.ui.accordion.menu .item .title {
+ display: block;
+ padding: @menuTitlePadding;
+}
+.ui.accordion.menu .item .title > .dropdown.icon {
+ float: @menuIconFloat;
+ margin: @menuIconMargin;
+ transform: @menuIconTransform;
+}
+
+/* Header */
+.ui.accordion .ui.header .dropdown.icon {
+ font-size: @iconFontSize;
+ margin: @iconMargin;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.accordion .active.title .dropdown.icon,
+.ui.accordion .accordion .active.title .dropdown.icon {
+ transform: @activeIconTransform;
+}
+
+.ui.accordion.menu .item .active.title > .dropdown.icon {
+ transform: @activeIconTransform;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Styled
+---------------*/
+
+.ui.styled.accordion {
+ width: @styledWidth;
+}
+
+.ui.styled.accordion,
+.ui.styled.accordion .accordion {
+ border-radius: @styledBorderRadius;
+ background: @styledBackground;
+ box-shadow: @styledBoxShadow;
+}
+.ui.styled.accordion .title,
+.ui.styled.accordion .accordion .title {
+ margin: @styledTitleMargin;
+ padding: @styledTitlePadding;
+ color: @styledTitleColor;
+ font-weight: @styledTitleFontWeight;
+ border-top: @styledTitleBorder;
+ transition: @styledTitleTransition;
+}
+.ui.styled.accordion > .title:first-child,
+.ui.styled.accordion .accordion .title:first-child {
+ border-top: none;
+}
+
+
+/* Content */
+.ui.styled.accordion .content,
+.ui.styled.accordion .accordion .content {
+ margin: @styledContentMargin;
+ padding: @styledContentPadding;
+}
+.ui.styled.accordion .accordion .content {
+ padding: @styledChildContentMargin;
+ padding: @styledChildContentPadding;
+}
+
+
+/* Hover */
+.ui.styled.accordion .title:hover,
+.ui.styled.accordion .active.title,
+.ui.styled.accordion .accordion .title:hover,
+.ui.styled.accordion .accordion .active.title {
+ background: @styledTitleHoverBackground;
+ color: @styledTitleHoverColor;
+}
+.ui.styled.accordion .accordion .title:hover,
+.ui.styled.accordion .accordion .active.title {
+ background: @styledHoverChildTitleBackground;
+ color: @styledHoverChildTitleColor;
+}
+
+
+/* Active */
+.ui.styled.accordion .active.title {
+ background: @styledActiveTitleBackground;
+ color: @styledActiveTitleColor;
+}
+.ui.styled.accordion .accordion .active.title {
+ background: @styledActiveChildTitleBackground;
+ color: @styledActiveChildTitleColor;
+}
+
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Active
+---------------*/
+
+.ui.accordion .active.content,
+.ui.accordion .accordion .active.content {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.accordion,
+.ui.fluid.accordion .accordion {
+ width: 100%;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.accordion .title:not(.ui) {
+ color: @invertedTitleColor;
+}
+
+.loadUIOverrides();
+
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/semantic/src/definitions/modules/dimmer.js
----------------------------------------------------------------------
diff --git a/semantic/src/definitions/modules/dimmer.js b/semantic/src/definitions/modules/dimmer.js
index 604141e..2feb915 100644
--- a/semantic/src/definitions/modules/dimmer.js
+++ b/semantic/src/definitions/modules/dimmer.js
@@ -83,6 +83,7 @@ $.fn.dimmer = function(parameters) {
else {
$dimmer = module.create();
}
+ module.set.variation();
}
},
@@ -173,10 +174,6 @@ $.fn.dimmer = function(parameters) {
var
$element = $( settings.template.dimmer() )
;
- if(settings.variation) {
- module.debug('Creating dimmer with variation', settings.variation);
- $element.addClass(settings.variation);
- }
if(settings.dimmerName) {
module.debug('Creating named dimmer', settings.dimmerName);
$element.addClass(settings.dimmerName);
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/semantic/src/definitions/modules/dropdown.less
----------------------------------------------------------------------
diff --git a/semantic/src/definitions/modules/dropdown.less b/semantic/src/definitions/modules/dropdown.less
index c726781..b968213 100755
--- a/semantic/src/definitions/modules/dropdown.less
+++ b/semantic/src/definitions/modules/dropdown.less
@@ -547,7 +547,7 @@ select.ui.dropdown {
background: none transparent !important;
border: none !important;
box-shadow: none !important;
- cursor: pointer;
+ cursor: text;
top: 0em;
left: 0em;
width: 100%;
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/semantic/src/definitions/modules/shape.js
----------------------------------------------------------------------
diff --git a/semantic/src/definitions/modules/shape.js b/semantic/src/definitions/modules/shape.js
index d86791a..d399046 100644
--- a/semantic/src/definitions/modules/shape.js
+++ b/semantic/src/definitions/modules/shape.js
@@ -244,6 +244,11 @@ $.fn.shape = function(parameters) {
var
$clone = $module.clone().addClass(className.loading),
$activeSide = $clone.find('.' + settings.className.active),
+ $nextSide = (nextIndex)
+ ? $clone.find(selector.side).eq(nextIndex)
+ : ( $activeSide.next(selector.side).length > 0 )
+ ? $activeSide.next(selector.side)
+ : $clone.find(selector.side).first(),
newWidth = (settings.width == 'next')
? $nextSide.outerWidth(true)
: (settings.width == 'initial')
@@ -253,12 +258,7 @@ $.fn.shape = function(parameters) {
? $nextSide.outerHeight(true)
: (settings.height == 'initial')
? $module.height()
- : settings.height,
- $nextSide = (nextIndex)
- ? $clone.find(selector.side).eq(nextIndex)
- : ( $activeSide.next(selector.side).length > 0 )
- ? $activeSide.next(selector.side)
- : $clone.find(selector.side).first()
+ : settings.height
;
$activeSide.removeClass(className.active);
$nextSide.addClass(className.active);
@@ -307,9 +307,12 @@ $.fn.shape = function(parameters) {
}
if( !module.is.animating()) {
module.debug('Flipping up', $nextSide);
+ var
+ transform = module.get.transform.up()
+ ;
module.set.stageSize();
module.stage.above();
- module.animate( module.get.transform.up() );
+ module.animate(transform);
}
else {
module.queue('flip up');
@@ -323,9 +326,12 @@ $.fn.shape = function(parameters) {
}
if( !module.is.animating()) {
module.debug('Flipping down', $nextSide);
+ var
+ transform = module.get.transform.down()
+ ;
module.set.stageSize();
module.stage.below();
- module.animate( module.get.transform.down() );
+ module.animate(transform);
}
else {
module.queue('flip down');
@@ -339,9 +345,12 @@ $.fn.shape = function(parameters) {
}
if( !module.is.animating()) {
module.debug('Flipping left', $nextSide);
+ var
+ transform = module.get.transform.left()
+ ;
module.set.stageSize();
module.stage.left();
- module.animate(module.get.transform.left() );
+ module.animate(transform);
}
else {
module.queue('flip left');
@@ -355,9 +364,12 @@ $.fn.shape = function(parameters) {
}
if( !module.is.animating()) {
module.debug('Flipping right', $nextSide);
+ var
+ transform = module.get.transform.right()
+ ;
module.set.stageSize();
module.stage.right();
- module.animate(module.get.transform.right() );
+ module.animate(transform);
}
else {
module.queue('flip right');
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/tap/settings.py
----------------------------------------------------------------------
diff --git a/tap/settings.py b/tap/settings.py
new file mode 100644
index 0000000..8f66901
--- /dev/null
+++ b/tap/settings.py
@@ -0,0 +1,135 @@
+"""
+Django settings for tap project.
+
+Generated by 'django-admin startproject' using Django 1.9.7.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/1.9/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/1.9/ref/settings/
+"""
+
+import os
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+#SECRET_KEY = 'm^7q3z0x9q%)fb6^lo(=%=$=5+g7h2(w8pfhxi0pw_#)xnw(!9'
+SECRET_KEY = 'ro4o76lktk+x)0^fwp^(tua76p2y$p_2*19$gnk8+!)k^er0p='
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = []
+
+
+# Application definition
+
+INSTALLED_APPS = [
+ 'appmgr.apps.AppmgrConfig',
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+]
+
+MIDDLEWARE_CLASSES = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'tap.urls'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [
+ os.path.join(BASE_DIR, 'templates'),
+ ],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'tap.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.postgresql_psycopg2',
+ 'NAME': 'tapdb',
+ 'USER': 'tapuser',
+ 'PASSWORD': 'Dr@p3rUs3r',
+ 'HOST': 'localhost',
+ 'PORT': '',
+ }
+}
+
+
+# Password validation
+# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/1.9/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/1.9/howto/static-files/
+
+STATIC_URL = '/static/'
+
+# STATIC_ROOT = os.path.join(BASE_DIR, "static/")
+
+STATICFILES_DIRS = (
+ os.path.join(BASE_DIR, "static"),
+)
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/tap/settings/archive/secret2.py
----------------------------------------------------------------------
diff --git a/tap/settings/archive/secret2.py b/tap/settings/archive/secret2.py
new file mode 100644
index 0000000..492f0d6
--- /dev/null
+++ b/tap/settings/archive/secret2.py
@@ -0,0 +1,12 @@
+"""
+Secret Django settings for tap project.
+"""
+
+# SECURITY WARNING: keep the secret key used in production secret!
+MY_SECRET_KEY = 'ro4o76lktk+x)0^fwp^(tua76p2y$p_2*19$gnk8+!)k^er0p='
+MY_DB_NAME = 'tapdb'
+MY_DB_USER = 'tapuser'
+MY_DB_PASSWORD = 'Dr@p3rUs3r'
+
+MY_EMAIL_PASSWORD =''
+ADMIN_EMAILS = (('Steve', 'syork@draper.com'))
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/tap/settings/archive/settings2.py
----------------------------------------------------------------------
diff --git a/tap/settings/archive/settings2.py b/tap/settings/archive/settings2.py
new file mode 100644
index 0000000..92626d3
--- /dev/null
+++ b/tap/settings/archive/settings2.py
@@ -0,0 +1,135 @@
+"""
+Django settings for tap project.
+
+Generated by 'django-admin startproject' using Django 1.9.7.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/1.9/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/1.9/ref/settings/
+"""
+
+import os
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = 'm^7q3z0x9q%)fb6^lo(=%=$=5+g7h2(w8pfhxi0pw_#)xnw(!9'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = []
+
+
+# Application definition
+
+INSTALLED_APPS = [
+ 'appmgr.apps.AppmgrConfig',
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+ #'grappelli',
+]
+
+MIDDLEWARE_CLASSES = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'tap.urls'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [
+ os.path.join(BASE_DIR, 'templates'),
+ ],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'tap.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.postgresql_psycopg2',
+ 'NAME': 'tapdb',
+ 'USER': 'tapuser',
+ 'PASSWORD': 'Dr@perUs3r!',
+ 'HOST': 'localhost',
+ 'PORT': '',
+ }
+}
+
+
+# Password validation
+# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/1.9/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/1.9/howto/static-files/
+
+STATIC_URL = '/static/'
+
+# STATIC_ROOT = os.path.join(BASE_DIR, "static/")
+
+STATICFILES_DIRS = (
+ os.path.join(BASE_DIR, "static"),
+)
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/tap/settings/dev.py
----------------------------------------------------------------------
diff --git a/tap/settings/dev.py b/tap/settings/dev.py
index ef49e67..9847fd0 100644
--- a/tap/settings/dev.py
+++ b/tap/settings/dev.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
"""
Django settings for tap project.
@@ -24,7 +25,7 @@ https://docs.djangoproject.com/en/1.8/ref/settings/
import os
-from base import *
+from settings import *
INSTALLED_APPS += (
'django_extensions',
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/tap/settings/production.py
----------------------------------------------------------------------
diff --git a/tap/settings/production.py b/tap/settings/production.py
index 28495cc..4fbfaa5 100644
--- a/tap/settings/production.py
+++ b/tap/settings/production.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
"""
Django settings for tap project.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/tap/settings/settings.py
----------------------------------------------------------------------
diff --git a/tap/settings/settings.py b/tap/settings/settings.py
new file mode 100755
index 0000000..1011853
--- /dev/null
+++ b/tap/settings/settings.py
@@ -0,0 +1,181 @@
+"""
+Django settings for tap project.
+
+Generated by 'django-admin startproject' using Django 1.9.7.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/1.9/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/1.9/ref/settings/
+"""
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+import os
+from secret import *
+
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = MY_SECRET_KEY
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = ['*']
+
+SITE_ROOT = os.path.realpath(os.path.dirname(os.path.dirname(__file__)))
+
+SITE_ID = 1
+
+# Email integration setup
+EMAIL_USE_TLS = True
+EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
+EMAIL_PORT = 587
+EMAIL_HOST_USER = 'AKIAJJDM2ZC67STGF4IA'
+EMAIL_HOST_PASSWORD = MY_EMAIL_PASSWORD
+
+# Configurable email addresses
+# These are addresses where mail is sent from...
+EMAIL_FROM_NOMINAL_ADDRESS = "onlinetesting@xdataonline.com"
+EMAIL_FROM_ERROR_ADDRESS = "no-reply@xdataonline.com"
+# These are addresses used to send mail to...
+EMAIL_TO_ERROR_ADDRESS = "errors@xdataonline.com"
+
+
+# Application definition
+
+INSTALLED_APPS = (
+ 'grappelli', # must be before django.contrib.admin
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.sites',
+ 'django.contrib.staticfiles',
+ 'custom_user',
+ 'app_mgr',
+ 'axes',
+ 'rest_framework',
+ 'rest_framework.authtoken',
+ 'guardian',
+ 'webpack_loader',
+)
+
+MIDDLEWARE_CLASSES = (
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+ 'django.middleware.security.SecurityMiddleware',
+)
+
+ROOT_URLCONF = 'tap.urls'
+
+AUTHENTICATION_BACKENDS = (
+ 'django.contrib.auth.backends.ModelBackend',
+ 'guardian.backends.ObjectPermissionBackend',
+ )
+GUARDIAN_MONKEY_PATCH = False
+
+AUTH_USER_MODEL = 'app_mgr.UserProfile'
+
+REST_FRAMEWORK = {
+ 'DEFAULT_AUTHENTICATION_CLASSES': (
+ 'rest_framework.authentication.TokenAuthentication',
+ )
+}
+LOGIN_REDIRECT_URL = '/app_mgr/users'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [os.path.join(SITE_ROOT, 'templates')],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'tap.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.postgresql_psycopg2',
+ 'NAME': MY_DB_NAME,
+ 'USER': MY_DB_USER,
+ 'PASSWORD': MY_DB_PASSWORD,
+ 'HOST': 'localhost',
+ 'PORT': '',
+ }
+}
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/1.8/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'America/New_York'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+#STATIC_ROOT = os.path.join(BASE_DIR, '../static')
+
+STATIC_URL = '/static/'
+
+STATICFILES_DIRS = [
+ os.path.join(BASE_DIR, '../static'),
+]
+
+LOGGING = {
+ 'version': 1,
+ 'disable_existing_loggers': True,
+ 'formatters': {
+ 'verbose': {
+ 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
+ },
+ },
+ 'handlers': {
+ 'console': {
+ 'level': 'NOTSET',
+ 'class': 'logging.StreamHandler',
+ 'formatter': 'verbose'
+ }
+ },
+ 'loggers': {
+ '': {
+ 'handlers': ['console'],
+ 'level': 'NOTSET',
+ },
+ 'django.request': {
+ 'handlers': ['console'],
+ 'propagate': False,
+ 'level': 'ERROR'
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/tap/urls.py
----------------------------------------------------------------------
diff --git a/tap/urls.py b/tap/urls.py
index 582735a..eee23c2 100644
--- a/tap/urls.py
+++ b/tap/urls.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
"""tap URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
@@ -26,6 +27,8 @@ Class-based views
Including another URLconf
1. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
+from django.conf import settings
+from django.conf.urls.static import static
from django.conf.urls import include, url
from django.contrib import admin
from django.views.generic import TemplateView
@@ -38,5 +41,8 @@ urlpatterns = [
url(r'^app_mgr/', include('app_mgr.urls', namespace='app_mgr')),
#url(r'^api-auth/', include('rest_framework.urls')), #used for basic authentication (cookies)
url(r'^api-token-auth/', token_views.obtain_auth_token),
- url(r'', TemplateView.as_view(template_name='index.html')),
-]
+ url(r'^$', TemplateView.as_view(template_name='index.html')),
+ ##below are test views
+ url(r'^view2/', TemplateView.as_view(template_name='view2.html')),
+ url(r'^view1/', TemplateView.as_view(template_name='view1.html')),
+] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/tap/wsgi.py
----------------------------------------------------------------------
diff --git a/tap/wsgi.py b/tap/wsgi.py
index c79164d..88859a5 100644
--- a/tap/wsgi.py
+++ b/tap/wsgi.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
"""
WSGI config for tap project.
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/templates/main.html
----------------------------------------------------------------------
diff --git a/templates/main.html b/templates/main.html
new file mode 100644
index 0000000..fc706b4
--- /dev/null
+++ b/templates/main.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Tap Home</title>
+ {% load staticfiles %}
+ <link rel="stylesheet" href="{% static "semantic.min.css" %}">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
+ <!-- <script src="{% static "jquery-3.0.0.min.js" %}"></script> -->
+ <script src="{% static "semantic.min.js" %}"></script>
+ <link href="{% static "styles.min.css" %}" rel="stylesheet">
+</head>
+<body>
+ <div id="main-container">
+ <div id="react-container" />
+ </div>
+ <!-- <script src="{{ STATIC_URL }}js/components/jquery/dist/jquery.min.js"></script>
+ <script src="{{ STATIC_URL }}js/components/bootstrap/dist/js/bootstrap.min.js"></script>
+ <script src="{{ STATIC_URL }}js/es5-shim.min.js"></script> -->
+ <script src="{% static "app.js" %}"></script>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/9cd21f5b/vagrant/settings.py
----------------------------------------------------------------------
diff --git a/vagrant/settings.py b/vagrant/settings.py
new file mode 100644
index 0000000..caa6344
--- /dev/null
+++ b/vagrant/settings.py
@@ -0,0 +1,135 @@
+"""
+Django settings for tap project.
+
+Generated by 'django-admin startproject' using Django 1.9.7.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/1.9/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/1.9/ref/settings/
+"""
+
+import os
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = 'm^7q3z0x9q%)fb6^lo(=%=$=5+g7h2(w8pfhxi0pw_#)xnw(!9'
+#ro4o76lktk+x)0^fwp^(tua76p2y$p_2*19$gnk8+!)k^er0p='
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = []
+
+
+# Application definition
+
+INSTALLED_APPS = [
+ 'appmgr.apps.AppmgrConfig',
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+]
+
+MIDDLEWARE_CLASSES = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'tap.urls'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [
+ os.path.join(BASE_DIR, 'templates'),
+ ],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'tap.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.postgresql_psycopg2',
+ 'NAME': 'tapdb',
+ 'USER': 'tapuser',
+ 'PASSWORD': 'Dr@p3rUs3r',
+ 'HOST': 'localhost',
+ 'PORT': '',
+ }
+}
+
+
+# Password validation
+# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/1.9/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/1.9/howto/static-files/
+
+STATIC_URL = '/static/'
+
+STATIC_ROOT = os.path.join(BASE_DIR, "static")
+
+STATICFILES_DIRS = (
+ os.path.join(BASE_DIR, "static"),
+)