Fakultas Ilmu Komputer UI
Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
PMPL
Class Project
DIGIPUS
Commits
1b96a05c
Commit
1b96a05c
authored
Oct 14, 2020
by
Nandhika Prayoga
Browse files
[
#41
] Material: Random Material List
parent
fc2849fa
Changes
3
Hide whitespace changes
Inline
Side-by-side
app/templates/app/katalog_materi.html
View file @
1b96a05c
...
...
@@ -75,7 +75,9 @@
</div>
</header>
<a
href=
"/download-history/"
class=
"btn-history"
>
Riwayat Unduh
</a><br><br>
<a
href=
"/download-history/"
class=
"btn-history"
>
Riwayat Unduh
</a><br><br>
<a
href=
"?random=1"
class=
"btn-history"
>
Acak Materi
</a><br><br>
<div
class=
"container"
>
<div
class=
"row content"
>
...
...
app/tests.py
View file @
1b96a05c
...
...
@@ -2274,6 +2274,49 @@ class MateriModelTest(TestCase):
Like
.
objects
.
create
(
timestamp
=
datetime
.
now
(),
materi
=
self
.
materi
,
session_id
=
"dummysessionid2"
)
self
.
assertEqual
(
2
,
self
.
materi
.
like_count
)
class
RandomizedMateriTest
(
TestCase
):
def
setUp
(
self
):
self
.
contributor
=
User
.
objects
.
create
(
email
=
"kontributor@gov.id"
,
password
=
"passwordtest"
,
name
=
"kontributor"
,
is_contributor
=
True
)
self
.
cover
=
SimpleUploadedFile
(
"ExampleCover221.jpg"
,
b
"Test file"
)
self
.
content
=
SimpleUploadedFile
(
"ExampleFile221.pdf"
,
b
"Test file"
)
self
.
materi
=
Materi
.
objects
.
create
(
title
=
"Materi 1"
,
author
=
"Nandhika"
,
uploader
=
self
.
contributor
,
publisher
=
"Kelas SC"
,
descriptions
=
"Deskripsi Materi 1"
,
status
=
"APPROVE"
,
cover
=
self
.
cover
,
content
=
self
.
content
,
date_modified
=
datetime
.
now
(),
date_created
=
datetime
.
now
(),
)
self
.
materi
=
Materi
.
objects
.
create
(
title
=
"Materi 2"
,
author
=
"Prayoga"
,
uploader
=
self
.
contributor
,
publisher
=
"Kelas SC"
,
descriptions
=
"Deskripsi Materi 2"
,
status
=
"APPROVE"
,
cover
=
self
.
cover
,
content
=
self
.
content
,
date_modified
=
datetime
.
now
(),
date_created
=
datetime
.
now
(),
)
def
test_randomized_materi_returns_200
(
self
):
response
=
Client
().
get
(
"/?random=1"
)
self
.
assertEqual
(
response
.
status_code
,
200
)
def
test_randomized_materi_remains_same_materi
(
self
):
response
=
Client
().
get
(
"/?random=1"
)
self
.
assertIn
(
"Materi 1"
,
response
.
content
.
decode
())
self
.
assertIn
(
"Materi 2"
,
response
.
content
.
decode
())
class
YearChoicesTest
(
TestCase
):
def
test_release_year_contains_the_right_current_year
(
self
):
...
...
app/views.py
View file @
1b96a05c
...
...
@@ -39,6 +39,7 @@ from django.contrib import messages
from
pydrive.auth
import
GoogleAuth
from
pydrive.drive
import
GoogleDrive
from
pydrive.auth
import
AuthenticationRejected
import
random
def
permission_denied
(
request
,
exception
,
template_name
=
"error_403.html"
):
return
defaults
.
permission_denied
(
request
,
exception
,
template_name
)
...
...
@@ -96,6 +97,10 @@ class DaftarKatalog(TemplateView):
elif
(
getSort
==
"jumlah_unduh"
):
lstMateri
=
lstMateri
.
annotate
(
count
=
Count
(
'unduh__id'
)).
order_by
(
'-count'
)
should_random
=
bool
(
request
.
GET
.
get
(
"random"
))
if
should_random
:
lstMateri
=
random
.
sample
(
list
(
lstMateri
),
len
(
lstMateri
))
context
[
"materi_list"
]
=
lstMateri
paginator
=
Paginator
(
context
[
"materi_list"
],
15
)
page_number
=
request
.
GET
.
get
(
"page"
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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