diff --git a/apiserver/plane/api/serializers/cycle.py b/apiserver/plane/api/serializers/cycle.py
index 1abd63b7f..664368033 100644
--- a/apiserver/plane/api/serializers/cycle.py
+++ b/apiserver/plane/api/serializers/cycle.py
@@ -14,6 +14,11 @@ from plane.db.models import Cycle, CycleIssue, CycleFavorite
class CycleWriteSerializer(BaseSerializer):
+ def validate(self, data):
+ if data.get("start_date", None) is not None and data.get("end_date", None) is not None and data.get("start_date", None) > data.get("end_date", None):
+ raise serializers.ValidationError("Start date cannot exceed end date")
+ return data
+
class Meta:
model = Cycle
fields = "__all__"
@@ -35,6 +40,11 @@ class CycleSerializer(BaseSerializer):
started_estimates = serializers.IntegerField(read_only=True)
workspace_detail = WorkspaceLiteSerializer(read_only=True, source="workspace")
project_detail = ProjectLiteSerializer(read_only=True, source="project")
+
+ def validate(self, data):
+ if data.get("start_date", None) is not None and data.get("end_date", None) is not None and data.get("start_date", None) > data.get("end_date", None):
+ raise serializers.ValidationError("Start date cannot exceed end date")
+ return data
def get_assignees(self, obj):
members = [
diff --git a/apiserver/plane/api/serializers/module.py b/apiserver/plane/api/serializers/module.py
index a82a0f39f..aaabd4ae0 100644
--- a/apiserver/plane/api/serializers/module.py
+++ b/apiserver/plane/api/serializers/module.py
@@ -40,6 +40,11 @@ class ModuleWriteSerializer(BaseSerializer):
"updated_at",
]
+ def validate(self, data):
+ if data.get("start_date", None) is not None and data.get("target_date", None) is not None and data.get("start_date", None) > data.get("target_date", None):
+ raise serializers.ValidationError("Start date cannot exceed target date")
+ return data
+
def create(self, validated_data):
members = validated_data.pop("members_list", None)
diff --git a/apiserver/plane/bgtasks/export_task.py b/apiserver/plane/bgtasks/export_task.py
index d8cb9f0cd..22a9afe51 100644
--- a/apiserver/plane/bgtasks/export_task.py
+++ b/apiserver/plane/bgtasks/export_task.py
@@ -68,7 +68,7 @@ def create_zip_file(files):
def upload_to_s3(zip_file, workspace_id, token_id, slug):
s3 = boto3.client(
"s3",
- region_name="ap-south-1",
+ region_name=settings.AWS_REGION,
aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
config=Config(signature_version="s3v4"),
diff --git a/docker-compose-hub.yml b/docker-compose-hub.yml
index 84ff8b833..fcb93c530 100644
--- a/docker-compose-hub.yml
+++ b/docker-compose-hub.yml
@@ -55,20 +55,6 @@ services:
depends_on:
- plane-api
- plane-worker
-
- plane-deploy:
- container_name: planedeploy
- image: makeplane/plane-space:latest
- restart: always
- command: node apps/space/server.js space
- env_file:
- - .env
- environment:
- NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL}
- depends_on:
- - plane-api
- - plane-worker
- - plane-web
plane-api:
container_name: planebackend
diff --git a/docker-compose.yml b/docker-compose.yml
index 07aa79f36..f69f5be1d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -60,23 +60,6 @@ services:
depends_on:
- plane-api
- plane-worker
- plane-deploy:
- container_name: planedeploy
- build:
- context: .
- dockerfile: ./apps/space/Dockerfile.space
- args:
- NEXT_PUBLIC_API_BASE_URL: http://localhost:8000
- restart: always
- command: /usr/local/bin/start.sh apps/space/server.js space
- env_file:
- - .env
- environment:
- NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL}
- depends_on:
- - plane-api
- - plane-worker
- - plane-web
plane-api:
container_name: planebackend
diff --git a/nginx/nginx.conf.template b/nginx/nginx.conf.template
index 796c9e10d..206c94b51 100644
--- a/nginx/nginx.conf.template
+++ b/nginx/nginx.conf.template
@@ -15,10 +15,6 @@ server {
proxy_pass http://planefrontend:3000/;
}
- location /spaces/ {
- proxy_pass http://planedeploy:3000/;
- }
-
location /api/ {
proxy_pass http://planebackend:8000/api/;
}
diff --git a/web/constants/workspace.ts b/web/constants/workspace.ts
index eeb5e2730..0683e39af 100644
--- a/web/constants/workspace.ts
+++ b/web/constants/workspace.ts
@@ -1,9 +1,9 @@
// services images
import GithubLogo from "public/services/github.png";
import JiraLogo from "public/services/jira.png";
-import CSVLogo from "public/services/csv.png";
-import ExcelLogo from "public/services/excel.png";
-import JSONLogo from "public/services/json.png";
+import CSVLogo from "public/services/csv.svg";
+import ExcelLogo from "public/services/excel.svg";
+import JSONLogo from "public/services/json.svg";
export const ROLE = {
5: "Guest",
diff --git a/web/public/services/csv.svg b/web/public/services/csv.svg
new file mode 100644
index 000000000..adea1ddc9
--- /dev/null
+++ b/web/public/services/csv.svg
@@ -0,0 +1,12 @@
+
diff --git a/web/public/services/excel.svg b/web/public/services/excel.svg
new file mode 100644
index 000000000..86fb8e64b
--- /dev/null
+++ b/web/public/services/excel.svg
@@ -0,0 +1,11 @@
+
diff --git a/web/public/services/json.svg b/web/public/services/json.svg
new file mode 100644
index 000000000..4c2df2222
--- /dev/null
+++ b/web/public/services/json.svg
@@ -0,0 +1,12 @@
+