Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
midterm_casanatics
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
John Aidan Vincent M. Ng
midterm_casanatics
Commits
3f388343
Commit
3f388343
authored
Feb 28, 2023
by
Javi Ng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wrote initial code for urls, models and views
parent
56ce2b71
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
66 additions
and
1 deletion
+66
-1
models.py
widget_casanatics/announcement_board/models.py
+36
-0
urls.py
widget_casanatics/announcement_board/urls.py
+6
-0
views.py
widget_casanatics/announcement_board/views.py
+24
-1
No files found.
widget_casanatics/announcement_board/models.py
View file @
3f388343
from
django.db
import
models
# from dashboard import models as dashboard_models
# Create your models here.
# announcement model
class
Announcement
(
models
.
Model
):
# title of announcement (short description of subject)
title
=
models
.
CharField
(
max_length
=
50
)
# body of announcement (longer text w/ message)
body
=
models
.
CharField
(
max_length
=
500
)
# user who created announcement
author
=
models
.
CharField
(
max_length
=
100
)
# tentative code, if they want us to use widget user from dashboard
# author = models.ForeignKey(dashboard_models.WidgetUser, on_delete = models.CASCADE)
# publication date and time
pub_datetime
=
models
.
DateTimeField
(
"Date and Time Published"
)
def
__str__
(
self
):
return
self
.
title
class
Reaction
(
models
.
Model
):
# name of reaction
name
=
models
.
CharField
(
max_length
=
50
)
# number of reactions on that announcement
tally
=
models
.
IntegerField
(
default
=
0
)
# announcement reaction is associated with
announcement
=
models
.
ForeignKey
(
Announcement
,
on_delete
=
models
.
CASCADE
)
def
__str__
(
self
):
return
self
.
name
\ No newline at end of file
widget_casanatics/announcement_board/urls.py
0 → 100644
View file @
3f388343
from
django.urls
import
path
from
.
import
views
urlpatterns
=
[
path
(
''
,
views
.
announcements
,
name
=
"announcements"
),
]
\ No newline at end of file
widget_casanatics/announcement_board/views.py
View file @
3f388343
from
django.shortcuts
import
render
from
django.http
import
HttpResponse
from
.models
import
Announcement
,
Reaction
# Create your views here.
def
announcements
(
request
):
# retrieve all announcement entries in a list
announcementList
=
Announcement
.
objects
.
all
()
# build response string
response
=
"Widget's Announcement Board <br>"
+
"Announcements:"
for
announcement
in
announcementList
:
# string formatting for date-time
datetime
=
announcement
.
pub_datetime
(
"
%
m/
%
d/
%
Y,
%
I:
%
M
%
p"
)
# list of reactions for announcement
reactions
=
announcement
.
reaction_set
.
all
()
# response proper
response
=
response
+
"<br>"
+
announcement
.
name
+
" by "
+
announcement
.
author
+
" published "
+
datetime
+
": <br>"
response
=
response
+
announcement
.
body
+
"<br>"
# for each reaction, add line with reaction and tally
for
reaction
in
reactions
:
response
=
response
+
reaction
.
name
+
": "
+
reaction
.
tally
+
"<br>"
return
HttpResponse
(
response
)
\ 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