Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
midterm_robo_mommy
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Raul Jarod Conanan
midterm_robo_mommy
Commits
fd121c54
Commit
fd121c54
authored
May 11, 2023
by
RJC
Browse files
Options
Browse Files
Download
Plain Diff
update branch from master
parents
6a21c46c
1bedf6b3
Changes
46
Show whitespace changes
Inline
Side-by-side
Showing
46 changed files
with
521 additions
and
54 deletions
+521
-54
README.txt
README.txt
+13
-1
__init__.py
widget_robo_mommy/Assignments/__init__.py
+0
-0
admin.py
widget_robo_mommy/Assignments/admin.py
+14
-0
apps.py
widget_robo_mommy/Assignments/apps.py
+6
-0
0001_initial.py
widget_robo_mommy/Assignments/migrations/0001_initial.py
+34
-0
0002_alter_assignment_course.py
...my/Assignments/migrations/0002_alter_assignment_course.py
+19
-0
__init__.py
widget_robo_mommy/Assignments/migrations/__init__.py
+0
-0
models.py
widget_robo_mommy/Assignments/models.py
+19
-0
tests.py
widget_robo_mommy/Assignments/tests.py
+3
-0
urls.py
widget_robo_mommy/Assignments/urls.py
+8
-0
views.py
widget_robo_mommy/Assignments/views.py
+18
-0
admin.py
widget_robo_mommy/Dashboard/admin.py
+6
-1
0002_widgetuser.py
widget_robo_mommy/Dashboard/migrations/0002_widgetuser.py
+6
-13
models.py
widget_robo_mommy/Dashboard/models.py
+6
-3
Dashboard.html
...t_robo_mommy/Dashboard/templates/Dashboard/Dashboard.html
+0
-19
urls.py
widget_robo_mommy/Dashboard/urls.py
+2
-3
views.py
widget_robo_mommy/Dashboard/views.py
+18
-5
__init__.py
widget_robo_mommy/announcements/__init__.py
+0
-0
admin.py
widget_robo_mommy/announcements/admin.py
+12
-0
apps.py
widget_robo_mommy/announcements/apps.py
+6
-0
0001_initial.py
widget_robo_mommy/announcements/migrations/0001_initial.py
+35
-0
__init__.py
widget_robo_mommy/announcements/migrations/__init__.py
+0
-0
models.py
widget_robo_mommy/announcements/models.py
+24
-0
tests.py
widget_robo_mommy/announcements/tests.py
+3
-0
urls.py
widget_robo_mommy/announcements/urls.py
+8
-0
views.py
widget_robo_mommy/announcements/views.py
+34
-0
db.sqlite3
widget_robo_mommy/db.sqlite3
+0
-0
admin.py
widget_robo_mommy/forum/admin.py
+1
-2
0003_rename_forumpost_reply_forum_post.py
...orum/migrations/0003_rename_forumpost_reply_forum_post.py
+18
-0
models.py
widget_robo_mommy/forum/models.py
+1
-1
views.py
widget_robo_mommy/forum/views.py
+7
-4
requirements.txt
widget_robo_mommy/requirements.txt
+0
-0
__init__.py
widget_robo_mommy/widget_Calendar/__init__.py
+0
-0
admin.py
widget_robo_mommy/widget_Calendar/admin.py
+14
-0
apps.py
widget_robo_mommy/widget_Calendar/apps.py
+6
-0
0001_initial.py
widget_robo_mommy/widget_Calendar/migrations/0001_initial.py
+23
-0
0002_event_location_delete_indexcard_event_location.py
...ns/0002_event_location_delete_indexcard_event_location.py
+40
-0
0003_alter_event_course.py
...mmy/widget_Calendar/migrations/0003_alter_event_course.py
+20
-0
0004_alter_event_target_datetime.py
...t_Calendar/migrations/0004_alter_event_target_datetime.py
+18
-0
__init__.py
widget_robo_mommy/widget_Calendar/migrations/__init__.py
+0
-0
models.py
widget_robo_mommy/widget_Calendar/models.py
+31
-0
tests.py
widget_robo_mommy/widget_Calendar/tests.py
+3
-0
urls.py
widget_robo_mommy/widget_Calendar/urls.py
+9
-0
views.py
widget_robo_mommy/widget_Calendar/views.py
+25
-0
settings.py
widget_robo_mommy/widget_robo_mommy/settings.py
+6
-1
urls.py
widget_robo_mommy/widget_robo_mommy/urls.py
+5
-1
No files found.
README.txt
View file @
fd121c54
...
...
@@ -3,6 +3,7 @@ CSCI 40 - E SOFTWARE TOOLS AND DEVELOPMENT FRAMEWORKS
MEMBERS:
Bomediano, Al Vincent E. 210924
Conanan, Raul Jarod C. 211591
Hu, Jiuvi Anne Marie Chrystine D. 202539
Hung, Cheska Elise O. 202550
Santuyo, Lance Dominic B. 215335
...
...
@@ -17,10 +18,21 @@ Forum - RJ
Assignments - LANCE
Calendar - AL
DATE_OF_SUBMISSION:
**/**/**
DATE_OF_SUBMISSION:
06/03/2023
GROUP_STATEMENT:
We do solemnly swear that everything here was completely and totally hontou ni done by us.
REFERENCES:
https://stackoverflow.com/questions/26812805/django-convert-utc-to-local-time-zone-in-views
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Home_page
https://docs.djangoproject.com/en/4.1/
SIGNATURES:
(sgd) Bomediano, Al Vincent E. 06/03/2023
(sgd) Conanan, Raul Jarod C. 06/03/2023
(sgd) Hu, Jiuvi Anne Marie Chrystine D. 06/03/2023
(sgd) Hung, Cheska Elise O. 06/03/2023
(sgd) Santuyo, Lance Dominic B. 06/03/2023
widget_robo_mommy/Assignments/__init__.py
0 → 100644
View file @
fd121c54
widget_robo_mommy/Assignments/admin.py
0 → 100644
View file @
fd121c54
from
django.contrib
import
admin
from
.models
import
Assignment
,
Course
class
AssignmentAdmin
(
admin
.
ModelAdmin
):
model
=
Assignment
class
CourseAdmin
(
admin
.
ModelAdmin
):
model
=
Course
admin
.
site
.
register
(
Assignment
,
AssignmentAdmin
)
admin
.
site
.
register
(
Course
,
CourseAdmin
)
widget_robo_mommy/Assignments/apps.py
0 → 100644
View file @
fd121c54
from
django.apps
import
AppConfig
class
AssignmentsConfig
(
AppConfig
):
default_auto_field
=
'django.db.models.BigAutoField'
name
=
'Assignments'
widget_robo_mommy/Assignments/migrations/0001_initial.py
0 → 100644
View file @
fd121c54
# Generated by Django 4.1.7 on 2023-03-04 17:11
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
initial
=
True
dependencies
=
[
]
operations
=
[
migrations
.
CreateModel
(
name
=
'Assignment'
,
fields
=
[
(
'id'
,
models
.
BigAutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'name'
,
models
.
CharField
(
blank
=
True
,
max_length
=
255
,
null
=
True
)),
(
'description'
,
models
.
TextField
(
blank
=
True
,
null
=
True
)),
(
'course'
,
models
.
CharField
(
blank
=
True
,
max_length
=
255
,
null
=
True
)),
(
'perfect_score'
,
models
.
IntegerField
(
blank
=
True
,
null
=
True
)),
(
'passing_score'
,
models
.
IntegerField
(
blank
=
True
,
null
=
True
)),
],
),
migrations
.
CreateModel
(
name
=
'Course'
,
fields
=
[
(
'id'
,
models
.
BigAutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'code'
,
models
.
CharField
(
blank
=
True
,
max_length
=
10
,
null
=
True
)),
(
'title'
,
models
.
CharField
(
blank
=
True
,
max_length
=
255
,
null
=
True
)),
(
'section'
,
models
.
CharField
(
blank
=
True
,
max_length
=
3
,
null
=
True
)),
],
),
]
widget_robo_mommy/Assignments/migrations/0002_alter_assignment_course.py
0 → 100644
View file @
fd121c54
# Generated by Django 4.1.7 on 2023-03-04 17:27
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'Assignments'
,
'0001_initial'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'assignment'
,
name
=
'course'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'Assignments.course'
),
),
]
widget_robo_mommy/Assignments/migrations/__init__.py
0 → 100644
View file @
fd121c54
widget_robo_mommy/Assignments/models.py
0 → 100644
View file @
fd121c54
from
django.db
import
models
class
Course
(
models
.
Model
):
code
=
models
.
CharField
(
max_length
=
10
,
blank
=
True
,
null
=
True
)
title
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
section
=
models
.
CharField
(
max_length
=
3
,
blank
=
True
,
null
=
True
)
class
Assignment
(
models
.
Model
):
name
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
description
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
course
=
models
.
ForeignKey
(
Course
,
on_delete
=
models
.
CASCADE
,
null
=
True
)
perfect_score
=
models
.
IntegerField
(
blank
=
True
,
null
=
True
)
passing_score
=
models
.
IntegerField
(
blank
=
True
,
null
=
True
)
def
save
(
self
,
*
args
,
**
kwargs
):
self
.
passing_score
=
int
(
self
.
perfect_score
*
0.60
)
super
(
Assignment
,
self
)
.
save
(
*
args
,
**
kwargs
)
widget_robo_mommy/Assignments/tests.py
0 → 100644
View file @
fd121c54
from
django.test
import
TestCase
# Create your tests here.
widget_robo_mommy/Assignments/urls.py
0 → 100644
View file @
fd121c54
from
django.urls
import
path
from
.views
import
index
urlpatterns
=
[
path
(
''
,
index
,
name
=
'index'
),
]
app_name
=
"Assignments"
widget_robo_mommy/Assignments/views.py
0 → 100644
View file @
fd121c54
from
django.http
import
HttpResponse
from
.models
import
Assignment
def
index
(
request
):
output
=
f
"Widget's Assignments Page<br><br>"
count
=
Assignment
.
objects
.
all
()
.
count
()
for
i
in
range
(
1
,
count
+
1
):
assignments
=
Assignment
.
objects
.
get
(
id
=
i
)
output
+=
f
"""Assignment Name: {assignments.name}<br>
Description: {assignments.description}<br>
Perfect Score: {assignments.perfect_score}<br>
Passing Score: {assignments.passing_score}<br>
Course/Section: {assignments.course.code} {assignments.course.title}-{assignments.course.section}<br>
<br>"""
return
HttpResponse
(
output
)
widget_robo_mommy/Dashboard/admin.py
View file @
fd121c54
from
django.contrib
import
admin
from
.models
import
Department
from
.models
import
Department
,
WidgetUser
class
DepartmentAdmin
(
admin
.
ModelAdmin
):
...
...
@@ -11,4 +11,9 @@ class DepartmentAdmin(admin.ModelAdmin):
search_fields
=
(
'dept_name'
,
'home_unit'
)
class
WidgetUserAdmin
(
admin
.
ModelAdmin
):
model
=
WidgetUser
admin
.
site
.
register
(
Department
,
DepartmentAdmin
)
admin
.
site
.
register
(
WidgetUser
,
WidgetUserAdmin
)
widget_robo_mommy/Dashboard/migrations/0002_widgetuser.py
View file @
fd121c54
# Generated by Django
3.2 on 2023-03-04 15:37
# Generated by Django
4.1.6 on 2023-03-04 16:34
import
django.contrib.auth.models
from
django.db
import
migrations
,
models
import
django.db.models.deletion
...
...
@@ -8,7 +7,6 @@ import django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'auth'
,
'0012_alter_user_first_name_max_length'
),
(
'Dashboard'
,
'0001_initial'
),
]
...
...
@@ -16,16 +14,11 @@ class Migration(migrations.Migration):
migrations
.
CreateModel
(
name
=
'WidgetUser'
,
fields
=
[
(
'user_ptr'
,
models
.
OneToOneField
(
auto_created
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
parent_link
=
True
,
primary_key
=
True
,
serialize
=
False
,
to
=
'auth.user'
)),
],
options
=
{
'verbose_name'
:
'user'
,
'verbose_name_plural'
:
'users'
,
'abstract'
:
False
,
},
bases
=
(
'auth.user'
,),
managers
=
[
(
'objects'
,
django
.
contrib
.
auth
.
models
.
UserManager
()),
(
'id'
,
models
.
BigAutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'first_name'
,
models
.
CharField
(
max_length
=
50
)),
(
'middle_name'
,
models
.
CharField
(
max_length
=
50
)),
(
'last_name'
,
models
.
CharField
(
max_length
=
50
)),
(
'department'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'Dashboard.department'
)),
],
),
]
widget_robo_mommy/Dashboard/models.py
View file @
fd121c54
from
django.db
import
models
from
django.contrib.auth.models
import
User
class
Department
(
models
.
Model
):
dept_name
=
models
.
CharField
(
max_length
=
50
)
home_unit
=
models
.
CharField
(
max_length
=
100
)
class
WidgetUser
(
User
):
pass
class
WidgetUser
(
models
.
Model
):
first_name
=
models
.
CharField
(
max_length
=
50
)
middle_name
=
models
.
CharField
(
max_length
=
50
)
last_name
=
models
.
CharField
(
max_length
=
50
)
department
=
models
.
ForeignKey
(
Department
,
on_delete
=
models
.
CASCADE
)
\ No newline at end of file
widget_robo_mommy/Dashboard/templates/Dashboard/Dashboard.html
deleted
100644 → 0
View file @
6a21c46c
<!DOCTYPE HTML>
<HTML>
<Head>
<h1>
Welcome to Widget!
</h1>
</Head>
<h2>
WIDGET USERS
</h2>
<ul>
{% for Department in object_list %}
<li>
{{Department.dept_name}}, {{Department.home_unit}}
</li>
{% endfor %}
</ul>
</HTML>
widget_robo_mommy/Dashboard/urls.py
View file @
fd121c54
from
django.urls
import
path
from
.views
import
DashboardView
from
.views
import
Dashboard_list_view
urlpatterns
=
[
path
(
''
,
Dashboard
View
.
as_view
()
),
path
(
''
,
Dashboard
_list_view
,
name
=
'Dashboard_list_view'
),
]
app_name
=
"Dashboard"
\ No newline at end of file
widget_robo_mommy/Dashboard/views.py
View file @
fd121c54
from
.models
import
Department
from
django.views
import
generic
from
.models
import
WidgetUser
,
Department
from
django.http
import
HttpResponse
from
django.shortcuts
import
render
class
DashboardView
(
generic
.
ListView
):
model
=
Department
template_name
=
'Dashboard/Dashboard.html'
def
Dashboard_list_view
(
request
):
html_string_1
=
'<html lang="en"><head><meta charset="UTF-8">'
\
'<h1>Welcome to Widget</h1>'
\
'<h2>WIDGET USERS</h2></head><ul>'
html_string_2
=
''
for
wu
in
WidgetUser
.
objects
.
all
():
html_string_2
+=
'<li>{}, {} {}: {}, {}'
.
format
(
wu
.
last_name
,
wu
.
first_name
,
wu
.
middle_name
,
wu
.
department
.
dept_name
,
wu
.
department
.
home_unit
)
html_string_2
+=
'</ul></li>'
html_string_final
=
html_string_1
+
html_string_2
+
'</html>'
return
HttpResponse
(
html_string_final
)
widget_robo_mommy/announcements/__init__.py
0 → 100644
View file @
fd121c54
widget_robo_mommy/announcements/admin.py
0 → 100644
View file @
fd121c54
from
django.contrib
import
admin
from
.models
import
Announcement
,
Reaction
class
AnnouncementAdmin
(
admin
.
ModelAdmin
):
model
=
Announcement
class
ReactionAdmin
(
admin
.
ModelAdmin
):
model
=
Reaction
# Register your models here.
admin
.
site
.
register
(
Announcement
,
AnnouncementAdmin
)
admin
.
site
.
register
(
Reaction
,
ReactionAdmin
)
\ No newline at end of file
widget_robo_mommy/announcements/apps.py
0 → 100644
View file @
fd121c54
from
django.apps
import
AppConfig
class
AnnouncementsConfig
(
AppConfig
):
default_auto_field
=
'django.db.models.BigAutoField'
name
=
'announcements'
widget_robo_mommy/announcements/migrations/0001_initial.py
0 → 100644
View file @
fd121c54
# Generated by Django 4.1.7 on 2023-03-05 14:21
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
initial
=
True
dependencies
=
[
(
'Dashboard'
,
'0002_widgetuser'
),
]
operations
=
[
migrations
.
CreateModel
(
name
=
'Announcement'
,
fields
=
[
(
'id'
,
models
.
BigAutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'title'
,
models
.
TextField
(
blank
=
True
,
null
=
True
)),
(
'body'
,
models
.
TextField
(
blank
=
True
,
null
=
True
)),
(
'pub_datetime'
,
models
.
DateTimeField
(
null
=
True
)),
(
'author'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'Dashboard.widgetuser'
)),
],
),
migrations
.
CreateModel
(
name
=
'Reaction'
,
fields
=
[
(
'id'
,
models
.
BigAutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'name'
,
models
.
CharField
(
blank
=
True
,
default
=
'Like'
,
max_length
=
5
,
null
=
True
)),
(
'tally'
,
models
.
IntegerField
(
blank
=
True
,
default
=
0
,
null
=
True
)),
(
'announcement'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'announcements.announcement'
)),
],
),
]
widget_robo_mommy/announcements/migrations/__init__.py
0 → 100644
View file @
fd121c54
widget_robo_mommy/announcements/models.py
0 → 100644
View file @
fd121c54
from
django.db
import
models
from
Dashboard.models
import
WidgetUser
class
Announcement
(
models
.
Model
):
title
=
models
.
TextField
(
null
=
True
,
blank
=
True
)
body
=
models
.
TextField
(
null
=
True
,
blank
=
True
)
author
=
models
.
ForeignKey
(
WidgetUser
,
on_delete
=
models
.
CASCADE
,
null
=
True
)
pub_datetime
=
models
.
DateTimeField
(
null
=
True
)
class
Reaction
(
models
.
Model
):
LIKE
=
'Like'
LOVE
=
'Love'
ANGRY
=
'Angry'
REACTION_CHOICES
=
[
(
LIKE
,
'Like'
),
(
LOVE
,
'Love'
),
(
ANGRY
,
'Angry'
),
]
name
=
models
.
CharField
(
max_length
=
5
,
default
=
LIKE
,
null
=
True
,
blank
=
True
)
tally
=
models
.
IntegerField
(
default
=
0
,
null
=
True
,
blank
=
True
)
announcement
=
models
.
ForeignKey
(
Announcement
,
on_delete
=
models
.
CASCADE
,
null
=
True
)
# Create your models here.
widget_robo_mommy/announcements/tests.py
0 → 100644
View file @
fd121c54
from
django.test
import
TestCase
# Create your tests here.
widget_robo_mommy/announcements/urls.py
0 → 100644
View file @
fd121c54
from
django.urls
import
path
from
.views
import
index
urlpatterns
=
[
path
(
''
,
index
,
name
=
'index'
),
]
app_name
=
"announcements"
\ No newline at end of file
widget_robo_mommy/announcements/views.py
0 → 100644
View file @
fd121c54
from
django.shortcuts
import
render
from
django.http
import
HttpResponse
from
.models
import
Announcement
,
Reaction
import
pytz
from
django.utils
import
timezone
def
convert_to_localtime
(
utctime
):
format
=
'
%
d/
%
m/
%
Y
%
I:
%
M
%
p'
utc
=
utctime
.
replace
(
tzinfo
=
pytz
.
UTC
)
localtz
=
utc
.
astimezone
(
timezone
.
get_current_timezone
())
return
localtz
.
strftime
(
format
)
def
index
(
request
):
html_string_1
=
'<html lang="en"><head><meta charset="UTF-8"></head>
\
<b><h1>Widget
\'
s Announcement Board</h1></b>
\
<h2>Announcements:</h2><br/>'
html_string_2
=
""
for
announced
in
Announcement
.
objects
.
all
():
html_string_2
+=
"{} by {} {} published {}:<br />
\
{}<br/>"
.
format
(
announced
.
title
,
announced
.
author
.
first_name
,
announced
.
author
.
last_name
,
convert_to_localtime
(
announced
.
pub_datetime
),
announced
.
body
)
for
reacts
in
announced
.
reaction_set
.
all
():
html_string_2
+=
"{}: {}<br/>"
.
format
(
reacts
.
name
,
reacts
.
tally
)
html_string_2
+=
'<br/>'
html_string_final
=
html_string_1
+
html_string_2
+
"</html>"
return
HttpResponse
(
html_string_final
)
# Create your views here.
widget_robo_mommy/db.sqlite3
0 → 100644
View file @
fd121c54
File added
widget_robo_mommy/forum/admin.py
View file @
fd121c54
from
django.contrib
import
admin
from
.models
import
ForumPost
,
Reply
,
WidgetUser
from
.models
import
ForumPost
,
Reply
# Register your models here.
admin
.
site
.
register
(
ForumPost
)
admin
.
site
.
register
(
Reply
)
admin
.
site
.
register
(
WidgetUser
)
widget_robo_mommy/forum/migrations/0003_rename_forumpost_reply_forum_post.py
0 → 100644
View file @
fd121c54
# Generated by Django 3.2 on 2023-03-06 09:21
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'forum'
,
'0002_auto_20230304_2337'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'reply'
,
old_name
=
'forumpost'
,
new_name
=
'forum_post'
,
),
]
widget_robo_mommy/forum/models.py
View file @
fd121c54
...
...
@@ -11,7 +11,7 @@ class ForumPost(models.Model):
class
Reply
(
models
.
Model
):
forumpost
=
models
.
ForeignKey
(
ForumPost
,
related_name
=
'reply'
,
on_delete
=
models
.
CASCADE
,
null
=
True
)
forum
_
post
=
models
.
ForeignKey
(
ForumPost
,
related_name
=
'reply'
,
on_delete
=
models
.
CASCADE
,
null
=
True
)
body
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
author
=
models
.
ForeignKey
(
WidgetUser
,
on_delete
=
models
.
CASCADE
,
null
=
True
)
pub_datetime
=
models
.
DateTimeField
(
auto_now_add
=
True
)
widget_robo_mommy/forum/views.py
View file @
fd121c54
...
...
@@ -6,8 +6,8 @@ from django.utils import timezone
# helper function to convert utc datetime object to local time
def
convert_utc_to_local
(
utctime
):
datetime_format
=
'
%
d/
%
m/
%
Y
%
I:
%
M
%
p'
def
convert_utc_to_local
(
utctime
,
format
):
datetime_format
=
format
utc
=
utctime
.
replace
(
tzinfo
=
pytz
.
UTC
)
localtz
=
utc
.
astimezone
(
timezone
.
get_current_timezone
())
return
localtz
.
strftime
(
datetime_format
)
...
...
@@ -23,12 +23,15 @@ def forum_post_list_view(request):
' posted <b>{}</b><p>{}</p><ul>'
.
format
(
fp
.
title
,
fp
.
author
.
first_name
,
fp
.
author
.
last_name
,
convert_utc_to_local
(
fp
.
pub_datetime
),
fp
.
body
)
convert_utc_to_local
(
fp
.
pub_datetime
,
'
%
d/
%
m/
%
Y
%
I:
%
M
%
p'
),
fp
.
body
)
for
replies
in
fp
.
reply
.
all
():
html_string_2
+=
'<li> Reply by <b>{} {}</b> '
\
'posted <b>{}</b><p>{}</p></li>'
.
format
(
replies
.
author
.
first_name
,
replies
.
author
.
last_name
,
convert_utc_to_local
(
replies
.
pub_datetime
),
convert_utc_to_local
(
replies
.
pub_datetime
,
'
%
d/
%
m/
%
Y
%
I:
%
M
%
p'
),
replies
.
body
)
html_string_2
+=
'</ul></li>'
html_string_final
=
html_string_1
+
html_string_2
+
'</ul></html>'
...
...
widget_robo_mommy/requirements.txt
0 → 100644
View file @
fd121c54
B
asgiref==3.6.0
widget_robo_mommy/widget_Calendar/__init__.py
0 → 100644
View file @
fd121c54
widget_robo_mommy/widget_Calendar/admin.py
0 → 100644
View file @
fd121c54
from
django.contrib
import
admin
from
.models
import
Location
,
Event
class
LocationAdmin
(
admin
.
ModelAdmin
):
model
=
Location
class
EventAdmin
(
admin
.
ModelAdmin
):
model
=
Event
admin
.
site
.
register
(
Location
,
LocationAdmin
)
admin
.
site
.
register
(
Event
,
EventAdmin
)
widget_robo_mommy/widget_Calendar/apps.py
0 → 100644
View file @
fd121c54
from
django.apps
import
AppConfig
class
WidgetCalendarConfig
(
AppConfig
):
default_auto_field
=
'django.db.models.BigAutoField'
name
=
'widget_Calendar'
widget_robo_mommy/widget_Calendar/migrations/0001_initial.py
0 → 100644
View file @
fd121c54
# Generated by Django 4.1.7 on 2023-03-05 14:22
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
initial
=
True
dependencies
=
[
]
operations
=
[
migrations
.
CreateModel
(
name
=
'IndexCard'
,
fields
=
[
(
'id'
,
models
.
BigAutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'name'
,
models
.
CharField
(
max_length
=
100
)),
(
'section'
,
models
.
CharField
(
max_length
=
5
)),
(
'age'
,
models
.
IntegerField
()),
],
),
]
widget_robo_mommy/widget_Calendar/migrations/0002_event_location_delete_indexcard_event_location.py
0 → 100644
View file @
fd121c54
# Generated by Django 4.1.7 on 2023-03-05 16:24
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'widget_Calendar'
,
'0001_initial'
),
]
operations
=
[
migrations
.
CreateModel
(
name
=
'Event'
,
fields
=
[
(
'id'
,
models
.
BigAutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'target_datetime'
,
models
.
CharField
(
max_length
=
20
)),
(
'activity'
,
models
.
CharField
(
max_length
=
100
)),
(
'estimated_hours'
,
models
.
FloatField
()),
(
'course'
,
models
.
CharField
(
max_length
=
20
)),
],
),
migrations
.
CreateModel
(
name
=
'Location'
,
fields
=
[
(
'id'
,
models
.
BigAutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'mode'
,
models
.
CharField
(
choices
=
[(
'onsite'
,
'Onsite'
),
(
'online'
,
'Online'
),
(
'hybrid'
,
'Hybrid'
)],
max_length
=
6
)),
(
'venue'
,
models
.
CharField
(
max_length
=
100
)),
],
),
migrations
.
DeleteModel
(
name
=
'IndexCard'
,
),
migrations
.
AddField
(
model_name
=
'event'
,
name
=
'location'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'widget_Calendar.location'
),
),
]
widget_robo_mommy/widget_Calendar/migrations/0003_alter_event_course.py
0 → 100644
View file @
fd121c54
# Generated by Django 3.2 on 2023-03-06 08:23
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'Assignments'
,
'0002_alter_assignment_course'
),
(
'widget_Calendar'
,
'0002_event_location_delete_indexcard_event_location'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'event'
,
name
=
'course'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
related_name
=
'event'
,
to
=
'Assignments.course'
),
),
]
widget_robo_mommy/widget_Calendar/migrations/0004_alter_event_target_datetime.py
0 → 100644
View file @
fd121c54
# Generated by Django 3.2 on 2023-03-06 08:37
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'widget_Calendar'
,
'0003_alter_event_course'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'event'
,
name
=
'target_datetime'
,
field
=
models
.
DateTimeField
(),
),
]
widget_robo_mommy/widget_Calendar/migrations/__init__.py
0 → 100644
View file @
fd121c54
widget_robo_mommy/widget_Calendar/models.py
0 → 100644
View file @
fd121c54
from
django.db
import
models
from
Assignments.models
import
Course
MODE_TYPES
=
(
(
'onsite'
,
'Onsite'
),
(
'online'
,
'Online'
),
(
'hybrid'
,
'Hybrid'
),
)
class
Location
(
models
.
Model
):
mode
=
models
.
CharField
(
max_length
=
6
,
choices
=
MODE_TYPES
)
venue
=
models
.
CharField
(
max_length
=
100
)
def
__str__
(
self
):
return
'Mode: {} || Venue: {}'
.
format
(
self
.
mode
,
self
.
venue
)
class
Event
(
models
.
Model
):
target_datetime
=
models
.
DateTimeField
()
activity
=
models
.
CharField
(
max_length
=
100
)
estimated_hours
=
models
.
FloatField
()
location
=
models
.
ForeignKey
(
Location
,
on_delete
=
models
.
CASCADE
)
course
=
models
.
ForeignKey
(
Course
,
related_name
=
'event'
,
on_delete
=
models
.
CASCADE
,
null
=
True
)
def
__str__
(
self
):
return
'{} on {}'
.
format
(
self
.
activity
,
self
.
target_datetime
)
widget_robo_mommy/widget_Calendar/tests.py
0 → 100644
View file @
fd121c54
from
django.test
import
TestCase
# Create your tests here.
widget_robo_mommy/widget_Calendar/urls.py
0 → 100644
View file @
fd121c54
from
django.urls
import
path
from
.views
import
index
urlpatterns
=
[
path
(
''
,
index
,
name
=
'index'
),
]
app_name
=
"widget_Calendar"
widget_robo_mommy/widget_Calendar/views.py
0 → 100644
View file @
fd121c54
from
.models
import
Event
,
Location
from
django.http
import
HttpResponse
from
forum.views
import
convert_utc_to_local
def
index
(
request
):
html_string
=
'robo_mommy’s Calendar of Activities<br>'
for
eventItem
in
Event
.
objects
.
all
():
html_string
+=
'''
<br>
Date and Time: {}<br>
Activity: {}<br>
Estimated Hours: {}<br>
Course/Section: {}<br>
Mode: {}<br>
Venue: {}<br><br>
'''
.
format
(
convert_utc_to_local
(
eventItem
.
target_datetime
,
'
%
d/
%
m/
%
Y|
%
I:
%
M
%
p'
),
eventItem
.
activity
,
eventItem
.
estimated_hours
,
eventItem
.
course
.
code
,
eventItem
.
location
.
mode
,
eventItem
.
location
.
venue
,
)
return
HttpResponse
(
html_string
)
widget_robo_mommy/widget_robo_mommy/settings.py
View file @
fd121c54
...
...
@@ -13,9 +13,11 @@ https://docs.djangoproject.com/en/3.2/ref/settings/
from
pathlib
import
Path
from
dotenv
import
load_dotenv
import
os
DIRNAME
=
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
))
load_dotenv
()
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR
=
Path
(
__file__
)
.
resolve
()
.
parent
.
parent
...
...
@@ -24,7 +26,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY
=
'django-insecure-t*s#_++5=ze
%3
#*ns6vcmt8a5bw6249en-!ek7*#3=p-dkhl_f'
SECRET_KEY
=
os
.
getenv
(
'SECRET_KEY'
)
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG
=
True
...
...
@@ -35,6 +37,8 @@ ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS
=
[
'announcements'
,
'Assignments'
,
'forum.apps.ForumConfig'
,
'Dashboard.apps.DashboardConfig'
,
'django.contrib.admin'
,
...
...
@@ -43,6 +47,7 @@ INSTALLED_APPS = [
'django.contrib.sessions'
,
'django.contrib.messages'
,
'django.contrib.staticfiles'
,
'widget_Calendar'
,
'tz_detect'
,
]
...
...
widget_robo_mommy/widget_robo_mommy/urls.py
View file @
fd121c54
...
...
@@ -14,10 +14,14 @@ Including another URLconf
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from
django.contrib
import
admin
from
django.urls
import
path
,
include
from
django.urls
import
include
,
path
urlpatterns
=
[
path
(
'announcements/'
,
include
(
'announcements.urls'
,
namespace
=
"announcements"
)),
path
(
'widget_Calendar/'
,
include
(
'widget_Calendar.urls'
,
namespace
=
"widget_Calendar"
)),
path
(
'admin/'
,
admin
.
site
.
urls
),
path
(
'Assignments/'
,
include
(
'Assignments.urls'
,
namespace
=
"Assignments"
)),
path
(
''
,
include
((
'forum.urls'
,
'forum'
),
namespace
=
'forum'
)),
path
(
'Dashboard/'
,
include
(
'Dashboard.urls'
,
namespace
=
"Dashboard"
)),
]
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