Remove modified_date and owner require from project import

remotes/origin/enhancement/email-actions
Jesús Espino 2014-09-01 16:10:58 +02:00
parent fdb0a327c1
commit 1f2183ecc3
10 changed files with 35 additions and 11 deletions

View File

@ -23,7 +23,10 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
def create(self, request, *args, **kwargs):
self.check_permissions(request, 'import_project', None)
data = request.DATA
data = request.DATA.copy()
if not data['owner']:
data['owner'] = request.user
project_serialized = service.store_project(data)
if project_serialized:
@ -41,3 +44,23 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
return Response(project_serialized.data, status=status.HTTP_201_CREATED, headers=headers)
return Response(service.get_errors(), status=status.HTTP_400_BAD_REQUEST)
@detail_route(methods=['post'])
def issue(self, request, *args, **kwargs):
self.check_permissions(request, 'import_item', serializer.object)
@detail_route(methods=['post'])
def task(self, request, *args, **kwargs):
self.check_permissions(request, 'import_item', serializer.object)
@detail_route(methods=['post'])
def us(self, request, *args, **kwargs):
self.check_permissions(request, 'import_item', serializer.object)
@detail_route(methods=['post'])
def wiki_page(self, request, *args, **kwargs):
self.check_permissions(request, 'import_item', serializer.object)
@detail_route(methods=['post'])
def wiki_link(self, request, *args, **kwargs):
self.check_permissions(request, 'import_item', serializer.object)

View File

@ -284,7 +284,7 @@ class WikiLinkExportSerializer(serializers.ModelSerializer):
exclude = ('id', 'project')
class ProjectExportSerializer(serializers.ModelSerializer):
owner = UserRelatedField()
owner = UserRelatedField(required=False)
default_points = serializers.SlugRelatedField(slug_field="name", required=False)
default_us_status = serializers.SlugRelatedField(slug_field="name", required=False)
default_task_status = serializers.SlugRelatedField(slug_field="name", required=False)
@ -309,6 +309,7 @@ class ProjectExportSerializer(serializers.ModelSerializer):
tags_colors = JsonField(required=False)
anon_permissions = PgArrayField(required=False)
public_permissions = PgArrayField(required=False)
modified_date = serializers.DateTimeField(required=False)
class Meta:
model = projects_models.Project

View File

@ -69,7 +69,7 @@ class Attachment(models.Model):
)
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_date = timezone.now()
return super().save(*args, **kwargs)

View File

@ -73,7 +73,7 @@ class Issue(OCCModelMixin, WatchedModelMixin, BlockedMixin, TaggedMixin, models.
)
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_date = timezone.now()
return super().save(*args, **kwargs)

View File

@ -69,7 +69,7 @@ class Milestone(WatchedModelMixin, models.Model):
return "<Milestone {0}>".format(self.id)
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_date = timezone.now()
if not self.slug:
self.slug = slugify_uniquely(self.name, self.__class__)

View File

@ -182,7 +182,7 @@ class Project(ProjectDefaults, TaggedMixin, models.Model):
return "<Project {0}>".format(self.id)
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_date = timezone.now()
if not self.slug:
@ -522,7 +522,7 @@ class ProjectTemplate(models.Model):
return "<Project Template {0}>".format(self.slug)
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_date = timezone.now()
super().save(*args, **kwargs)

View File

@ -39,7 +39,7 @@ class NotifyPolicy(models.Model):
ordering = ["created_at"]
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_at = timezone.now()
return super().save(*args, **kwargs)

View File

@ -74,7 +74,7 @@ class Task(OCCModelMixin, WatchedModelMixin, BlockedMixin, TaggedMixin, models.M
)
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_date = timezone.now()
return super().save(*args, **kwargs)

View File

@ -109,7 +109,7 @@ class UserStory(OCCModelMixin, WatchedModelMixin, BlockedMixin, TaggedMixin, mod
)
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_date = timezone.now()
super().save(*args, **kwargs)

View File

@ -55,7 +55,7 @@ class WikiPage(OCCModelMixin, WatchedModelMixin, models.Model):
return "project {0} - {1}".format(self.project_id, self.slug)
def save(self, *args, **kwargs):
if not self._importing:
if not self._importing or not self.modified_date:
self.modified_date = timezone.now()
return super().save(*args, **kwargs)