Skip to content

Commit

Permalink
Merge pull request #22 from gabrielbazan/development
Browse files Browse the repository at this point in the history
Repositories Logical Deletion
  • Loading branch information
gabrielbazan committed Oct 31, 2018
2 parents f4100aa + 5493dd1 commit a2f9660
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lycheepy/configuration/configuration/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,9 +178,10 @@ class RepositoryTypeSetting(Model):
class Repository(Model):
__tablename__ = 'repository'
id = Column(Integer, primary_key=True)
name = Column(Text, nullable=False, unique=True)
name = Column(Text, unique=True)
created = Column(DateTime, default=func.now())
enabled = Column(Boolean, nullable=False, default=True)
deleted = Column(Boolean, nullable=False, default=False)
type_id = Column(Integer, ForeignKey('repository_type.id'), nullable=False)
type = relationship('RepositoryType', backref='repositories')

Expand Down
12 changes: 12 additions & 0 deletions lycheepy/configuration/configuration/serializers/repository.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from simplyrestful.database import session
from simplyrestful.serializers import Serializer
from models import Repository, RepositoryType, RepositoryConfiguration, RepositoryTypeSetting, RepositorySetting
from validators import RepositoryValidator
Expand All @@ -11,6 +12,7 @@ def serialize(self, instance):
serialized = super(RepositorySerializer, self).serialize(instance)

del serialized['type_id']
del serialized['deleted']

serialized.update(
type=instance.type.name,
Expand Down Expand Up @@ -56,3 +58,13 @@ def get_configurations(instance, mandatory=False):
for type_setting in instance.type.type_settings
if not mandatory or type_setting.mandatory
]

def _delete(self, identifier):
instance = self._get_instance(identifier)
instance.name = None # Not longer taken into account for name uniqueness
instance.enabled = False
instance.deleted = True
session.add(instance)

def _list_filters(self):
return self.model.deleted == False,

0 comments on commit a2f9660

Please sign in to comment.