Commit 86fc90f3 authored by Marco Anton O. Paeldon's avatar Marco Anton O. Paeldon

Merge branch 'announcement_app' into 'master'

Announcement app

See merge request !4
parents b49eea13 910d291d
......@@ -7,6 +7,7 @@ BS Computer Science CSCI 40-E
Amador, John Michael T. 206105
Andrada, Alvin Joshua M. 195478
Fausto, Brendan Gabrielle M. 202033
Paeldon, Marco Anton O. 193752
# project title;
Widget v1
......@@ -15,6 +16,7 @@ Widget v1
Amador - Assignments App
Andrada - Calendar App
Fausto - Dashboard App
Paeldon- Announcements App
# date of submission;
4 March 2023
......@@ -29,3 +31,4 @@ This project was accomplished truthfully only by the people whose names are list
John Michael T. Amador (sgd) February 28, 2023
Alvin Joshua M. Andrada (sgd) March 2, 2023
Brendan Gabrielle M. Fausto (sgd) March 6, 2023
Marco Anton O. Paeldon (sgd) March 6, 2023
\ No newline at end of file
from django.contrib import admin
from .models import Announcement, Reaction
class AnnouncementAdmin(admin.ModelAdmin):
model = Announcement
list_display = ('title', 'body', 'author',)
class ReactionAdmin(admin.ModelAdmin):
model = Reaction
list_display = ('name', 'tally', 'announcement',)
admin.site.register(Announcement, AnnouncementAdmin)
admin.site.register(Reaction, ReactionAdmin)
\ No newline at end of file
from django.apps import AppConfig
class AnnouncementsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'announcements'
# Generated by Django 4.1.7 on 2023-03-05 14:22
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('dashboard', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Announcement',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=255, null=True)),
('body', models.TextField(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(max_length=255, null=True)),
('tally', models.IntegerField(null=True)),
('announcement', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='announcements.announcement')),
],
),
]
from django.db import models
from dashboard.models import WidgetUser
class Announcement(models.Model):
title = models.CharField(max_length=255, null=True)
body = models.TextField(null=True)
author = models.ForeignKey('dashboard.WidgetUser', on_delete=models.CASCADE, null=True)
pub_datetime = models.DateTimeField(null=True)
def __str__(self):
return f"{self.title}"
class Reaction(models.Model):
name = models.CharField(max_length=255, null=True)
tally = models.IntegerField(null=True)
announcement = models.ForeignKey(Announcement, on_delete=models.CASCADE, null=True)
def __str__(self):
return f"{self.name}"
\ No newline at end of file
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 = "announcements"
\ No newline at end of file
from django.shortcuts import render
from django.http import HttpResponse
from .models import Announcement, Reaction
import datetime
def index(request):
overall_board = "<html><title>Announcement Board</title><body>" \
"<h1> Widget's Announcement Board</h1>"
overall_board += "Announcements:"
for announcement in Announcement.objects.all():
overall_board += "<br>%s by " %announcement.title
overall_board += "%s " %announcement.author.first_name
overall_board += "%s published " %announcement.author.last_name
overall_board += "%s, " %announcement.pub_datetime.date().strftime("%m/%d/%Y")
overall_board += "%s<br>" %announcement.pub_datetime.time().strftime("%I:%M %p")
overall_board += "%s<br>" %announcement.body
for reaction in Reaction.objects.all():
if reaction.announcement == announcement:
overall_board += "%s: " %reaction.name
overall_board += "%i<br>" %reaction.tally
overall_board += "</body></html>"
return HttpResponse(overall_board)
\ No newline at end of file
No preview for this file type
......@@ -38,6 +38,7 @@ INSTALLED_APPS = [
'django.contrib.messages',
'django.contrib.staticfiles',
'dashboard',
'announcements',
]
MIDDLEWARE = [
......
......@@ -19,4 +19,5 @@ from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('dashboard/', include('dashboard.urls', namespace="dashboard")),
path('announcements/', include('announcements.urls', namespace="announcements")),
]
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