Skip to content

Commit b28e41e

Browse files
authored
Merge pull request #5 from codersforcauses/annabelle-django-workshop
Adding Pet Features
2 parents d70ee3c + d8f517a commit b28e41e

24 files changed

Lines changed: 284 additions & 1 deletion

server/pet/__init__.py

Whitespace-only changes.

server/pet/admin.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from django.contrib import admin
2+
from .models import Pet, Food, Medication
3+
4+
# Register your models here.
5+
admin.site.register(Pet)
6+
admin.site.register(Food)
7+
admin.site.register(Medication)

server/pet/apps.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.apps import AppConfig
2+
3+
4+
class PetConfig(AppConfig):
5+
default_auto_field = 'django.db.models.BigAutoField'
6+
name = 'pet'
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Generated by Django 5.2.8 on 2025-12-05 11:41
2+
3+
import django.db.models.deletion
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
initial = True
10+
11+
dependencies = [
12+
]
13+
14+
operations = [
15+
migrations.CreateModel(
16+
name='Pet',
17+
fields=[
18+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19+
('petName', models.CharField(max_length=50)),
20+
('animalType', models.CharField(max_length=50)),
21+
('birthDate', models.DateField()),
22+
('breed', models.CharField(max_length=50)),
23+
('weight', models.FloatField()),
24+
('exerciseReq', models.FloatField()),
25+
('belongsToHouse', models.CharField(max_length=50)),
26+
('belongsToBusiness', models.CharField(max_length=50)),
27+
],
28+
),
29+
migrations.CreateModel(
30+
name='Medication',
31+
fields=[
32+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
33+
('medName', models.CharField(max_length=50)),
34+
('descr', models.TextField()),
35+
('dosage', models.FloatField()),
36+
('dosageUnit', models.CharField(max_length=5)),
37+
('feedTime', models.TimeField()),
38+
('nextDose', models.DateTimeField()),
39+
('forPet', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='med_for_pet', to='pet.pet')),
40+
],
41+
),
42+
migrations.CreateModel(
43+
name='Food',
44+
fields=[
45+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
46+
('foodName', models.CharField(max_length=50)),
47+
('descr', models.TextField()),
48+
('amount', models.FloatField()),
49+
('amountUnit', models.CharField(max_length=5)),
50+
('feedTime', models.TimeField()),
51+
('forPet', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='food_for_pet', to='pet.pet')),
52+
],
53+
),
54+
]
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Generated by Django 5.2.8 on 2025-12-05 11:51
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('pet', '0001_initial'),
10+
]
11+
12+
operations = [
13+
migrations.RemoveField(
14+
model_name='medication',
15+
name='feedTime',
16+
),
17+
migrations.AlterField(
18+
model_name='food',
19+
name='descr',
20+
field=models.TextField(null=True),
21+
),
22+
migrations.AlterField(
23+
model_name='food',
24+
name='feedTime',
25+
field=models.TimeField(null=True),
26+
),
27+
migrations.AlterField(
28+
model_name='medication',
29+
name='descr',
30+
field=models.TextField(null=True),
31+
),
32+
migrations.AlterField(
33+
model_name='medication',
34+
name='nextDose',
35+
field=models.DateTimeField(null=True),
36+
),
37+
migrations.AlterField(
38+
model_name='pet',
39+
name='belongsToBusiness',
40+
field=models.CharField(max_length=50, null=True),
41+
),
42+
migrations.AlterField(
43+
model_name='pet',
44+
name='belongsToHouse',
45+
field=models.CharField(max_length=50, null=True),
46+
),
47+
migrations.AlterField(
48+
model_name='pet',
49+
name='birthDate',
50+
field=models.DateField(null=True),
51+
),
52+
migrations.AlterField(
53+
model_name='pet',
54+
name='breed',
55+
field=models.CharField(max_length=50, null=True),
56+
),
57+
migrations.AlterField(
58+
model_name='pet',
59+
name='exerciseReq',
60+
field=models.FloatField(null=True),
61+
),
62+
migrations.AlterField(
63+
model_name='pet',
64+
name='weight',
65+
field=models.FloatField(null=True),
66+
),
67+
]

server/pet/migrations/__init__.py

Whitespace-only changes.

server/pet/models.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from django.db import models
2+
3+
# Create your models here.
4+
class Pet(models.Model):
5+
petName = models.CharField(max_length=50)
6+
animalType = models.CharField(max_length=50)
7+
birthDate = models.DateField(null=True)
8+
breed = models.CharField(max_length=50, null=True)
9+
weight = models.FloatField(null=True)
10+
exerciseReq = models.FloatField(null=True)
11+
belongsToHouse = models.CharField(max_length=50, null=True)
12+
belongsToBusiness = models.CharField(max_length=50, null=True)
13+
def __str__(self):
14+
return self.petName
15+
16+
class Food(models.Model):
17+
forPet = models.ForeignKey(Pet, on_delete=models.CASCADE, related_name="food_for_pet")
18+
foodName = models.CharField(max_length=50)
19+
descr = models.TextField(null=True)
20+
amount = models.FloatField()
21+
amountUnit = models.CharField(max_length=5)
22+
feedTime = models.TimeField(null=True)
23+
def __str__(self):
24+
return self.foodName
25+
26+
class Medication(models.Model):
27+
forPet = models.ForeignKey(Pet, on_delete=models.CASCADE, related_name="med_for_pet")
28+
medName = models.CharField(max_length=50)
29+
descr = models.TextField(null=True)
30+
dosage = models.FloatField()
31+
dosageUnit = models.CharField(max_length=5)
32+
nextDose = models.DateTimeField(null=True)
33+
def __str__(self):
34+
return self.medName

server/pet/tests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.test import TestCase
2+
3+
# Create your tests here.

server/pet/urls.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from django.urls import path
2+
3+
from . import views
4+
5+
urlpatterns = [
6+
path("", views.index, name="index"),
7+
]

server/pet/views.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.shortcuts import render
2+
from django.http import HttpResponse
3+
4+
# Create your views here.
5+
def index(request):
6+
return HttpResponse("Hello, world. This is the pet information page of Fetch!, a pet care app.")

0 commit comments

Comments
 (0)