Skip to content

Commit

Permalink
feat: add feedback model
Browse files Browse the repository at this point in the history
Signed-off-by: Kathurima <kathurimakimathi415@gmail.com>
  • Loading branch information
KathurimaKimathi committed Jul 12, 2022
1 parent bde6d55 commit 3314f48
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 1 deletion.
46 changes: 46 additions & 0 deletions mycarehub/common/migrations/0022_feedback.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Generated by Django 3.2.13 on 2022-07-12 11:36

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import mycarehub.common.models.base_models
import mycarehub.utils.general_utils
import uuid


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('common', '0021_auto_20220513_1713'),
]

operations = [
migrations.CreateModel(
name='Feedback',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('active', models.BooleanField(default=True)),
('created', models.DateTimeField(default=django.utils.timezone.now)),
('created_by', models.UUIDField(blank=True, null=True)),
('updated', models.DateTimeField(default=django.utils.timezone.now)),
('updated_by', models.UUIDField(blank=True, null=True)),
('deleted_at', models.DateTimeField(blank=True, null=True)),
('feedback_type', models.CharField(max_length=32)),
('satisfaction_level', models.IntegerField(blank=True, null=True)),
('service_name', models.CharField(blank=True, max_length=32, null=True)),
('feedback', models.TextField(blank=True, null=True)),
('requires_followup', models.BooleanField(default=False)),
('organisation', models.ForeignKey(default=mycarehub.utils.general_utils.default_organisation, on_delete=django.db.models.deletion.PROTECT, related_name='common_feedback_related', to='common.organisation')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
options={
'ordering': ('-updated', '-created'),
'abstract': False,
},
managers=[
('objects', mycarehub.common.models.base_models.AbstractBaseManager()),
],
),
]
18 changes: 18 additions & 0 deletions mycarehub/common/migrations/0023_feedback_phone_number.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.2.13 on 2022-07-12 12:20

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('common', '0022_feedback'),
]

operations = [
migrations.AddField(
model_name='feedback',
name='phone_number',
field=models.CharField(blank=True, max_length=32, null=True),
),
]
18 changes: 18 additions & 0 deletions mycarehub/common/models/common_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -432,3 +432,21 @@ class UserSurveys(AbstractBase):

def __str__(self) -> str:
return f"{self.title}"


class Feedback(AbstractBase):
"""
Feedback Model defines the feedback that is provided to the client or
staff based on flavour.
"""

user = models.ForeignKey(User, on_delete=models.CASCADE)
feedback_type = models.CharField(max_length=32)
satisfaction_level = models.IntegerField(null=True, blank=True)
service_name = models.CharField(max_length=32, null=True, blank=True)
feedback = models.TextField(null=True, blank=True)
requires_followup = models.BooleanField(default=False)
phone_number = models.CharField(max_length=32, null=True, blank=True)

def __str__(self) -> str:
return f"{self.feedback}"
24 changes: 23 additions & 1 deletion mycarehub/common/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,13 @@
is_image_type,
unique_list,
)
from mycarehub.common.models.common_models import Address, Contact, Notification, UserSurveys
from mycarehub.common.models.common_models import (
Address,
Contact,
Feedback,
Notification,
UserSurveys,
)

fake = Faker()

Expand Down Expand Up @@ -735,3 +741,19 @@ def test_user_surveys():
),
)
assert str(response) == "survey_title"


def test_feedback_str():
feedback = baker.make(
Feedback,
feedback_type="GENERAL_FEEDBACK",
satisfaction_level=1,
feedback="Test feedback",
user=baker.make(
get_user_model(), name=fake.name(), organisation=baker.make("common.Organisation")
),
service_name="Test service",
requires_followup=False,
phone_number="+1111111111",
)
assert str(feedback) == "Test feedback"

0 comments on commit 3314f48

Please sign in to comment.