Commit 053dbebe authored by Jiuvi Anne Hu's avatar Jiuvi Anne Hu

pulled from master

parents a6302158 af93c29a
*.env
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (midterm_robo_mommy)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
......@@ -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) Conanan, Raul Jarod C. 06/03/2023
(sgd) Hu, Jiuvi Anne Marie Chrystine D. 06/03/2023
(sgd) Santuyo, Lance Dominic B. 06/03/2023
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)
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)
......
from django.shortcuts import render
from django.http import HttpResponse
from .models import Assignment, Course
import os
from .models import Assignment
def index(request):
......
......@@ -6,7 +6,7 @@ from django.utils import timezone
def convert_to_localtime(utctime):
format = '%d/%m/%Y %H:%M'
format = '%d/%m/%Y %I:%M %p'
utc = utctime.replace(tzinfo=pytz.UTC)
localtz = utc.astimezone(timezone.get_current_timezone())
return localtz.strftime(format)
......@@ -19,12 +19,13 @@ def index(request):
html_string_2 = ""
for announced in Announcement.objects.all():
html_string_2 += "{} by {} {} published {}:\
{}".format(announced.title, announced.author.first_name,
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.all():
html_string_2 += "{}: {}".format(reacts.name, reacts.tally)
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>"
......
# 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',
),
]
......@@ -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)
......@@ -4,10 +4,9 @@ from .models import ForumPost
import pytz
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 %H:%M'
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 +22,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>'
......
SECRET_KEY = 'django-insecure-t*s#_++5=ze%3#*ns6vcmt8a5bw6249en-!ek7*#3=p-dkhl_f'
\ No newline at end of file
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)
from django.apps import AppConfig
class WidgetCalendarConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'widget_Calendar'
# 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()),
],
),
]
# 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'),
),
]
# 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'),
),
]
# 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(),
),
]
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)
from django.test import TestCase
# Create your tests here.
from django.urls import path
from .views import index
urlpatterns = [
path('', index, name='index'),
]
app_name = "widget_Calendar"
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)
......@@ -26,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
......@@ -47,6 +47,8 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'widget_Calendar',
'tz_detect',
]
MIDDLEWARE = [
......
......@@ -15,10 +15,11 @@ Including another URLconf
"""
from django.contrib import admin
from django.urls import include, path
from django.urls import path, include
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')),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment