Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2020-045
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2020-045
2020-045
Commits
664b7cd5
Commit
664b7cd5
authored
Jul 05, 2020
by
Janadi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
7/5
parent
745d5d36
Pipeline
#1231
failed with stages
Changes
13
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
210 additions
and
25 deletions
+210
-25
WalkingPatternRecognition/.idea/workspace.xml
WalkingPatternRecognition/.idea/workspace.xml
+9
-4
WalkingPatternRecognition/mobileapp/__pycache__/models.cpython-37.pyc
...rnRecognition/mobileapp/__pycache__/models.cpython-37.pyc
+0
-0
WalkingPatternRecognition/mobileapp/__pycache__/serializers.cpython-37.pyc
...ognition/mobileapp/__pycache__/serializers.cpython-37.pyc
+0
-0
WalkingPatternRecognition/mobileapp/__pycache__/urls.cpython-37.pyc
...ternRecognition/mobileapp/__pycache__/urls.cpython-37.pyc
+0
-0
WalkingPatternRecognition/mobileapp/__pycache__/views.cpython-37.pyc
...ernRecognition/mobileapp/__pycache__/views.cpython-37.pyc
+0
-0
WalkingPatternRecognition/mobileapp/migrations/0002_auto_20200705_1314.py
...cognition/mobileapp/migrations/0002_auto_20200705_1314.py
+53
-0
WalkingPatternRecognition/mobileapp/migrations/0003_auto_20200705_1325.py
...cognition/mobileapp/migrations/0003_auto_20200705_1325.py
+18
-0
WalkingPatternRecognition/mobileapp/migrations/__pycache__/0002_auto_20200705_1314.cpython-37.pyc
...ations/__pycache__/0002_auto_20200705_1314.cpython-37.pyc
+0
-0
WalkingPatternRecognition/mobileapp/migrations/__pycache__/0003_auto_20200705_1325.cpython-37.pyc
...ations/__pycache__/0003_auto_20200705_1325.cpython-37.pyc
+0
-0
WalkingPatternRecognition/mobileapp/models.py
WalkingPatternRecognition/mobileapp/models.py
+4
-1
WalkingPatternRecognition/mobileapp/serializers.py
WalkingPatternRecognition/mobileapp/serializers.py
+1
-1
WalkingPatternRecognition/mobileapp/urls.py
WalkingPatternRecognition/mobileapp/urls.py
+18
-2
WalkingPatternRecognition/mobileapp/views.py
WalkingPatternRecognition/mobileapp/views.py
+107
-17
No files found.
WalkingPatternRecognition/.idea/workspace.xml
View file @
664b7cd5
...
...
@@ -112,6 +112,11 @@
<workItem
from=
"1593489487637"
duration=
"18291000"
/>
<workItem
from=
"1593580025888"
duration=
"15692000"
/>
<workItem
from=
"1593604613208"
duration=
"2398000"
/>
<workItem
from=
"1593748789078"
duration=
"3543000"
/>
<workItem
from=
"1593772870303"
duration=
"654000"
/>
<workItem
from=
"1593847616271"
duration=
"976000"
/>
<workItem
from=
"1593848625328"
duration=
"12035000"
/>
<workItem
from=
"1593928712254"
duration=
"8411000"
/>
</task>
<servers
/>
</component>
...
...
@@ -151,11 +156,11 @@
<screen
x=
"1920"
y=
"0"
width=
"1920"
height=
"1040"
/>
</state>
<state
x=
"2383"
y=
"166"
key=
"SettingsEditor/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040"
timestamp=
"1592973231446"
/>
<state
x=
"
2516"
y=
"304"
key=
"com.intellij.ide.util.TipDialog"
timestamp=
"1593604614794
"
>
<screen
x=
"
1920"
y=
"0"
width=
"1920"
height=
"1040
"
/>
<state
x=
"
477"
y=
"241"
key=
"com.intellij.ide.util.TipDialog"
timestamp=
"1593928731113
"
>
<screen
x=
"
0"
y=
"0"
width=
"1536"
height=
"824
"
/>
</state>
<state
x=
"477"
y=
"241"
key=
"com.intellij.ide.util.TipDialog/0.0.1536.824/1920.0.1920.1040@0.0.1536.824"
timestamp=
"1593489490167"
/>
<state
x=
"2516"
y=
"304"
key=
"com.intellij.ide.util.TipDialog/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040"
timestamp=
"1593
604614794
"
/>
<state
x=
"477"
y=
"241"
key=
"com.intellij.ide.util.TipDialog/0.0.1536.824@0.0.1536.824"
timestamp=
"1593
449912236
"
/>
<state
x=
"2516"
y=
"304"
key=
"com.intellij.ide.util.TipDialog/0.0.1536.824/1920.0.1920.1040@1920.0.1920.1040"
timestamp=
"1593
772875660
"
/>
<state
x=
"477"
y=
"241"
key=
"com.intellij.ide.util.TipDialog/0.0.1536.824@0.0.1536.824"
timestamp=
"1593
928731113
"
/>
</component>
</project>
\ No newline at end of file
WalkingPatternRecognition/mobileapp/__pycache__/models.cpython-37.pyc
View file @
664b7cd5
No preview for this file type
WalkingPatternRecognition/mobileapp/__pycache__/serializers.cpython-37.pyc
View file @
664b7cd5
No preview for this file type
WalkingPatternRecognition/mobileapp/__pycache__/urls.cpython-37.pyc
View file @
664b7cd5
No preview for this file type
WalkingPatternRecognition/mobileapp/__pycache__/views.cpython-37.pyc
View file @
664b7cd5
No preview for this file type
WalkingPatternRecognition/mobileapp/migrations/0002_auto_20200705_1314.py
0 → 100644
View file @
664b7cd5
# Generated by Django 2.2.12 on 2020-07-05 07:44
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django.utils.timezone
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
migrations
.
swappable_dependency
(
settings
.
AUTH_USER_MODEL
),
(
'mobileapp'
,
'0001_initial'
),
]
operations
=
[
migrations
.
CreateModel
(
name
=
'Activity'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'name'
,
models
.
CharField
(
max_length
=
10
)),
(
'activity_id'
,
models
.
IntegerField
()),
],
),
migrations
.
CreateModel
(
name
=
'Dog'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'name'
,
models
.
CharField
(
max_length
=
50
)),
(
'birthday'
,
models
.
DateField
()),
(
'breed'
,
models
.
CharField
(
max_length
=
10
)),
(
'gender'
,
models
.
CharField
(
choices
=
[(
'M'
,
'Male'
),
(
'F'
,
'Female'
),
(
'U'
,
'Unknown'
)],
max_length
=
1
)),
(
'user'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
settings
.
AUTH_USER_MODEL
)),
],
),
migrations
.
CreateModel
(
name
=
'MotionActivityPerDay'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'date'
,
models
.
DateField
(
default
=
django
.
utils
.
timezone
.
now
)),
(
'timePeriod'
,
models
.
IntegerField
()),
(
'week'
,
models
.
IntegerField
(
null
=
True
)),
(
'month'
,
models
.
IntegerField
(
null
=
True
)),
(
'year'
,
models
.
IntegerField
(
null
=
True
)),
(
'activity'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'mobileapp.Activity'
)),
(
'dog'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'mobileapp.Dog'
)),
(
'user'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
settings
.
AUTH_USER_MODEL
)),
],
),
migrations
.
DeleteModel
(
name
=
'user'
,
),
]
WalkingPatternRecognition/mobileapp/migrations/0003_auto_20200705_1325.py
0 → 100644
View file @
664b7cd5
# Generated by Django 2.2.12 on 2020-07-05 07:55
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'mobileapp'
,
'0002_auto_20200705_1314'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'motionactivityperday'
,
name
=
'activity'
,
field
=
models
.
IntegerField
(),
),
]
WalkingPatternRecognition/mobileapp/migrations/__pycache__/0002_auto_20200705_1314.cpython-37.pyc
0 → 100644
View file @
664b7cd5
File added
WalkingPatternRecognition/mobileapp/migrations/__pycache__/0003_auto_20200705_1325.cpython-37.pyc
0 → 100644
View file @
664b7cd5
File added
WalkingPatternRecognition/mobileapp/models.py
View file @
664b7cd5
...
...
@@ -32,8 +32,11 @@ class MotionActivityPerDay(models.Model):
user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
CASCADE
)
dog
=
models
.
ForeignKey
(
Dog
,
on_delete
=
models
.
CASCADE
)
date
=
models
.
DateField
(
default
=
django
.
utils
.
timezone
.
now
)
activity
=
models
.
ForeignKey
(
Activity
,
on_delete
=
models
.
CASCADE
)
activity
=
models
.
IntegerField
(
)
timePeriod
=
models
.
IntegerField
()
week
=
models
.
IntegerField
(
null
=
True
)
month
=
models
.
IntegerField
(
null
=
True
)
year
=
models
.
IntegerField
(
null
=
True
)
def
__str__
(
self
):
"{} - {} - {} - {}"
.
format
(
self
.
dog
,
self
.
date
,
self
.
activity
,
self
.
timePeriod
)
...
...
WalkingPatternRecognition/mobileapp/serializers.py
View file @
664b7cd5
...
...
@@ -44,7 +44,7 @@ class MotionActivityPerDaySerializer(serializers.ModelSerializer):
class
Meta
:
model
=
MotionActivityPerDay
fields
=
(
'user'
,
'dog'
,
'date'
,
'activity'
,
'timePeriod'
)
fields
=
(
'user'
,
'dog'
,
'date'
,
'activity'
,
'timePeriod'
,
'week'
,
'month'
,
'year'
)
...
...
WalkingPatternRecognition/mobileapp/urls.py
View file @
664b7cd5
...
...
@@ -20,11 +20,27 @@ urlpatterns = [
path
(
'deleteMotionActivityPerDay/<int:motion_id>'
,
views
.
delete_motionActivityPerDay
),
path
(
'addActivity'
,
views
.
add_Activity
),
path
(
'getActivityData/<int:activity_id>'
,
views
.
DataBasedOnActivity
),
# Get The details as necessary
path
(
'getActivityData/<int:activity_id>'
,
views
.
DataBasedOnActivity
)
# Walking Data
# Daily
path
(
'getTotalMinutesPerDay'
,
views
.
getTotalMinutesPerDay
),
path
(
'getTotalMinutesPerHour'
,
views
.
getTotalMinutesPerHour
),
path
(
'highlightsPerDay'
,
views
.
highlightsPerDay
),
# Weekly
path
(
'getTotalMinutesPerWeek'
,
views
.
getTotalMinutesPerWeek
),
path
(
'getTotalMinutesPerDay'
,
views
.
getTotalMinutesPerDay
),
path
(
'highlightsPerWeek'
,
views
.
highlightsPerWeek
)
# Monthly
# Annually
# Running Data
...
...
WalkingPatternRecognition/mobileapp/views.py
View file @
664b7cd5
import
json
from
datetime
import
datetime
,
timedelta
from
background_task
import
background
from
django.contrib.auth
import
authenticate
,
login
from
django.contrib.auth.forms
import
UserCreationForm
from
django.contrib.auth.models
import
User
from
django.core.exceptions
import
ObjectDoesNotExist
from
django.http
import
JsonResponse
,
HttpResponse
from
django.http
import
JsonResponse
from
django.shortcuts
import
render
,
redirect
from
django.views.decorators.csrf
import
csrf_exempt
from
rest_framework.views
import
APIView
from
rest_framework.response
import
Response
from
rest_framework
import
status
import
json
from
background_task
import
background
from
.models
import
Dog
,
MotionActivityPerDay
,
Activity
from
.serializers
import
DogSerializer
,
MotionActivityPerDaySerializer
,
ActivitySerializer
from
django.contrib.auth.decorators
import
login_required
from
rest_framework.decorators
import
api_view
,
permission_classes
from
rest_framework.permissions
import
IsAuthenticated
,
IsAdminUser
from
rest_framework.response
import
Response
from
rest_framework.views
import
APIView
from
.models
import
Dog
,
MotionActivityPerDay
,
Activity
from
.serializers
import
DogSerializer
,
MotionActivityPerDaySerializer
,
ActivitySerializer
from
.serializers
import
UserSerializer
from
django.shortcuts
import
render
,
redirect
from
django.contrib.auth.forms
import
UserCreationForm
from
django.contrib.auth.models
import
User
from
TrainingAndTestingData
import
Main
from
django.db.models
import
Sum
,
Subquery
from
datetime
import
datetime
@
background
(
schedule
=
60
)
def
Method
():
print
(
"Hello World!"
)
Main
.
Main
()
def
index
(
request
):
...
...
@@ -178,15 +183,21 @@ def add_motionActivityPerDay(request):
payload
=
json
.
loads
(
request
.
body
)
user
=
request
.
user
dog
=
Dog
.
objects
.
get
(
id
=
payload
[
"dog"
])
activity
=
Activity
.
objects
.
get
(
activity_id
=
payload
[
"activity"
])
# activity = Activity.objects.get(activity_id=payload["activity"])
ConvertedDate
=
datetime
.
strptime
(
payload
[
'date'
],
"
%
Y-
%
m-
%
d"
)
.
date
()
week
=
ConvertedDate
.
isocalendar
()[
1
]
month
=
ConvertedDate
.
month
year
=
ConvertedDate
.
year
try
:
motion
=
MotionActivityPerDay
.
objects
.
create
(
user
=
user
,
dog
=
dog
,
date
=
payload
[
"date"
],
activity
=
activity
,
timePeriod
=
payload
[
"timePeriod"
]
activity
=
payload
[
"activity"
],
timePeriod
=
payload
[
"timePeriod"
],
week
=
week
,
month
=
month
,
year
=
year
)
serializer
=
MotionActivityPerDaySerializer
(
motion
)
return
JsonResponse
({
'motions'
:
serializer
.
data
},
safe
=
False
,
status
=
status
.
HTTP_201_CREATED
)
...
...
@@ -204,6 +215,10 @@ def update_MotionActivityPerDay(request, id):
try
:
item
=
MotionActivityPerDay
.
objects
.
filter
(
id
=
id
)
# returns 1 or 0
ConvertedDate
=
datetime
.
strptime
(
payload
[
'date'
],
"
%
Y-
%
m-
%
d"
)
.
date
()
item
.
week
=
ConvertedDate
.
isocalendar
()[
1
]
item
.
month
=
ConvertedDate
.
month
item
.
year
=
ConvertedDate
.
year
item
.
update
(
**
payload
)
motion
=
MotionActivityPerDay
.
objects
.
get
(
id
=
id
)
serializer
=
MotionActivityPerDaySerializer
(
motion
)
...
...
@@ -234,3 +249,78 @@ def delete_motionActivityPerDay(request, motion_id):
except
Exception
:
return
JsonResponse
({
'error'
:
'Something went wrong'
},
safe
=
False
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
# WALKING
# Daily
@
api_view
([
"GET"
])
@
csrf_exempt
@
permission_classes
([
IsAuthenticated
])
def
getTotalMinutesPerDay
(
request
):
payload
=
json
.
loads
(
request
.
body
)
minutes
=
MotionActivityPerDay
.
objects
.
filter
(
activity_id
=
payload
[
'activity_id'
],
dog_id
=
payload
[
'dog_id'
],
date
=
payload
[
'date'
])
serializer
=
MotionActivityPerDaySerializer
(
minutes
,
many
=
True
)
return
JsonResponse
({
'minutes'
:
len
(
serializer
.
data
)},
safe
=
False
,
status
=
status
.
HTTP_200_OK
)
@
api_view
([
"GET"
])
@
csrf_exempt
@
permission_classes
([
IsAuthenticated
])
def
getTotalMinutesPerHour
(
request
):
payload
=
json
.
loads
(
request
.
body
)
minutes
=
MotionActivityPerDay
.
objects
.
filter
(
activity_id
=
payload
[
'activity_id'
],
dog_id
=
payload
[
'dog_id'
],
date
=
payload
[
'date'
],)
serializer
=
MotionActivityPerDaySerializer
(
minutes
,
many
=
True
)
return
JsonResponse
({
'minutes'
:
len
(
serializer
.
data
)},
safe
=
False
,
status
=
status
.
HTTP_200_OK
)
@
api_view
([
"GET"
])
@
csrf_exempt
@
permission_classes
([
IsAuthenticated
])
def
highlightsPerDay
(
request
):
payload
=
json
.
loads
(
request
.
body
)
ConvertedDate
=
datetime
.
strptime
(
payload
[
'date'
],
"
%
Y-
%
m-
%
d"
)
.
date
()
yesterday
=
ConvertedDate
-
timedelta
(
days
=
1
)
todayActivity
=
MotionActivityPerDay
.
objects
.
filter
(
activity
=
payload
[
'activity'
],
dog
=
payload
[
'dog'
],
date
=
payload
[
'date'
])
yesterdayActivity
=
MotionActivityPerDay
.
objects
.
filter
(
activity
=
payload
[
'activity'
],
dog
=
payload
[
'dog'
],
date
=
yesterday
)
serializer1
=
MotionActivityPerDaySerializer
(
todayActivity
,
many
=
True
)
serializer2
=
MotionActivityPerDaySerializer
(
yesterdayActivity
,
many
=
True
)
return
JsonResponse
({
'TODAY'
:
serializer1
.
data
,
'YESTERDAY'
:
serializer2
.
data
},
safe
=
False
,
status
=
status
.
HTTP_200_OK
)
# Weekly
@
api_view
([
"GET"
])
@
csrf_exempt
@
permission_classes
([
IsAuthenticated
])
def
getTotalMinutesPerWeek
(
request
):
payload
=
json
.
loads
(
request
.
body
)
ConvertedDate
=
datetime
.
strptime
(
payload
[
'date'
],
"
%
Y-
%
m-
%
d"
)
.
date
()
week
=
ConvertedDate
.
isocalendar
()[
1
]
entries
=
MotionActivityPerDay
.
objects
.
filter
(
activity
=
payload
[
'activity'
],
dog
=
payload
[
'dog'
],
week
=
week
)
serializer
=
MotionActivityPerDaySerializer
(
entries
,
many
=
True
)
# Find the Sum
return
JsonResponse
({
'minutes'
:
serializer
.
data
},
safe
=
False
,
status
=
status
.
HTTP_200_OK
)
@
api_view
([
"GET"
])
@
csrf_exempt
@
permission_classes
([
IsAuthenticated
])
def
highlightsPerWeek
(
request
):
payload
=
json
.
loads
(
request
.
body
)
ConvertedDate
=
datetime
.
strptime
(
payload
[
'date'
],
"
%
Y-
%
m-
%
d"
)
.
date
()
week
=
ConvertedDate
.
isocalendar
()[
1
]
thisWeekEntries
=
MotionActivityPerDay
.
objects
.
filter
(
activity
=
payload
[
'activity'
],
dog
=
payload
[
'dog'
],
week
=
week
)
previousWeek
=
week
-
1
lastWeekEntries
=
MotionActivityPerDay
.
objects
.
filter
(
activity
=
payload
[
'activity'
],
dog
=
payload
[
'dog'
],
week
=
previousWeek
)
serializer1
=
MotionActivityPerDaySerializer
(
thisWeekEntries
,
many
=
True
)
serializer2
=
MotionActivityPerDaySerializer
(
lastWeekEntries
,
many
=
True
)
return
JsonResponse
({
'this week'
:
serializer1
.
data
,
'last week'
:
serializer2
.
data
},
safe
=
False
,
status
=
status
.
HTTP_200_OK
)
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment