Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature desktop arkstore api #1396

Merged
merged 3 commits into from
Nov 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 16 additions & 13 deletions api/v1/views/arkstore.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,8 @@ class OnShelveExtensionPurchaseOut(ArkstoreExtensionItemSchemaOut):
purchase_useful_life: Optional[List[str]] = Field(
title=_('Purchase Useful Life', '有效期')
)
install: Optional[bool] = Field(title=_("Install", "安装"), default=False, hidden=True)
upgrade: Optional[bool] = Field(title=_("Upgrade", "升级"), default=False, hidden=True)
installed: Optional[bool] = Field(title=_("Installed", "已安装"), default=True, hidden=True)
has_upgrade: Optional[bool] = Field(title=_("Has Upgrade", "有升级"), default=False, hidden=True)
lease_state: Optional[str] = Field(title=_('Lease State', '租赁状态'))
lease_useful_life: Optional[List[str]] = Field(title=_('Lease Useful Life', '有效期'))
is_active: Optional[bool] = Field(
Expand All @@ -158,6 +158,7 @@ class OnShelveExtensionPurchaseOut(ArkstoreExtensionItemSchemaOut):
"method":actions.FrontActionMethod.POST.value
}
)
is_default_extension: Optional[bool] = Field(title=_("Is Default Extension", "是否系统自带插件"), default=False, hidden=True)


class OrderStatusSchema(Schema):
Expand Down Expand Up @@ -422,10 +423,10 @@ def list_arkstore_purchased_extensions(request, tenant_id: str, category_id: str


class ArkstoreStatusFilterIn(Schema):
install: Optional[bool] = Field(
title=_("未安装")
installed: Optional[bool] = Field(
title=_("已安装")
)
upgrade: Optional[bool] = Field(
has_upgrade: Optional[bool] = Field(
title=_("有升级")
)

Expand All @@ -445,26 +446,28 @@ def list_arkstore_purchased_and_installed_extensions(request, tenant_id: str, fi
purchased_exts = get_arkstore_list(request, True, 'extension', all=True, extra_params=extra_params)['items']
for ext in purchased_exts:
if ext['package'] in installed_ext_packages:
ext['installed'] = True
ext['is_active'] = installed_ext_packages[ext['package']].is_active
ext['is_active_tenant'] = installed_ext_packages[ext['package']].is_active_tenant
if installed_ext_packages[ext['package']].version < ext['version']:
ext['upgrade'] = True
ext['has_upgrade'] = True
else:
ext['install'] = True
ext['installed'] = False

purchased_exts_packages = {ext['package']: ext for ext in purchased_exts}
local_exts = [ext for ext in installed_exts if ext.package not in purchased_exts_packages]
for ext in local_exts:
ext.uuid = str(ext.id)
ext.labels = " ".join(ext.labels) if ext.labels else ""
ext.is_default_extension = True

if filter.upgrade == True:
return [ext for ext in purchased_exts if ext.get('upgrade') == True]
if filter.has_upgrade == True:
return [ext for ext in purchased_exts if ext.get('has_upgrade') == True]

if filter.install == True:
return [ext for ext in purchased_exts if ext.get('install') == True]
elif filter.install == False:
return local_exts + [ext for ext in purchased_exts if ext.get('install') == False]
if filter.installed == False:
return [ext for ext in purchased_exts if ext.get('installed') == False]
elif filter.installed == True:
return local_exts + [ext for ext in purchased_exts if ext.get('installed') == True]

return local_exts + purchased_exts

Expand Down
4 changes: 2 additions & 2 deletions arkid/core/pagenation.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@ def paginate_queryset(self, queryset, pagination: CustomPagination.Input, reques
for ext in items:
if ext['package'] in installed_ext_packages:
if installed_ext_packages[ext['package']].version < ext['version']:
ext['upgrade'] = True
ext['has_upgrade'] = True
else:
ext['install'] = True
ext['installed'] = False

tenant = request.tenant
if tenant.is_platform_tenant:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 4.0.7 on 2022-11-08 07:55

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


class Migration(migrations.Migration):

dependencies = [
('core', '0032_expiringtoken_active_date'),
('com_longgui_auth_factor_mobile', '0003_alter_usermobile_mobile'),
]

operations = [
migrations.AlterField(
model_name='usermobile',
name='target',
field=models.OneToOneField(blank=True, default=None, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s', to='core.user'),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 4.0.7 on 2022-11-08 07:55

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


class Migration(migrations.Migration):

dependencies = [
('core', '0032_expiringtoken_active_date'),
('com_longgui_auth_factor_password', '0002_alter_userpassword_target'),
]

operations = [
migrations.AlterField(
model_name='userpassword',
name='target',
field=models.OneToOneField(blank=True, default=None, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s', to='core.user'),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 4.0.7 on 2022-11-08 07:55

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


class Migration(migrations.Migration):

dependencies = [
('core', '0032_expiringtoken_active_date'),
('com_longgui_case', '0003_alter_caseuser_nickname'),
]

operations = [
migrations.AlterField(
model_name='caseuser',
name='target',
field=models.OneToOneField(blank=True, default=None, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s', to='core.user'),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 4.0.7 on 2022-11-08 07:51

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


class Migration(migrations.Migration):

dependencies = [
('core', '0032_expiringtoken_active_date'),
('com_longgui_default_desktop', '0002_alter_defaultdesktop_default_desktop'),
]

operations = [
migrations.AlterField(
model_name='defaultdesktop',
name='target',
field=models.OneToOneField(blank=True, default=None, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s', to='core.tenant'),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 4.0.7 on 2022-11-08 07:55

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


class Migration(migrations.Migration):

dependencies = [
('core', '0032_expiringtoken_active_date'),
('com_longgui_external_idp_github', '0003_auto_20220825_0403'),
]

operations = [
migrations.AlterField(
model_name='githubuser',
name='target',
field=models.OneToOneField(blank=True, default=None, on_delete=django.db.models.deletion.PROTECT, related_name='%(app_label)s_%(class)s', to='core.user'),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Generated by Django 4.0.7 on 2022-11-08 07:55

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


class Migration(migrations.Migration):

dependencies = [
('core', '0032_expiringtoken_active_date'),
('oauth2_provider', '0013_application_uuid'),
]

operations = [
migrations.AlterField(
model_name='accesstoken',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s', to='core.user'),
),
migrations.AlterField(
model_name='application',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s', to='core.user'),
),
migrations.AlterField(
model_name='grant',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s', to='core.user'),
),
migrations.AlterField(
model_name='idtoken',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s', to='core.user'),
),
migrations.AlterField(
model_name='refreshtoken',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s', to='core.user'),
),
]