Skip to content

Commit

Permalink
Trademarks list and filters changes (#3477)
Browse files Browse the repository at this point in the history
* Trademarks list and filters changes
  • Loading branch information
Damian Blejwas authored and MarekBleschke committed Aug 7, 2019
1 parent 7cdb237 commit db8ceb3
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 24 deletions.
6 changes: 3 additions & 3 deletions src/ralph/admin/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ def _add_incorrect_value_message(request, label):
)


def custom_title_filter(title):
def custom_title_filter(title, base_class=FieldListFilter):

class CustomTitledFilter(FieldListFilter):
class CustomTitledFilter(base_class):
def __new__(cls, *args, **kwargs):
filter_instance = FieldListFilter.create(*args, **kwargs)
filter_instance = base_class.create(*args, **kwargs)
filter_instance.title = title
return filter_instance

Expand Down
63 changes: 53 additions & 10 deletions src/ralph/trade_marks/admin.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _

from ralph.admin import RalphAdmin, RalphTabularInline, register
from ralph.admin.filters import DateListFilter
from ralph.admin.filters import (
custom_title_filter,
DateListFilter,
RelatedAutocompleteFieldListFilter
)
from ralph.admin.views.extra import RalphDetailViewAdmin
from ralph.attachments.admin import AttachmentsMixin
from ralph.trade_marks.forms import IntellectualPropertyForm
Expand All @@ -13,7 +18,8 @@
TradeMarkAdditionalCountry,
TradeMarkCountry,
TradeMarkRegistrarInstitution,
TradeMarksLinkedDomains
TradeMarksLinkedDomains,
TradeMarkType
)


Expand Down Expand Up @@ -42,13 +48,21 @@ class TradeMarkAdmin(AttachmentsMixin, RalphAdmin):
'technical_owner', 'business_owner', 'holder',
]
list_filter = [
'registrant_number', 'type',
('valid_to', DateListFilter), 'additional_markings',
'holder', 'status'
'registrant_number',
'type',
('valid_from', DateListFilter),
('valid_to', DateListFilter),
'additional_markings',
'holder',
'status',
(
'trademarkadditionalcountry__country',
custom_title_filter('Region', RelatedAutocompleteFieldListFilter)
)
]
list_display = [
'id', 'name', 'registrant_number', 'type',
'valid_to', 'holder', 'status', 'image_tag'
'registrant_number', 'region', 'name', 'registrant_class',
'valid_from', 'valid_to', 'status', 'holder', 'representation',
]
raw_id_fields = [
'business_owner', 'technical_owner', 'holder'
Expand All @@ -57,9 +71,9 @@ class TradeMarkAdmin(AttachmentsMixin, RalphAdmin):
(_('Basic info'), {
'fields': (
'name', 'registrant_number', 'type', 'image', 'image_tag',
'registrant_class', 'valid_to', 'registrar_institution',
'order_number_url', 'additional_markings',
'holder', 'status', 'remarks'
'registrant_class', 'valid_from', 'valid_to',
'registrar_institution', 'order_number_url',
'additional_markings', 'holder', 'status', 'remarks'
)
}),
(_('Ownership info'), {
Expand All @@ -69,6 +83,35 @@ class TradeMarkAdmin(AttachmentsMixin, RalphAdmin):
})
)

def region(self, obj):
return ', '.join(
tm_country.country.name for tm_country in
obj.trademarkadditionalcountry_set.all()
)

def representation(self, obj):
if obj.image:
return self.image_tag(obj)
else:
return TradeMarkType.desc_from_id(obj.type)

representation.allow_tags = True

def image_tag(self, obj):
if not obj.image:
return ""
return mark_safe(
'<img src="%s" width="150" />' % obj.image.url
)

image_tag.short_description = _('Image')
image_tag.allow_tags = True

def get_queryset(self, request):
return super().get_queryset(request).prefetch_related(
'trademarkadditionalcountry_set__country'
)

class TradeMarksAdditionalCountryInline(RalphTabularInline):
model = TradeMarkAdditionalCountry
extra = 1
Expand Down
19 changes: 19 additions & 0 deletions src/ralph/trade_marks/migrations/0006_trademark_valid_from.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('trade_marks', '0005_auto_20190312_0931'),
]

operations = [
migrations.AddField(
model_name='trademark',
name='valid_from',
field=models.DateField(blank=True, null=True),
),
]
16 changes: 5 additions & 11 deletions src/ralph/trade_marks/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from dj.choices import Choices, Country
from django.conf import settings
from django.db import models
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _

from ralph.assets.models import AssetHolder, BaseObject
Expand Down Expand Up @@ -75,6 +74,10 @@ class TradeMarkCountry(
)

def __str__(self):
return self.name

@property
def name(self):
return Country.desc_from_id(self.country)


Expand Down Expand Up @@ -106,6 +109,7 @@ class TradeMark(AdminAbsoluteUrlMixin, BaseObject):
null=False,
max_length=255,
)
valid_from = models.DateField(null=True, blank=True)
valid_to = models.DateField(null=False, blank=False)
business_owner = models.ForeignKey(
settings.AUTH_USER_MODEL,
Expand Down Expand Up @@ -153,16 +157,6 @@ def __str__(self):
self.registrant_class, self.valid_to
)

def image_tag(self):
if not self.image:
return ""
return mark_safe(
'<img src="%s" width="150" />' % self.image.url
)

image_tag.short_description = _('Image')
image_tag.allow_tags = True


class TradeMarksLinkedDomains(models.Model):
trade_mark = models.ForeignKey(TradeMark)
Expand Down

0 comments on commit db8ceb3

Please sign in to comment.