Skip to content

Commit

Permalink
Merge 2abe767 into ed2ed76
Browse files Browse the repository at this point in the history
  • Loading branch information
ad-m committed Jan 29, 2021
2 parents ed2ed76 + 2abe767 commit 7a8c2a8
Show file tree
Hide file tree
Showing 39 changed files with 908 additions and 49 deletions.
1 change: 1 addition & 0 deletions config/settings/common.py
Expand Up @@ -58,6 +58,7 @@
"feder.institutions",
"feder.monitorings",
"feder.cases",
"feder.cases_tags",
"feder.letters",
"feder.main",
"feder.alerts",
Expand Down
1 change: 1 addition & 0 deletions feder/alerts/templates/alerts/base_alert.html
Expand Up @@ -20,6 +20,7 @@
<a itemprop="item" href="{% url 'alerts:list' monitoring=object.monitoring.pk %}">
<span itemprop="name">{% trans 'Alerts index' %}</span>
</a>
</li>
<li
itemprop="itemListElement"
itemscope
Expand Down
11 changes: 11 additions & 0 deletions feder/cases/factories.py
Expand Up @@ -15,6 +15,17 @@ class CaseFactory(factory.django.DjangoModelFactory):
def monitoring(self):
return MonitoringFactory(user=self.user)

@factory.post_generation
def tags(self, create, extracted, **kwargs):
if not create:
# Simple build, do nothing.
return

if extracted:
# A list of tags were passed in, use them
for tag in extracted:
self.tags.add(tag)

class Meta:
model = Case

Expand Down
11 changes: 8 additions & 3 deletions feder/cases/forms.py
Expand Up @@ -2,8 +2,8 @@
from braces.forms import UserKwargModelFormMixin
from dal import autocomplete
from django import forms

from .models import Case
from feder.cases_tags.models import Tag


class CaseForm(SingleButtonMixin, UserKwargModelFormMixin, forms.ModelForm):
Expand All @@ -14,9 +14,14 @@ def __init__(self, *args, **kwargs):
if self.monitoring:
self.instance.monitoring = self.monitoring

monitoring = self.monitoring or getattr(self.instance, "monitoring")
if monitoring:
self.fields["tags"].queryset = Tag.objects.for_monitoring(monitoring).all()

class Meta:
model = Case
fields = ["name", "institution"]
fields = ["name", "institution", "tags"]
widgets = {
"institution": autocomplete.ModelSelect2(url="institutions:autocomplete")
"institution": autocomplete.ModelSelect2(url="institutions:autocomplete"),
"tags": forms.CheckboxSelectMultiple,
}
Binary file modified feder/cases/locale/pl/LC_MESSAGES/django.mo
Binary file not shown.
10 changes: 7 additions & 3 deletions feder/cases/locale/pl/LC_MESSAGES/django.po
Expand Up @@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: cases 0.1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-08 15:10+0000\n"
"PO-Revision-Date: 2018-02-28 01:34+0100\n"
"POT-Creation-Date: 2021-01-29 00:45+0000\n"
"PO-Revision-Date: 2021-01-29 01:45+0100\n"
"Last-Translator: Adam Dobrawy <naczelnik@jawnosc.tk>\n"
"Language-Team: Adam Dobrawy <naczelnik@jawnosc.tk>\n"
"Language: pl_PL\n"
Expand Down Expand Up @@ -40,7 +40,11 @@ msgstr "Monitoring"
msgid "Institution"
msgstr "Instytucja"

#: models.py:83 models.py:84 models.py:101
#: models.py:81
msgid "Tags"
msgstr "Tagi"

#: models.py:86 models.py:87 models.py:104
msgid "Case"
msgstr "Sprawa"

Expand Down
21 changes: 21 additions & 0 deletions feder/cases/migrations/0011_case_tags.py
@@ -0,0 +1,21 @@
# Generated by Django 2.2.17 on 2021-01-28 17:43

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("cases_tags", "0001_initial"),
("cases", "0010_auto_20200327_0040"),
]

operations = [
migrations.AddField(
model_name="case",
name="tags",
field=models.ManyToManyField(
blank=True, to="cases_tags.Tag", verbose_name="Tags"
),
),
]
3 changes: 3 additions & 0 deletions feder/cases/models.py
Expand Up @@ -77,6 +77,9 @@ class Case(TimeStampedModel):
verbose_name="Mass assign ID", blank=True, null=True, editable=False
)
email = models.CharField(max_length=75, db_index=True)
tags = models.ManyToManyField(
to="cases_tags.Tag", verbose_name=_("Tags"), blank=True
)
objects = CaseQuerySet.as_manager()

class Meta:
Expand Down
2 changes: 1 addition & 1 deletion feder/cases/tests.py
Expand Up @@ -11,7 +11,7 @@
from .factories import CaseFactory, AliasFactory
from .forms import CaseForm
from .views import CaseAutocomplete
from feder.teryt.factories import JSTFactory, CommunityJSTFactory, CountyJSTFactory
from feder.teryt.factories import CommunityJSTFactory, CountyJSTFactory


class ObjectMixin:
Expand Down
Empty file added feder/cases_tags/__init__.py
Empty file.
12 changes: 12 additions & 0 deletions feder/cases_tags/admin.py
@@ -0,0 +1,12 @@
from django.contrib import admin
from .models import Tag


@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
pass
list_display = [
"pk",
"name",
"monitoring",
]
5 changes: 5 additions & 0 deletions feder/cases_tags/apps.py
@@ -0,0 +1,5 @@
from django.apps import AppConfig


class TagsConfig(AppConfig):
name = "feder.cases_tags"
17 changes: 17 additions & 0 deletions feder/cases_tags/factories.py
@@ -0,0 +1,17 @@
import factory

from feder.monitorings.factories import MonitoringFactory
from .models import Tag


class TagFactory(factory.django.DjangoModelFactory):
monitoring = factory.SubFactory(MonitoringFactory)
name = factory.Sequence("tag-{}".format)

class Meta:
model = Tag


class GlobalTagFactory(TagFactory):
name = factory.Sequence("global-tag-{}".format)
monitoring = None
13 changes: 13 additions & 0 deletions feder/cases_tags/filters.py
@@ -0,0 +1,13 @@
import django_filters

from .models import Tag


class TagFilter(django_filters.FilterSet):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.filters["name"].lookup_expr = "icontains"

class Meta:
model = Tag
fields = ["name"]
16 changes: 16 additions & 0 deletions feder/cases_tags/forms.py
@@ -0,0 +1,16 @@
from atom.ext.crispy_forms.forms import SingleButtonMixin
from braces.forms import UserKwargModelFormMixin
from django import forms
from .models import Tag


class TagForm(SingleButtonMixin, UserKwargModelFormMixin, forms.ModelForm):
def __init__(self, *args, **kwargs):
self.monitoring = kwargs.pop("monitoring", None)
super().__init__(*args, **kwargs)
if self.monitoring:
self.instance.monitoring = self.monitoring

class Meta:
model = Tag
fields = ["name"]
Binary file added feder/cases_tags/locale/pl/LC_MESSAGES/django.mo
Binary file not shown.
98 changes: 98 additions & 0 deletions feder/cases_tags/locale/pl/LC_MESSAGES/django.po
@@ -0,0 +1,98 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-29 00:43+0000\n"
"PO-Revision-Date: 2021-01-29 01:44+0100\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"Last-Translator: \n"
"Language-Team: \n"
"X-Generator: Poedit 1.8.7.1\n"

#: models.py:24
msgid "Keep blank to make global"
msgstr "Pozostaw puste, aby uczynić globalnym"

#: models.py:26
msgid "Name"
msgstr "Nazwa"

#: models.py:27
msgid "Slug"
msgstr "Identyfikator redakcyjny"

#: models.py:43
msgid "Tag"
msgstr "Tag"

#: models.py:44
msgid "Tags"
msgstr "Tagi"

#: templates/cases_tags/_btn.html:10
msgid "Edit"
msgstr "Edytuj"

#: templates/cases_tags/_btn.html:15
msgid "Delete"
msgstr "Usuń"

#: templates/cases_tags/_btn.html:20
msgid "Create"
msgstr "Utwórz"

#: templates/cases_tags/base_tag.html:13 templates/cases_tags/base_tag.html:24
msgid "Tags index"
msgstr "Wykaz tagów"

#: templates/cases_tags/tag_confirm_delete.html:9
msgid "Confirm delete"
msgstr "Potwierdzenie usunięcia"

#: templates/cases_tags/tag_form.html:24
msgid "Add tag"
msgstr "Dodaj tag"

#: urls.py:8
msgid "^monitoring-(?P<monitoring>[\\d]+)$"
msgstr "^monitoring-(?P<monitoring>[\\d]+)$"

#: urls.py:13
msgid "^monitoring-(?P<monitoring>[\\d]+)/~create$"
msgstr "^monitoring-(?P<monitoring>[\\d]+)/~create$"

#: urls.py:18
msgid "^monitoring-(?P<monitoring>[\\d]+)/~autocomplete$"
msgstr "^monitoring-(?P<monitoring>[\\d]+)/~autocomplete$"

#: urls.py:23
msgid "^monitoring-(?P<monitoring>[\\d]+)/(?P<pk>[\\d]+)$"
msgstr "^monitoring-(?P<monitoring>[\\d]+)/(?P<pk>[\\d]+)$"

#: urls.py:28
msgid "^monitoring-(?P<monitoring>[\\d]+)/(?P<pk>[\\d]+)/~update$"
msgstr "^monitoring-(?P<monitoring>[\\d]+)/(?P<pk>[\\d]+)/~update$"

#: urls.py:33
msgid "^monitoring-(?P<monitoring>[\\d]+)/(?P<pk>[\\d]+)/~delete$"
msgstr "^monitoring-(?P<monitoring>[\\d]+)/(?P<pk>[\\d]+)/~delete$"

#: views.py:29
msgid "Tag index"
msgstr "Wykaz tagów"

#: views.py:102
#, python-brace-format
msgid "{object} deleted!"
msgstr "{object} usunięty!"
76 changes: 76 additions & 0 deletions feder/cases_tags/migrations/0001_initial.py
@@ -0,0 +1,76 @@
# Generated by Django 2.2.17 on 2021-01-28 17:43

import autoslug.fields
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import model_utils.fields


class Migration(migrations.Migration):

initial = True

dependencies = [
("monitorings", "0018_auto_20200711_2201"),
]

operations = [
migrations.CreateModel(
name="Tag",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"created",
model_utils.fields.AutoCreatedField(
default=django.utils.timezone.now,
editable=False,
verbose_name="created",
),
),
(
"modified",
model_utils.fields.AutoLastModifiedField(
default=django.utils.timezone.now,
editable=False,
verbose_name="modified",
),
),
(
"name",
models.CharField(
db_index=True, max_length=250, unique=True, verbose_name="Name"
),
),
(
"slug",
autoslug.fields.AutoSlugField(
editable=False, populate_from="name", verbose_name="Slug"
),
),
(
"monitoring",
models.ForeignKey(
blank=True,
help_text="Keep blank to make global",
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="monitorings.Monitoring",
),
),
],
options={
"verbose_name": "Tag",
"verbose_name_plural": "Tags",
"ordering": ["name"],
},
),
]
23 changes: 23 additions & 0 deletions feder/cases_tags/migrations/0002_auto_20210129_0052.py
@@ -0,0 +1,23 @@
# Generated by Django 2.2.17 on 2021-01-29 00:52

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("monitorings", "0019_auto_20210128_2204"),
("cases_tags", "0001_initial"),
]

operations = [
migrations.AlterField(
model_name="tag",
name="name",
field=models.CharField(db_index=True, max_length=250, verbose_name="Name"),
),
migrations.AlterUniqueTogether(
name="tag",
unique_together={("monitoring", "name")},
),
]
Empty file.

0 comments on commit 7a8c2a8

Please sign in to comment.