Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
9bff10d
chore: changed issue priority from NULL to none (#2142)
NarayanBavisetti Sep 12, 2023
2186db8
feat: users can select timezone during onboarding (#2148)
dakshesh14 Sep 12, 2023
cdb888c
fix: selfhosted fixes (#2154)
sriramveeraghanta Sep 12, 2023
8e9a4dc
refactor: view props structure (#2159)
aaryan610 Sep 12, 2023
3a2a329
fix: view props undefined (#2160)
aaryan610 Sep 12, 2023
b9c9350
chore: eslint config package fixes (#2165)
sriramveeraghanta Sep 13, 2023
47bec77
chore: priority migration (#2162)
NarayanBavisetti Sep 13, 2023
5a91031
feat: issue drafts (#2161)
NarayanBavisetti Sep 13, 2023
164e0b9
chore: changed view props (#2146)
NarayanBavisetti Sep 13, 2023
a34b0b0
feat: add a relation to an issue (#1995)
NarayanBavisetti Sep 13, 2023
4ce01ca
fix: calendar issues display filters loop fix (#2167)
anmolsinghbhatia Sep 13, 2023
e58b76c
fix: tailwind common config (#2168)
sriramveeraghanta Sep 13, 2023
23e62c8
refactor: switched priority null -> 'none' (#2166)
dakshesh14 Sep 13, 2023
61672f4
fix: migration files (#2169)
NarayanBavisetti Sep 13, 2023
42d38f7
feat: changed payload for swimlanes (#2173)
NarayanBavisetti Sep 13, 2023
1b1ed37
chore: changed default props for worskpace and project members (#2175)
NarayanBavisetti Sep 13, 2023
32d0857
chore: peek overview for issue view and my issue view (#2172)
anmolsinghbhatia Sep 13, 2023
9bac7cb
feat: issue link to create relation between issues (#2171)
dakshesh14 Sep 13, 2023
9033ceb
fix: sub groups in cycle module and my issues (#2176)
NarayanBavisetti Sep 13, 2023
af73bbe
typo: changed customize to customise in project automation settings (…
AnkushD Sep 13, 2023
d0f6ca3
[chore] Update `setup.sh`, with removed replacement script & added pr…
henit-chobisa Sep 13, 2023
87abf3c
style: project setting ui revamp (#2177)
anmolsinghbhatia Sep 13, 2023
f983d78
env and docker fixes (#2182)
sriramveeraghanta Sep 14, 2023
4e0e025
fix: changed payload for issue subgroups (#2181)
NarayanBavisetti Sep 14, 2023
a53b428
chore: endpoints and history logs for issue draft (#2180)
NarayanBavisetti Sep 14, 2023
6659cfc
fix: track events issue and env variables fixes (#2184)
sriramveeraghanta Sep 14, 2023
759a604
fix: posthog integration (#2186)
sriramveeraghanta Sep 14, 2023
eda4da8
feat: draft issues (#2188)
dakshesh14 Sep 14, 2023
32d945b
fix: edit/delete for draft issue (#2190)
dakshesh14 Sep 15, 2023
b274a21
chore: changed issue relation history logs (#2192)
NarayanBavisetti Sep 15, 2023
9bfdcff
chore: changed old values (#2194)
NarayanBavisetti Sep 15, 2023
ccffbe1
style: workspace and profile setting revamp (#2193)
anmolsinghbhatia Sep 15, 2023
c107b36
fix: document bug fix
anmolsinghbhatia Sep 15, 2023
3d72279
Merge pull request #2196 from makeplane/fix/bug_fix
sriramveeraghanta Sep 15, 2023
5d33147
chore: settings bug fixes and ui improvement (#2198)
anmolsinghbhatia Sep 15, 2023
79bf7d4
fix: hydration error and draft issue workflow (#2199)
dakshesh14 Sep 19, 2023
f6b92fc
fix: activity not coming for blocking/blocked, 'related to' and dupli…
dakshesh14 Sep 19, 2023
1125868
[fix]: Removing dependency on tiptap pro extension (#2209)
Palanikannan1437 Sep 19, 2023
926d2ae
dev: self hosted settings file (#2202)
pablohashescobar Sep 19, 2023
405ef93
feat: workspace views (#2005)
NarayanBavisetti Sep 19, 2023
d603c1e
fix: tracking logs for issue activity (#2213)
NarayanBavisetti Sep 19, 2023
a6a0eb9
chore: added epoch in issue activity (#2187)
NarayanBavisetti Sep 19, 2023
ce562fa
fix: migration files (#2215)
NarayanBavisetti Sep 19, 2023
63c4792
fix: changed time to timestamp (#2217)
NarayanBavisetti Sep 19, 2023
e01a0d2
chore: dynamic position dropdown (#2138)
anmolsinghbhatia Sep 20, 2023
cdfff12
fix: fields not getting selected in the create issue form (#2212)
dakshesh14 Sep 20, 2023
60ae940
chore: sub issues count in individual issue (#2221)
NarayanBavisetti Sep 20, 2023
bd077e6
Implemented nested issues in the sub issues section in issue detail p…
gurusainath Sep 21, 2023
1621125
refactor: product updates modal layout (#2225)
aaryan610 Sep 21, 2023
e3793f4
fix: handle no issues in custom analytics (#2226)
aaryan610 Sep 21, 2023
de9f34c
fix: activity label color (#2227)
aaryan610 Sep 21, 2023
978909c
fix: profile issues layout switch (#2228)
aaryan610 Sep 21, 2023
73afb8f
fix: issues resolved in sub issues (#2238)
gurusainath Sep 21, 2023
c7092ed
fix: aws region name (#2234)
NarayanBavisetti Sep 22, 2023
4d835c5
chore: updated docker naming conventions (#2239)
pablohashescobar Sep 22, 2023
0c7b7c4
chore: added state and priority order in workspace user profile (#2241)
NarayanBavisetti Sep 22, 2023
0005ff5
fix: changed priority from None to none (#2229)
NarayanBavisetti Sep 22, 2023
daa0b16
fix: cycle and module stats when issues are archived (#2185)
pablohashescobar Sep 22, 2023
771ca58
feat: quick add (#2240)
dakshesh14 Sep 22, 2023
02060f6
chore: added epoch in draft (#2244)
NarayanBavisetti Sep 22, 2023
1aadbee
fix: resolved pending issue graph in analytics, user wishes in dashbo…
gurusainath Sep 22, 2023
c9a6380
style: settings page improvement (#2211)
anmolsinghbhatia Sep 22, 2023
e8d303d
chore: changed priority props in workspace and project (#2253)
NarayanBavisetti Sep 22, 2023
68c8741
fix: bug fix related to fetching dropdown options for the profile iss…
anmolsinghbhatia Sep 25, 2023
afa10d7
fix: sub issue state and member select build error (#2254)
anmolsinghbhatia Sep 25, 2023
0e96edd
rename view to layout (#2255)
rhea0110 Sep 25, 2023
de7a672
fix: bug fixes and ui improvement (#2250)
anmolsinghbhatia Sep 25, 2023
5e8d523
feat: quick-add placement in spreadsheet and gantt (#2259)
dakshesh14 Sep 25, 2023
7db7859
fix: draft issue delete not working (#2249)
dakshesh14 Sep 25, 2023
1ad9987
feat: Add peek overview in sub issues and updated UI for empty states…
gurusainath Sep 26, 2023
6d3bd78
chore: add tooltip to show full time on activity logs (#2235)
aaryan610 Sep 26, 2023
dae8ca6
fix: issue automation iterable error (#2208)
pablohashescobar Sep 26, 2023
d385943
fix: n+1 queries for cycle list and project member endpoints (#2257)
pablohashescobar Sep 26, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
52 changes: 0 additions & 52 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,36 +1,3 @@
# Frontend
# Extra image domains that need to be added for Next Image
NEXT_PUBLIC_EXTRA_IMAGE_DOMAINS=
# Google Client ID for Google OAuth
NEXT_PUBLIC_GOOGLE_CLIENTID=""
# Github ID for Github OAuth
NEXT_PUBLIC_GITHUB_ID=""
# Github App Name for GitHub Integration
NEXT_PUBLIC_GITHUB_APP_NAME=""
# Sentry DSN for error monitoring
NEXT_PUBLIC_SENTRY_DSN=""
# Enable/Disable OAUTH - default 0 for selfhosted instance
NEXT_PUBLIC_ENABLE_OAUTH=0
# Enable/Disable sentry
NEXT_PUBLIC_ENABLE_SENTRY=0
# Enable/Disable session recording
NEXT_PUBLIC_ENABLE_SESSION_RECORDER=0
# Enable/Disable event tracking
NEXT_PUBLIC_TRACK_EVENTS=0
# Slack for Slack Integration
NEXT_PUBLIC_SLACK_CLIENT_ID=""
# For Telemetry, set it to "app.plane.so"
NEXT_PUBLIC_PLAUSIBLE_DOMAIN=""
# public boards deploy url
NEXT_PUBLIC_DEPLOY_URL=""

# Backend
# Debug value for api server use it as 0 for production use
DEBUG=0

# Error logs
SENTRY_DSN=""

# Database Settings
PGUSER="plane"
PGPASSWORD="plane"
Expand All @@ -43,15 +10,6 @@ REDIS_HOST="plane-redis"
REDIS_PORT="6379"
REDIS_URL="redis://${REDIS_HOST}:6379/"

# Email Settings
EMAIL_HOST=""
EMAIL_HOST_USER=""
EMAIL_HOST_PASSWORD=""
EMAIL_PORT=587
EMAIL_FROM="Team Plane <team@mailer.plane.so>"
EMAIL_USE_TLS="1"
EMAIL_USE_SSL="0"

# AWS Settings
AWS_REGION=""
AWS_ACCESS_KEY_ID="access-key"
Expand All @@ -67,9 +25,6 @@ OPENAI_API_BASE="https://api.openai.com/v1" # change if using a custom endpoint
OPENAI_API_KEY="sk-" # add your openai key here
GPT_ENGINE="gpt-3.5-turbo" # use "gpt-4" if you have access

# Github
GITHUB_CLIENT_SECRET="" # For fetching release notes

# Settings related to Docker
DOCKERIZED=1
# set to 1 If using the pre-configured minio setup
Expand All @@ -78,10 +33,3 @@ USE_MINIO=1
# Nginx Configuration
NGINX_PORT=80

# Default Creds
DEFAULT_EMAIL="captain@plane.so"
DEFAULT_PASSWORD="password123"

# SignUps
ENABLE_SIGNUP="1"
# Auto generated and Required that will be generated from setup.sh
5 changes: 0 additions & 5 deletions .github/workflows/Build_Test_Pull_Request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,9 @@ jobs:
deploy:
- space/**

- name: Setup .npmrc for repository
run: |
echo -e "@tiptap-pro:registry=https://registry.tiptap.dev/\n//registry.tiptap.dev/:_authToken=${{ secrets.TIPTAP_TOKEN }}" > .npmrc

- name: Build Plane's Main App
if: steps.changed-files.outputs.web_any_changed == 'true'
run: |
mv ./.npmrc ./web
cd web
yarn
yarn build
Expand Down
4 changes: 0 additions & 4 deletions .github/workflows/Update_Docker_Images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Setup .npmrc for repository
run: |
echo -e "@tiptap-pro:registry=https://registry.tiptap.dev/\n//registry.tiptap.dev/:_authToken=${{ secrets.TIPTAP_TOKEN }}" > .npmrc

- name: Extract metadata (tags, labels) for Docker (Docker Hub) from Github Release
id: metaFrontend
uses: docker/metadata-action@v4.3.0
Expand Down
11 changes: 0 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,17 +59,6 @@ chmod +x setup.sh

> If running in a cloud env replace localhost with public facing IP address of the VM

- Setup Tiptap Pro

Visit [Tiptap Pro](https://collab.tiptap.dev/pro-extensions) and signup (it is free).

Create a **`.npmrc`** file, copy the following and replace your registry token generated from Tiptap Pro.

```
@tiptap-pro:registry=https://registry.tiptap.dev/
//registry.tiptap.dev/:_authToken=YOUR_REGISTRY_TOKEN
```

- Run Docker compose up

```bash
Expand Down
61 changes: 61 additions & 0 deletions apiserver/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Backend
# Debug value for api server use it as 0 for production use
DEBUG=0
DJANGO_SETTINGS_MODULE="plane.settings.selfhosted"

# Error logs
SENTRY_DSN=""

# Database Settings
PGUSER="plane"
PGPASSWORD="plane"
PGHOST="plane-db"
PGDATABASE="plane"
DATABASE_URL=postgresql://${PGUSER}:${PGPASSWORD}@${PGHOST}/${PGDATABASE}

# Redis Settings
REDIS_HOST="plane-redis"
REDIS_PORT="6379"
REDIS_URL="redis://${REDIS_HOST}:6379/"

# Email Settings
EMAIL_HOST=""
EMAIL_HOST_USER=""
EMAIL_HOST_PASSWORD=""
EMAIL_PORT=587
EMAIL_FROM="Team Plane <team@mailer.plane.so>"
EMAIL_USE_TLS="1"
EMAIL_USE_SSL="0"

# AWS Settings
AWS_REGION=""
AWS_ACCESS_KEY_ID="access-key"
AWS_SECRET_ACCESS_KEY="secret-key"
AWS_S3_ENDPOINT_URL="http://plane-minio:9000"
# Changing this requires change in the nginx.conf for uploads if using minio setup
AWS_S3_BUCKET_NAME="uploads"
# Maximum file upload limit
FILE_SIZE_LIMIT=5242880

# GPT settings
OPENAI_API_BASE="https://api.openai.com/v1" # change if using a custom endpoint
OPENAI_API_KEY="sk-" # add your openai key here
GPT_ENGINE="gpt-3.5-turbo" # use "gpt-4" if you have access

# Github
GITHUB_CLIENT_SECRET="" # For fetching release notes

# Settings related to Docker
DOCKERIZED=1
# set to 1 If using the pre-configured minio setup
USE_MINIO=1

# Nginx Configuration
NGINX_PORT=80

# Default Creds
DEFAULT_EMAIL="captain@plane.so"
DEFAULT_PASSWORD="password123"

# SignUps
ENABLE_SIGNUP="1"
6 changes: 3 additions & 3 deletions apiserver/plane/api/serializers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,14 @@
ProjectPublicMemberSerializer
)
from .state import StateSerializer, StateLiteSerializer
from .view import IssueViewSerializer, IssueViewFavoriteSerializer
from .view import GlobalViewSerializer, IssueViewSerializer, IssueViewFavoriteSerializer
from .cycle import CycleSerializer, CycleIssueSerializer, CycleFavoriteSerializer, CycleWriteSerializer
from .asset import FileAssetSerializer
from .issue import (
IssueCreateSerializer,
IssueActivitySerializer,
IssueCommentSerializer,
IssuePropertySerializer,
BlockerIssueSerializer,
BlockedIssueSerializer,
IssueAssigneeSerializer,
LabelSerializer,
IssueSerializer,
Expand All @@ -45,6 +43,8 @@
IssueReactionSerializer,
CommentReactionSerializer,
IssueVoteSerializer,
IssueRelationSerializer,
RelatedIssueSerializer,
IssuePublicSerializer,
)

Expand Down
22 changes: 1 addition & 21 deletions apiserver/plane/api/serializers/cycle.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ class CycleSerializer(BaseSerializer):
unstarted_issues = serializers.IntegerField(read_only=True)
backlog_issues = serializers.IntegerField(read_only=True)
assignees = serializers.SerializerMethodField(read_only=True)
labels = serializers.SerializerMethodField(read_only=True)
total_estimates = serializers.IntegerField(read_only=True)
completed_estimates = serializers.IntegerField(read_only=True)
started_estimates = serializers.IntegerField(read_only=True)
Expand All @@ -50,11 +49,10 @@ def get_assignees(self, obj):
members = [
{
"avatar": assignee.avatar,
"first_name": assignee.first_name,
"display_name": assignee.display_name,
"id": assignee.id,
}
for issue_cycle in obj.issue_cycle.all()
for issue_cycle in obj.issue_cycle.prefetch_related("issue__assignees").all()
for assignee in issue_cycle.issue.assignees.all()
]
# Use a set comprehension to return only the unique objects
Expand All @@ -64,24 +62,6 @@ def get_assignees(self, obj):
unique_list = [dict(item) for item in unique_objects]

return unique_list

def get_labels(self, obj):
labels = [
{
"name": label.name,
"color": label.color,
"id": label.id,
}
for issue_cycle in obj.issue_cycle.all()
for label in issue_cycle.issue.labels.all()
]
# Use a set comprehension to return only the unique objects
unique_objects = {frozenset(item.items()) for item in labels}

# Convert the set back to a list of dictionaries
unique_list = [dict(item) for item in unique_objects]

return unique_list

class Meta:
model = Cycle
Expand Down
Loading