Project Task Type

This commit is contained in:
Sedat ÖZTÜRK 2025-11-27 14:34:57 +03:00
parent b11b5f2185
commit 8c5a141c8e
16 changed files with 125 additions and 125 deletions

View file

@ -9615,13 +9615,13 @@
},
{
"resourceName": "Platform",
"key": "App.Project.Task",
"tr": "Görev Tanımları",
"en": "Task Definitions"
"key": "App.Project.TaskType",
"tr": "Görev Türleri",
"en": "Task Types"
},
{
"resourceName": "Platform",
"key": "App.Project.Tasks",
"key": "App.Project.Task",
"tr": "Görevler",
"en": "Tasks"
},

View file

@ -1287,8 +1287,8 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
}
#endregion
#region Project Task
listFormName = AppCodes.Project.Task;
#region Project Task Type
listFormName = AppCodes.Project.TaskType;
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
{
var listForm = await _listFormRepository.InsertAsync(
@ -1308,7 +1308,7 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
IsOrganizationUnit = false,
Description = listFormName,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTask)),
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTaskType)),
KeyFieldName = "Id",
KeyFieldDbSourceType = DbType.Guid,
DefaultFilter = DefaultFilterJson,
@ -1320,7 +1320,7 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(listFormName),
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ProjectTask)),
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ProjectTaskType)),
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 300, true, true, true, true, false),
@ -1340,7 +1340,7 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
}
);
#region Project Task Fields
#region Project Task Type Fields
await _listFormFieldRepository.InsertManyAsync([
new() {
ListFormCode = listForm.ListFormCode,

View file

@ -2590,7 +2590,7 @@
"DisplayName": "App.Project.Status",
"Order": 2,
"Url": "/admin/list/App.Project.Status",
"Icon": "FcTimeline",
"Icon": "FcApproval",
"RequiredPermissionName": "App.Project.Status",
"IsDisabled": false
},
@ -2600,7 +2600,7 @@
"DisplayName": "App.Project.Category",
"Order": 3,
"Url": "/admin/list/App.Project.Category",
"Icon": "FcTimeline",
"Icon": "FcGrid",
"RequiredPermissionName": "App.Project.Category",
"IsDisabled": false
},
@ -2616,12 +2616,12 @@
},
{
"ParentCode": "App.Project",
"Code": "App.Project.Task",
"DisplayName": "App.Project.Task",
"Code": "App.Project.TaskType",
"DisplayName": "App.Project.TaskType",
"Order": 5,
"Url": "/admin/list/App.Project.Task",
"Url": "/admin/list/App.Project.TaskType",
"Icon": "FcPlanner",
"RequiredPermissionName": "App.Project.Task",
"RequiredPermissionName": "App.Project.TaskType",
"IsDisabled": false
},
{
@ -2640,18 +2640,18 @@
"DisplayName": "App.Project.Phase",
"Order": 7,
"Url": "/admin/list/App.Project.Phase",
"Icon": "FcParallelTasks",
"Icon": "FcProcess",
"RequiredPermissionName": "App.Project.Phase",
"IsDisabled": false
},
{
"ParentCode": "App.Project",
"Code": "App.Project.Tasks",
"DisplayName": "App.Project.Tasks",
"Code": "App.Project.Task",
"DisplayName": "App.Project.Task",
"Order": 8,
"Url": "/admin/projects/tasks",
"Icon": "FcBullish",
"RequiredPermissionName": "App.Project.Tasks",
"Icon": "FcInspection",
"RequiredPermissionName": "App.Project.Task",
"IsDisabled": false
},
{
@ -2660,7 +2660,7 @@
"DisplayName": "App.Project.Activity",
"Order": 9,
"Url": "/admin/projects/activities",
"Icon": "FcPlanner",
"Icon": "FcServices",
"RequiredPermissionName": "App.Project.Activity",
"IsDisabled": false
},
@ -2670,7 +2670,7 @@
"DisplayName": "App.Project.Workload",
"Order": 10,
"Url": "/admin/projects/workload",
"Icon": "FcFlowChart",
"Icon": "FcComboChart",
"RequiredPermissionName": "App.Project.Workload",
"IsDisabled": false
},

View file

@ -8395,6 +8395,70 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.TaskType",
"ParentName": null,
"DisplayName": "App.Project.TaskType",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.TaskType.Create",
"ParentName": "App.Project.TaskType",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.TaskType.Update",
"ParentName": "App.Project.TaskType",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.TaskType.Delete",
"ParentName": "App.Project.TaskType",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.TaskType.Export",
"ParentName": "App.Project.TaskType",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.TaskType.Import",
"ParentName": "App.Project.TaskType",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.TaskType.Note",
"ParentName": "App.Project.TaskType",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Task",
@ -8468,70 +8532,6 @@
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Tasks",
"ParentName": null,
"DisplayName": "App.Project.Tasks",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Tasks.Create",
"ParentName": "App.Project.Tasks",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Tasks.Update",
"ParentName": "App.Project.Tasks",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Tasks.Delete",
"ParentName": "App.Project.Tasks",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Tasks.Export",
"ParentName": "App.Project.Tasks",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Tasks.Import",
"ParentName": "App.Project.Tasks",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Tasks.Note",
"ParentName": "App.Project.Tasks",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Activity",

View file

@ -194,5 +194,5 @@ public enum TableNameEnum
ProjectRisk,
ProjectPhase,
ProjectCategory,
ProjectTask
ProjectTaskType
}

View file

@ -233,7 +233,7 @@ public static class TableNameResolver
{ nameof(TableNameEnum.ProjectCategory), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectPhase), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.Projects), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectTask), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectTaskType), (TablePrefix.TenantByName, MenuPrefix.Project) },
};
public static string GetFullTableName(string tableName)

View file

@ -568,7 +568,7 @@ public static class SeedConsts
public const string Risk = Default + ".Risk";
public const string Category = Default + ".Category";
public const string Phase = Default + ".Phase";
public const string Task = Default + ".Task";
public const string TaskType = Default + ".TaskType";
}
public static class Mrp

View file

@ -5,7 +5,7 @@ using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class ProjectTask : FullAuditedEntity<Guid>, IMultiTenant
public class ProjectTaskType : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }

View file

@ -274,7 +274,7 @@ public class PlatformDbContext :
public DbSet<ProjectRisk> ProjectRisks { get; set; }
public DbSet<ProjectCategory> ProjectCategories { get; set; }
public DbSet<ProjectPhase> ProjectPhases { get; set; }
public DbSet<ProjectTask> ProjectTasks { get; set; }
public DbSet<ProjectTaskType> ProjectTasks { get; set; }
#endregion
public PlatformDbContext(DbContextOptions<PlatformDbContext> options)
@ -3309,9 +3309,9 @@ public class PlatformDbContext :
b.Property(x => x.IsActive).HasDefaultValue(true);
});
builder.Entity<ProjectTask>(b =>
builder.Entity<ProjectTaskType>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTask)), Prefix.DbSchema);
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTaskType)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.Name).IsRequired().HasMaxLength(50);

View file

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace Erp.Platform.Migrations
{
[DbContext(typeof(PlatformDbContext))]
[Migration("20251127105051_Initial")]
[Migration("20251127112310_Initial")]
partial class Initial
{
/// <inheritdoc />
@ -9848,7 +9848,7 @@ namespace Erp.Platform.Migrations
b.Property<Guid?>("ProjectPhaseId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("ProjectTaskId")
b.Property<Guid?>("ProjectTaskTypeId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("ProjectTypeId")
@ -9872,7 +9872,7 @@ namespace Erp.Platform.Migrations
b.HasIndex("ProjectPhaseId");
b.HasIndex("ProjectTaskId");
b.HasIndex("ProjectTaskTypeId");
b.HasIndex("ProjectTypeId");
@ -10176,7 +10176,7 @@ namespace Erp.Platform.Migrations
b.ToTable("Prj_T_ProjectStatus", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskType", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
@ -10231,7 +10231,7 @@ namespace Erp.Platform.Migrations
b.HasKey("Id");
b.ToTable("Prj_T_ProjectTask", (string)null);
b.ToTable("Prj_T_ProjectTaskType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
@ -17427,9 +17427,9 @@ namespace Erp.Platform.Migrations
.WithMany("Projects")
.HasForeignKey("ProjectPhaseId");
b.HasOne("Erp.Platform.Entities.ProjectTask", null)
b.HasOne("Erp.Platform.Entities.ProjectTaskType", null)
.WithMany("Projects")
.HasForeignKey("ProjectTaskId");
.HasForeignKey("ProjectTaskTypeId");
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
.WithMany("Projects")
@ -18380,7 +18380,7 @@ namespace Erp.Platform.Migrations
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskType", b =>
{
b.Navigation("Projects");
});

View file

@ -1890,7 +1890,7 @@ namespace Erp.Platform.Migrations
});
migrationBuilder.CreateTable(
name: "Prj_T_ProjectTask",
name: "Prj_T_ProjectTaskType",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
@ -1908,7 +1908,7 @@ namespace Erp.Platform.Migrations
},
constraints: table =>
{
table.PrimaryKey("PK_Prj_T_ProjectTask", x => x.Id);
table.PrimaryKey("PK_Prj_T_ProjectTaskType", x => x.Id);
});
migrationBuilder.CreateTable(
@ -6840,7 +6840,7 @@ namespace Erp.Platform.Migrations
Progress = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
ProjectPhaseId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ProjectTaskId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ProjectTaskTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
@ -6874,9 +6874,9 @@ namespace Erp.Platform.Migrations
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Prj_T_Projects_Prj_T_ProjectTask_ProjectTaskId",
column: x => x.ProjectTaskId,
principalTable: "Prj_T_ProjectTask",
name: "FK_Prj_T_Projects_Prj_T_ProjectTaskType_ProjectTaskTypeId",
column: x => x.ProjectTaskTypeId,
principalTable: "Prj_T_ProjectTaskType",
principalColumn: "Id");
table.ForeignKey(
name: "FK_Prj_T_Projects_Prj_T_ProjectType_ProjectTypeId",
@ -7831,9 +7831,9 @@ namespace Erp.Platform.Migrations
column: "ProjectPhaseId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_Projects_ProjectTaskId",
name: "IX_Prj_T_Projects_ProjectTaskTypeId",
table: "Prj_T_Projects",
column: "ProjectTaskId");
column: "ProjectTaskTypeId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_Projects_ProjectTypeId",
@ -8911,7 +8911,7 @@ namespace Erp.Platform.Migrations
name: "Prj_T_ProjectPhase");
migrationBuilder.DropTable(
name: "Prj_T_ProjectTask");
name: "Prj_T_ProjectTaskType");
migrationBuilder.DropTable(
name: "Prj_T_ProjectType");

View file

@ -9845,7 +9845,7 @@ namespace Erp.Platform.Migrations
b.Property<Guid?>("ProjectPhaseId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("ProjectTaskId")
b.Property<Guid?>("ProjectTaskTypeId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("ProjectTypeId")
@ -9869,7 +9869,7 @@ namespace Erp.Platform.Migrations
b.HasIndex("ProjectPhaseId");
b.HasIndex("ProjectTaskId");
b.HasIndex("ProjectTaskTypeId");
b.HasIndex("ProjectTypeId");
@ -10173,7 +10173,7 @@ namespace Erp.Platform.Migrations
b.ToTable("Prj_T_ProjectStatus", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskType", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
@ -10228,7 +10228,7 @@ namespace Erp.Platform.Migrations
b.HasKey("Id");
b.ToTable("Prj_T_ProjectTask", (string)null);
b.ToTable("Prj_T_ProjectTaskType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
@ -17424,9 +17424,9 @@ namespace Erp.Platform.Migrations
.WithMany("Projects")
.HasForeignKey("ProjectPhaseId");
b.HasOne("Erp.Platform.Entities.ProjectTask", null)
b.HasOne("Erp.Platform.Entities.ProjectTaskType", null)
.WithMany("Projects")
.HasForeignKey("ProjectTaskId");
.HasForeignKey("ProjectTaskTypeId");
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
.WithMany("Projects")
@ -18377,7 +18377,7 @@ namespace Erp.Platform.Migrations
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskType", b =>
{
b.Navigation("Projects");
});

View file

@ -6119,7 +6119,7 @@
"isActive": false
}
],
"ProjectTasks": [
"ProjectTaskTypes": [
{
"name": "Geliştirme",
"description": "Projenin planlama aşamasında olduğunu ifade eder",

View file

@ -134,7 +134,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
private readonly IRepository<ProjectCategory, Guid> _projectCategoryRepository;
private readonly IRepository<ProjectRisk, Guid> _projectRiskRepository;
private readonly IRepository<ProjectPhase, Guid> _projectPhaseRepository;
private readonly IRepository<ProjectTask, Guid> _projectTaskRepository;
private readonly IRepository<ProjectTaskType, Guid> _projectTaskRepository;
public TenantDataSeeder(
IClock clock,
@ -252,7 +252,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
IRepository<ProjectRisk, Guid> projectRiskRepository,
IRepository<ProjectCategory, Guid> projectCategoryRepository,
IRepository<ProjectPhase, Guid> projectPhaseRepository,
IRepository<ProjectTask, Guid> projectTaskRepository
IRepository<ProjectTaskType, Guid> projectTaskRepository
)
{
_clock = clock;
@ -2588,13 +2588,13 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
}, autoSave: true);
}
foreach (var item in items.ProjectTasks)
foreach (var item in items.ProjectTaskTypes)
{
var exists = await _projectTaskRepository.AnyAsync(x => x.Name == item.Name);
if (exists)
continue;
await _projectTaskRepository.InsertAsync(new ProjectTask
await _projectTaskRepository.InsertAsync(new ProjectTaskType
{
Name = item.Name,
Description = item.Description,

View file

@ -134,10 +134,10 @@ public class TenantSeederDto
public List<ProjectRiskSeedDto> ProjectRisks { get; set; }
public List<ProjectCategorySeedDto> ProjectCategories { get; set; }
public List<ProjectPhaseSeedDto> ProjectPhases { get; set; }
public List<ProjectTaskSeedDto> ProjectTasks { get; set; }
public List<ProjectTaskTypeSeedDto> ProjectTaskTypes { get; set; }
}
public class ProjectTaskSeedDto
public class ProjectTaskTypeSeedDto
{
public string Name { get; set; }
public string Description { get; set; }

View file

@ -127,7 +127,7 @@ const IntranetDashboard: React.FC = () => {
permission: 'App.Intranet.Announcement.Widget',
column: 'right',
},
{ id: 'priority-tasks', permission: 'App.Project.Task.Widget', column: 'right' },
{ id: 'priority-tasks', permission: 'App.Project.TaskType.Widget', column: 'right' },
{ id: 'meal-weekly-menu', permission: 'App.Intranet.Meal.Widget', column: 'right' },
{ id: 'shuttle-route', permission: 'App.Intranet.ShuttleRoute.Widget', column: 'right' },
{ id: 'leave-management', permission: 'App.Hr.Leave.Widget', column: 'right' },