Commit 3f388343 authored by Javi Ng's avatar Javi Ng

wrote initial code for urls, models and views

parent 56ce2b71
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
from django.urls import path
from . import views
urlpatterns = [
path('', views.announcements, name="announcements"),
]
\ No newline at end of file
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
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