diff --git a/WorkManagementTool/Components/Homework/HomeworkCreation.razor b/WorkManagementTool/Components/Homework/HomeworkCreation.razor new file mode 100644 index 0000000..6828237 --- /dev/null +++ b/WorkManagementTool/Components/Homework/HomeworkCreation.razor @@ -0,0 +1,77 @@ +@page "/homeworks/creation/{IdSchoolSubject:int}" + +@using System.Threading.Tasks +@using WorkManagementTool.Services +@using WorkManagementTool.Data.Entities + +@inject HomeworkService HomeworkService +@inject NavigationManager NavigationManager +@inject SchoolSubjectService SchoolSubjectService + +

HomeworkCreation

+ +@if (SchoolSubject is null) +{ +

School subject not found

+} +else +{ + + + + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+} + +@code { + [SupplyParameterFromForm] + private Homework? Model { get; set; } + + [Parameter] + public int IdSchoolSubject { get; set; } + + private SchoolSubject? SchoolSubject { get; set; } + + protected override async Task OnInitializedAsync() + { + Model ??= new Homework + { + Title = null!, + Deleted = false, + DueDate = DateTime.Now.AddDays(1), + IsCompleted = false, + }; + SchoolSubject = await SchoolSubjectService.GetSchoolSubjectByIdAsync(IdSchoolSubject); + } + + private async Task Submit() + { + if (Model is not null && SchoolSubject is not null) + { + Model!.SchoolSubject = SchoolSubject!; + await HomeworkService.AddHomeworkAsync(Model!); + NavigationManager.NavigateTo($"/homeworks/{IdSchoolSubject}"); + } + } +} diff --git a/WorkManagementTool/Components/Homework/HomeworkDisplay.razor b/WorkManagementTool/Components/Homework/HomeworkDisplay.razor new file mode 100644 index 0000000..34b2d47 --- /dev/null +++ b/WorkManagementTool/Components/Homework/HomeworkDisplay.razor @@ -0,0 +1,39 @@ +

HomeworkDisplay

+ +@using WorkManagementTool.Services +@using WorkManagementTool.Data.Entities; + +@inject HomeworkService HomeworkService + +@if (homework is null) +{ +

Homework not found

+} +else +{ +
+ Title +
@homework.Title
+ + Description +
@homework.Description
+ + Due date +
@homework.DueDate
+ + Completed +
@homework.IsCompleted
+
+} + +@code { + [Parameter] + public int Id { get; set; } + + private Homework? homework; + + protected override async Task OnInitializedAsync() + { + homework = await HomeworkService.GetHomeworkByIdAsync(Id); + } +} diff --git a/WorkManagementTool/Components/Homework/HomeworkListing.razor b/WorkManagementTool/Components/Homework/HomeworkListing.razor new file mode 100644 index 0000000..f621849 --- /dev/null +++ b/WorkManagementTool/Components/Homework/HomeworkListing.razor @@ -0,0 +1,63 @@ +@page "/homeworks/{IdSchoolSubject:int}" +@rendermode InteractiveServer +@using WorkManagementTool.Services +@using WorkManagementTool.Data.Entities +@inject HomeworkService HomeworkService + +

HomeworkListing

+ ++ + +
+ + +
+ +@if (homeworkList == null) +{ +

Loading...

+} +else if (homeworkList.Count == 0) +{ +

No homework found

+} +else +{ + +} + +@code { + private List? homeworkList; + [Parameter] + public int IdSchoolSubject { get; set; } + private bool showCompleted { get; set; } = false; + + protected override async Task OnInitializedAsync() + { + await LoadHomeworksAsync(); + } + + private async Task LoadHomeworksAsync() + { + homeworkList = new(); + var uncompletedHomework = await HomeworkService.GetUncompletedHomeworkAsync(IdSchoolSubject); + homeworkList.AddRange(uncompletedHomework); + + if (showCompleted) + { + var completedHomework = await HomeworkService.GetCompletedHomeworksAsync(IdSchoolSubject); + homeworkList.AddRange(completedHomework); + } + } +} diff --git a/WorkManagementTool/Components/Layout/NavMenu.razor b/WorkManagementTool/Components/Layout/NavMenu.razor index 20bfa40..2792578 100644 --- a/WorkManagementTool/Components/Layout/NavMenu.razor +++ b/WorkManagementTool/Components/Layout/NavMenu.razor @@ -26,7 +26,7 @@ diff --git a/WorkManagementTool/Components/SchoolSubject/SchoolSubjectCreation.razor b/WorkManagementTool/Components/SchoolSubject/SchoolSubjectCreation.razor index e5d5c68..6727725 100644 --- a/WorkManagementTool/Components/SchoolSubject/SchoolSubjectCreation.razor +++ b/WorkManagementTool/Components/SchoolSubject/SchoolSubjectCreation.razor @@ -7,8 +7,10 @@

SchoolSubjectCreation

-
- + + + +
@@ -18,13 +20,23 @@
- +
@code { [SupplyParameterFromForm] private SchoolSubject? Model { get; set; } - protected override void OnInitialized() => Model ??= new(); + protected override void OnInitialized() + { + if (Model is null) + { + Model = new SchoolSubject + { + Name = null!, + Description = null, + }; + } + } private async Task Submit() { diff --git a/WorkManagementTool/Components/SchoolSubject/SchoolSubjectListing.razor b/WorkManagementTool/Components/SchoolSubject/SchoolSubjectListing.razor index 84d62df..4e065ab 100644 --- a/WorkManagementTool/Components/SchoolSubject/SchoolSubjectListing.razor +++ b/WorkManagementTool/Components/SchoolSubject/SchoolSubjectListing.razor @@ -23,10 +23,13 @@ else
    @foreach (var schoolSubject in schoolSubjects) { - -
    - -
    +
  • + +
    + + Manage homeworks +
    +
  • }
} diff --git a/WorkManagementTool/Data/Entities/Homework.cs b/WorkManagementTool/Data/Entities/Homework.cs index 6e881ae..2fecf41 100644 --- a/WorkManagementTool/Data/Entities/Homework.cs +++ b/WorkManagementTool/Data/Entities/Homework.cs @@ -1,14 +1,25 @@ -namespace WorkManagementTool.Data.Entities +using System.ComponentModel.DataAnnotations; + +namespace WorkManagementTool.Data.Entities { public class Homework { public int Id { get; set; } - public string Title { get; set; } = null!; + [Required] + [MaxLength(200, ErrorMessage = "Title must be less than 200 caracters")] + [MinLength(3, ErrorMessage = "Title must be at least 3 caracters")] + public required string Title { get; set; } = null!; + [MaxLength(1000, ErrorMessage = "Description must be less than 1000 caracters")] + [MinLength(3, ErrorMessage = "Description must be at least 3 caracters")] public string? Description { get; set; } - public DateTime DueDate { get; set; } - public bool IsCompleted { get; set; } + [Required] + [DataType(DataType.Date)] + public required DateTime DueDate { get; set; } + public required bool IsCompleted { get; set; } public SchoolSubject SchoolSubject { get; set; } = null!; public string? DeliveryMethod { get; set; } public ApplicationUser CreatedBy { get; set; } = null!; + public bool Deleted { get; set; } = false; + public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } } diff --git a/WorkManagementTool/Data/Entities/SchoolSubject.cs b/WorkManagementTool/Data/Entities/SchoolSubject.cs index 14d298d..61766ed 100644 --- a/WorkManagementTool/Data/Entities/SchoolSubject.cs +++ b/WorkManagementTool/Data/Entities/SchoolSubject.cs @@ -1,9 +1,14 @@ -namespace WorkManagementTool.Data.Entities +using System.ComponentModel.DataAnnotations; + +namespace WorkManagementTool.Data.Entities { public class SchoolSubject { public int Id { get; set; } - public string Name { get; set; } = null!; + [Required] + [MaxLength(100, ErrorMessage = "Name must be less than 100 caracters")] + public required string Name { get; set; } = null!; + [MaxLength(500, ErrorMessage = "Description must be less than 500 caracters")] public string? Description { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public bool Deleted { get; set; } = false; diff --git a/WorkManagementTool/Migrations/20251130000007_AddRequiredFieldsAndMissingCreatedAtForHomework.Designer.cs b/WorkManagementTool/Migrations/20251130000007_AddRequiredFieldsAndMissingCreatedAtForHomework.Designer.cs new file mode 100644 index 0000000..230b178 --- /dev/null +++ b/WorkManagementTool/Migrations/20251130000007_AddRequiredFieldsAndMissingCreatedAtForHomework.Designer.cs @@ -0,0 +1,441 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using WorkManagementTool.Data; + +#nullable disable + +namespace WorkManagementTool.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20251130000007_AddRequiredFieldsAndMissingCreatedAtForHomework")] + partial class AddRequiredFieldsAndMissingCreatedAtForHomework + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "10.0.0"); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .HasColumnType("TEXT"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("TEXT"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ClaimType") + .HasColumnType("TEXT"); + + b.Property("ClaimValue") + .HasColumnType("TEXT"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ClaimType") + .HasColumnType("TEXT"); + + b.Property("ClaimValue") + .HasColumnType("TEXT"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("ProviderKey") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("ProviderDisplayName") + .HasColumnType("TEXT"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserPasskey", b => + { + b.Property("CredentialId") + .HasMaxLength(1024) + .HasColumnType("BLOB"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("CredentialId"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserPasskeys", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("TEXT"); + + b.Property("RoleId") + .HasColumnType("TEXT"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("TEXT"); + + b.Property("LoginProvider") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Name") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Value") + .HasColumnType("TEXT"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("WorkManagementTool.Data.ApplicationUser", b => + { + b.Property("Id") + .HasColumnType("TEXT"); + + b.Property("AccessFailedCount") + .HasColumnType("INTEGER"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("TEXT"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("EmailConfirmed") + .HasColumnType("INTEGER"); + + b.Property("LockoutEnabled") + .HasColumnType("INTEGER"); + + b.Property("LockoutEnd") + .HasColumnType("TEXT"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("PasswordHash") + .HasColumnType("TEXT"); + + b.Property("PhoneNumber") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("INTEGER"); + + b.Property("SecurityStamp") + .HasColumnType("TEXT"); + + b.Property("TwoFactorEnabled") + .HasColumnType("INTEGER"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex"); + + b.ToTable("AspNetUsers", (string)null); + }); + + modelBuilder.Entity("WorkManagementTool.Data.Entities.Homework", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CreatedAt") + .HasColumnType("TEXT"); + + b.Property("CreatedById") + .HasColumnType("TEXT"); + + b.Property("Deleted") + .HasColumnType("INTEGER"); + + b.Property("DeliveryMethod") + .HasColumnType("TEXT"); + + b.Property("Description") + .HasMaxLength(1000) + .HasColumnType("TEXT"); + + b.Property("DueDate") + .HasColumnType("TEXT"); + + b.Property("IsCompleted") + .HasColumnType("INTEGER"); + + b.Property("SchoolSubjectId") + .HasColumnType("INTEGER"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("CreatedById"); + + b.HasIndex("SchoolSubjectId"); + + b.ToTable("Homeworks"); + }); + + modelBuilder.Entity("WorkManagementTool.Data.Entities.SchoolSubject", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CreatedAt") + .HasColumnType("TEXT"); + + b.Property("CreatedById") + .HasColumnType("TEXT"); + + b.Property("Deleted") + .HasColumnType("INTEGER"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("CreatedById"); + + b.ToTable("SchoolSubjects"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("WorkManagementTool.Data.ApplicationUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("WorkManagementTool.Data.ApplicationUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserPasskey", b => + { + b.HasOne("WorkManagementTool.Data.ApplicationUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Microsoft.AspNetCore.Identity.IdentityPasskeyData", "Data", b1 => + { + b1.Property("IdentityUserPasskeyCredentialId"); + + b1.Property("AttestationObject") + .IsRequired(); + + b1.Property("ClientDataJson") + .IsRequired(); + + b1.Property("CreatedAt"); + + b1.Property("IsBackedUp"); + + b1.Property("IsBackupEligible"); + + b1.Property("IsUserVerified"); + + b1.Property("Name"); + + b1.Property("PublicKey") + .IsRequired(); + + b1.Property("SignCount"); + + b1.PrimitiveCollection("Transports"); + + b1.HasKey("IdentityUserPasskeyCredentialId"); + + b1.ToTable("AspNetUserPasskeys"); + + b1.ToJson("Data"); + + b1.WithOwner() + .HasForeignKey("IdentityUserPasskeyCredentialId"); + }); + + b.Navigation("Data") + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("WorkManagementTool.Data.ApplicationUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("WorkManagementTool.Data.ApplicationUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("WorkManagementTool.Data.Entities.Homework", b => + { + b.HasOne("WorkManagementTool.Data.ApplicationUser", "CreatedBy") + .WithMany() + .HasForeignKey("CreatedById"); + + b.HasOne("WorkManagementTool.Data.Entities.SchoolSubject", "SchoolSubject") + .WithMany() + .HasForeignKey("SchoolSubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreatedBy"); + + b.Navigation("SchoolSubject"); + }); + + modelBuilder.Entity("WorkManagementTool.Data.Entities.SchoolSubject", b => + { + b.HasOne("WorkManagementTool.Data.ApplicationUser", "CreatedBy") + .WithMany() + .HasForeignKey("CreatedById"); + + b.Navigation("CreatedBy"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/WorkManagementTool/Migrations/20251130000007_AddRequiredFieldsAndMissingCreatedAtForHomework.cs b/WorkManagementTool/Migrations/20251130000007_AddRequiredFieldsAndMissingCreatedAtForHomework.cs new file mode 100644 index 0000000..f2acfc1 --- /dev/null +++ b/WorkManagementTool/Migrations/20251130000007_AddRequiredFieldsAndMissingCreatedAtForHomework.cs @@ -0,0 +1,41 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace WorkManagementTool.Migrations +{ + /// + public partial class AddRequiredFieldsAndMissingCreatedAtForHomework : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CreatedAt", + table: "Homeworks", + type: "TEXT", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "Deleted", + table: "Homeworks", + type: "INTEGER", + nullable: false, + defaultValue: false); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CreatedAt", + table: "Homeworks"); + + migrationBuilder.DropColumn( + name: "Deleted", + table: "Homeworks"); + } + } +} diff --git a/WorkManagementTool/Migrations/ApplicationDbContextModelSnapshot.cs b/WorkManagementTool/Migrations/ApplicationDbContextModelSnapshot.cs index a70f29f..40945cb 100644 --- a/WorkManagementTool/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/WorkManagementTool/Migrations/ApplicationDbContextModelSnapshot.cs @@ -237,13 +237,20 @@ namespace WorkManagementTool.Migrations .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); + b.Property("CreatedAt") + .HasColumnType("TEXT"); + b.Property("CreatedById") .HasColumnType("TEXT"); + b.Property("Deleted") + .HasColumnType("INTEGER"); + b.Property("DeliveryMethod") .HasColumnType("TEXT"); b.Property("Description") + .HasMaxLength(1000) .HasColumnType("TEXT"); b.Property("DueDate") @@ -257,6 +264,7 @@ namespace WorkManagementTool.Migrations b.Property("Title") .IsRequired() + .HasMaxLength(200) .HasColumnType("TEXT"); b.HasKey("Id"); @@ -284,10 +292,12 @@ namespace WorkManagementTool.Migrations .HasColumnType("INTEGER"); b.Property("Description") + .HasMaxLength(500) .HasColumnType("TEXT"); b.Property("Name") .IsRequired() + .HasMaxLength(100) .HasColumnType("TEXT"); b.HasKey("Id"); diff --git a/WorkManagementTool/Services/HomeworkService.cs b/WorkManagementTool/Services/HomeworkService.cs index 9940931..0219ebe 100644 --- a/WorkManagementTool/Services/HomeworkService.cs +++ b/WorkManagementTool/Services/HomeworkService.cs @@ -20,6 +20,30 @@ namespace WorkManagementTool.Services .ToListAsync(); } + public async Task> GetAllHomeworksAsync() + { + return await _context.Homeworks.ToListAsync(); + } + + public async Task> GetCompletedHomeworksAsync(int idSchoolSubject) + { + return await _context.Homeworks + .Where(w => w.IsCompleted && w.SchoolSubject.Id == idSchoolSubject) + .ToListAsync(); + } + + public async Task> GetUncompletedHomeworkAsync(int idSchoolSubject) + { + return await _context.Homeworks + .Where(w => !w.IsCompleted && w.SchoolSubject.Id == idSchoolSubject) + .ToListAsync(); + } + + public async Task GetHomeworkByIdAsync(int id) + { + return await _context.Homeworks.FindAsync(id); + } + public async Task AddHomeworkAsync(Homework homework) { _context.Homeworks.Add(homework); diff --git a/WorkManagementTool/work_management.db b/WorkManagementTool/work_management.db index 638b914..21bab10 100644 Binary files a/WorkManagementTool/work_management.db and b/WorkManagementTool/work_management.db differ diff --git a/WorkManagementTool/work_management.db-shm b/WorkManagementTool/work_management.db-shm index f505caf..96f633c 100644 Binary files a/WorkManagementTool/work_management.db-shm and b/WorkManagementTool/work_management.db-shm differ diff --git a/WorkManagementTool/work_management.db-wal b/WorkManagementTool/work_management.db-wal index 7e6bbca..ee497b8 100644 Binary files a/WorkManagementTool/work_management.db-wal and b/WorkManagementTool/work_management.db-wal differ