Skip to content
This repository has been archived by the owner on Aug 24, 2022. It is now read-only.

Commit

Permalink
Mark various entities as obsolete
Browse files Browse the repository at this point in the history
  • Loading branch information
risufaj committed Nov 8, 2018
1 parent 5dcd5d5 commit a6e1fb2
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 6 deletions.
20 changes: 18 additions & 2 deletions flowcell/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django.contrib import admin
from flowcell.models import Sequencer, Flowcell

from django.conf import settings

class LaneInline(admin.TabularInline):
model = Flowcell.lanes.through
Expand Down Expand Up @@ -41,7 +41,23 @@ def has_add_permission(self, request):

@admin.register(Sequencer)
class SequencerAdmin(admin.ModelAdmin):
list_display = ('name', 'lanes', 'lane_capacity',)
list_display = ('name', 'lanes', 'lane_capacity','obsolete_name')
actions = ('mark_as_obsolete', 'mark_as_non_obsolete',)

def mark_as_obsolete(self, request, queryset):
queryset.update(obsolete=settings.OBSOLETE)

mark_as_obsolete.short_description = "Mark sequencer as obsolete"

def mark_as_non_obsolete(self, request, queryset):
queryset.update(obsolete=settings.NON_OBSOLETE)

mark_as_non_obsolete.short_description = "Mark sequencer as non-obsolete"

def obsolete_name(self, obj):
return "Non-obsolete" if obj.obsolete == settings.NON_OBSOLETE else "Obsolete"

obsolete_name.short_description = "STATUS"


@admin.register(Flowcell)
Expand Down
1 change: 1 addition & 0 deletions flowcell/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Sequencer(models.Model):
name = models.CharField('Name', max_length=50)
lanes = models.PositiveSmallIntegerField('Number of Lanes')
lane_capacity = models.PositiveSmallIntegerField('Lane Capacity')
obsolete = models.PositiveIntegerField("Obsolete", default=1)

def __str__(self):
return self.name
Expand Down
3 changes: 2 additions & 1 deletion flowcell/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
PoolListSerializer,
PoolInfoSerializer,
)
from django.conf import settings

ReadLength = apps.get_model('library_sample_shared', 'ReadLength')
IndexI7 = apps.get_model('library_sample_shared', 'IndexI7')
Expand Down Expand Up @@ -75,7 +76,7 @@

class SequencerViewSet(viewsets.ReadOnlyModelViewSet):
""" Get the list of sequencers. """
queryset = Sequencer.objects.all()
queryset = Sequencer.objects.all().filter(obsolete=settings.NON_OBSOLETE)
serializer_class = SequencerSerializer


Expand Down
19 changes: 18 additions & 1 deletion index_generator/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django_admin_listfilter_dropdown.filters import RelatedDropdownFilter

from .models import Pool, PoolSize
from django.conf import settings


class BaseInline(admin.TabularInline):
Expand Down Expand Up @@ -53,4 +54,20 @@ class PoolAdmin(admin.ModelAdmin):

@admin.register(PoolSize)
class PoolSizeAdmin(admin.ModelAdmin):
pass
list_display = ('name', 'obsolete_name')
actions = ('mark_as_obsolete', 'mark_as_non_obsolete',)

def mark_as_obsolete(self, request, queryset):
queryset.update(obsolete=settings.OBSOLETE)

mark_as_obsolete.short_description = "Mark pool size as obsolete"

def mark_as_non_obsolete(self, request, queryset):
queryset.update(obsolete=settings.NON_OBSOLETE)

mark_as_non_obsolete.short_description = "Mark pool size as non-obsolete"

def obsolete_name(self, obj):
return "Non-obsolete" if obj.obsolete == settings.NON_OBSOLETE else "Obsolete"

obsolete_name.short_description = "STATUS"
6 changes: 5 additions & 1 deletion index_generator/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,21 @@
from library.models import Library
from sample.models import Sample


class PoolSize(models.Model):
multiplier = models.PositiveSmallIntegerField('Multiplier', default=1)
size = models.PositiveSmallIntegerField('Size')
obsolete = models.PositiveIntegerField("Obsolete", default=1)

class Meta:
ordering = ['multiplier', 'size']

def __str__(self):
return f'{self.multiplier}x{self.size}'

@property
def name(self):
return f'{self.multiplier}x{self.size}'


class Pool(DateTimeMixin):
name = models.CharField('Name', max_length=100, blank=True)
Expand Down
3 changes: 2 additions & 1 deletion index_generator/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
IndexGeneratorLibrarySerializer,
IndexGeneratorSampleSerializer,
)
from django.conf import settings

Request = apps.get_model('request', 'Request')
IndexI7 = apps.get_model('library_sample_shared', 'IndexI7')
Expand All @@ -32,7 +33,7 @@

class PoolSizeViewSet(viewsets.ReadOnlyModelViewSet):
""" Get the list of pool sizes. """
queryset = PoolSize.objects.all()
queryset = PoolSize.objects.all().filter(obsolete=settings.NON_OBSOLETE)
serializer_class = PoolSizeSerializer


Expand Down

0 comments on commit a6e1fb2

Please sign in to comment.