Skip to content

Commit

Permalink
Merge commit '9d078ea4ba470832a68496a65e8ed123d6e526e2' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
suricactus committed Mar 5, 2023
2 parents 806db59 + 9d078ea commit 2c8bc55
Show file tree
Hide file tree
Showing 7 changed files with 87 additions and 8 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ __pycache__/
docker-compose.override.yml
client/projects
conf/nginx/certs/*
Pipfile*
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ repos:

# Sort imports
- repo: https://github.com/pycqa/isort
rev: "5.10.1"
rev: "5.12.0"
hooks:
- id: isort
args: ["--profile", "black"]
Expand Down
59 changes: 59 additions & 0 deletions docker-app/qfieldcloud/core/migrations/0062_auto_20230216_1137.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Generated by Django 3.2.17 on 2023-02-16 10:37

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("core", "0061_add_incognito_and_audit_to_collaborators"),
]

operations = [
migrations.AlterField(
model_name="organization",
name="created_by",
field=models.ForeignKey(
limit_choices_to=models.Q(("type", 1)),
on_delete=django.db.models.deletion.CASCADE,
related_name="created_organizations",
to=settings.AUTH_USER_MODEL,
),
),
migrations.AlterField(
model_name="organization",
name="organization_owner",
field=models.ForeignKey(
limit_choices_to=models.Q(("type", 1)),
on_delete=django.db.models.deletion.CASCADE,
related_name="owned_organizations",
to=settings.AUTH_USER_MODEL,
),
),
migrations.AlterField(
model_name="projectcollaborator",
name="created_by",
field=models.ForeignKey(
blank=True,
limit_choices_to=models.Q(("type", 1)),
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="+",
to=settings.AUTH_USER_MODEL,
),
),
migrations.AlterField(
model_name="projectcollaborator",
name="updated_by",
field=models.ForeignKey(
blank=True,
limit_choices_to=models.Q(("type", 1)),
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="+",
to=settings.AUTH_USER_MODEL,
),
),
]
16 changes: 12 additions & 4 deletions docker-app/qfieldcloud/core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -623,17 +623,21 @@ class Meta:
objects = OrganizationManager()

organization_owner = models.ForeignKey(
Person,
# NOTE should be Person, but Django sometimes has troubles with Person/User (e.g. Form.full_clean()), see #514 #515
User,
on_delete=models.CASCADE,
related_name="owned_organizations",
limit_choices_to=models.Q(type=User.Type.PERSON),
)

is_initially_trial = models.BooleanField(default=False)

created_by = models.ForeignKey(
Person,
# NOTE should be Person, but Django sometimes has troubles with Person/User (e.g. Form.full_clean()), see #514 #515
User,
on_delete=models.CASCADE,
related_name="created_organizations",
limit_choices_to=models.Q(type=User.Type.PERSON),
)

# created at
Expand Down Expand Up @@ -1309,9 +1313,11 @@ class Meta:

# created by
created_by = models.ForeignKey(
Person,
# NOTE should be Person, but Django sometimes has troubles with Person/User (e.g. Form.full_clean()), see #514 #515
User,
on_delete=models.SET_NULL,
related_name="+",
limit_choices_to=models.Q(type=User.Type.PERSON),
null=True,
blank=True,
)
Expand All @@ -1321,9 +1327,11 @@ class Meta:

# created by
updated_by = models.ForeignKey(
Person,
# NOTE should be Person, but Django sometimes has troubles with Person/User (e.g. Form.full_clean()), see #514 #515
User,
on_delete=models.SET_NULL,
related_name="+",
limit_choices_to=models.Q(type=User.Type.PERSON),
null=True,
blank=True,
)
Expand Down
6 changes: 5 additions & 1 deletion docker-app/qfieldcloud/core/utils2/storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,11 @@ def delete_project_file_permanently(
update_fields.append("project_filename")
project.project_filename = None

project.file_storage_bytes -= sum([v.size for v in file.versions])
file_storage_bytes = project.file_storage_bytes - sum(
[v.size for v in file.versions]
)
project.file_storage_bytes = max(file_storage_bytes, 0)

project.save(update_fields=update_fields)

# NOTE force audits to be required when deleting files
Expand Down
5 changes: 5 additions & 0 deletions docker-app/qfieldcloud/subscription/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,11 @@ class Package(models.Model):

class SubscriptionQuerySet(models.QuerySet):
def active(self):
"""Returns the subscriptions which are relevant to the current moment.
WARNING the name `active` is super misleading, should be `current`. Some of the subscriptions in the queryset might not be active, but cancelled or drafted.
TODO rename to `current`
"""
now = timezone.now()
qs = self.filter(
Q(active_since__lte=now)
Expand Down
6 changes: 4 additions & 2 deletions docker-app/worker_wrapper/wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -508,5 +508,7 @@ def after_docker_run(self) -> None:

def after_docker_exception(self) -> None:
project = self.job.project
project.project_details = None
project.save(update_fields=("project_details",))

if project.project_details is not None:
project.project_details = None
project.save(update_fields=("project_details",))

0 comments on commit 2c8bc55

Please sign in to comment.