docs: #306 fixes for supporting the second metre

This commit is contained in:
Hamid Reza Mohammadi 2022-04-22 21:30:19 +04:30
parent 2fcd8b4410
commit b8e44b658f
4 changed files with 112 additions and 7 deletions

View File

@ -222,6 +222,80 @@ else
</td>
</tr>
}
@if (Model.Correction.Rhythm2 != null)
{
<tr>
<td colspan="2">
وزن دوم
</td>
</tr>
<tr>
<td>
@if (Model.PageInformation.Poem.Verses.Length > 0)
{
@Model.PageInformation.Poem.Verses[0].Text
}
</td>
<td>
@if (Model.PageInformation.Poem.Verses.Length > 1)
{
@Model.PageInformation.Poem.Verses[1].Text
}
</td>
</tr>
<tr>
<td>متن اولیه</td>
<td>پیشنهاد</td>
</tr>
<tr>
<td>
<p style="color:red">@Model.Correction.OriginalRhythm2</p>
</td>
<td>
<p style="color:green">@Model.Correction.Rhythm2</p>
</td>
</tr>
<tr>
<td colspan="2">
@if (Model.Correction.Rhythm2Result == RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged)
{
<input type="radio" id="rhythm2_review_result_Approved" name="rhythm2_review_result" class="radio-approved" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Approved">
<label for="rhythm2_review_result_Approved">تأیید می‌شود</label>
<br>
<input type="radio" id="rhythm2_review_result_NotChanged" name="rhythm2_review_result" class="radio-notchanged" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged" checked="checked">
}
else
{
<input type="radio" id="rhythm2_review_result_Approved" name="rhythm2_review_result" class="radio-approved" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Approved" checked="checked">
<label for="rhythm2_review_result_Approved">تأیید می‌شود</label>
<br>
<input type="radio" id="rhythm2_review_result_NotChanged" name="rhythm2_review_result" class="radio-notchanged" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged">
}
<label for="rhythm2_review_result_NotChanged">تغییری نکرده</label><br>
<input type="radio" id="rhythm2_review_result_RejectedBecauseWrong" name="rhythm2_review_result" class="radio-notcorrect" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseWrong">
<label for="rhythm2_review_result_RejectedBecauseWrong">درست نیست</label><br>
<input type="radio" id="rhythm2_review_result_RejectedBecauseVariant" name="rhythm2_review_result" class="radio-variant" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseVariant">
<label for="rhythm2_review_result_RejectedBecauseVariant">مربوط به نسخهٔ دیگری است</label><br>
<input type="radio" id="rhythm_2review_result_RejectedBecauseUnnecessaryChange" name="rhythm2_review_result" class="radio-unnecessary" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseUnnecessaryChange">
<label for="rhythm2_review_result_RejectedBecauseUnnecessaryChange">تغییر سلیقه‌ای یا بی دلیل است</label><br>
<input type="radio" id="rhythm2_review_result_Rejected" name="rhythm2_review_result" class="radio-rejected" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Rejected">
<label for="rhythm2_review_result_Rejected">به دلیل دیگری رد می‌شود</label><br>
@if (Model.Correction.Title != null)
{
<p>در صورت نیاز به درج یادداشت برای تغییر وزن آن را در قسمت عنوان وارد فرمایید.</p>
}
else
{
<input type="text" id="title_review_note" name="title_review_note" value="" size="50" />
}
</td>
</tr>
}
@if (Model.Correction.VerseOrderText != null)
@foreach (var verse in Model.Correction.VerseOrderText)
{

View File

@ -111,14 +111,26 @@ namespace GanjooRazor.Areas.Admin.Pages
if (Correction.Rhythm != null)
{
GanjoorMetre originalMetre = null;
if (PageInformation.Poem.Sections.Where(s => s.SectionType == PoemSectionType.WholePoem && s.GanjoorMetre != null).Any())
if (PageInformation.Poem.Sections.Where(s => s.SectionType == PoemSectionType.WholePoem && s.GanjoorMetre != null && s.VerseType == VersePoemSectionType.First).Any())
{
originalMetre = PageInformation.Poem.Sections.Where(s => s.SectionType == PoemSectionType.WholePoem && s.GanjoorMetre != null).OrderBy(s => s.VerseType).First().GanjoorMetre;
originalMetre = PageInformation.Poem.Sections.Where(s => s.SectionType == PoemSectionType.WholePoem && s.VerseType == VersePoemSectionType.First && s.GanjoorMetre != null).OrderBy(s => s.VerseType).First().GanjoorMetre;
}
Correction.OriginalRhythm = originalMetre == null ? null : originalMetre.Rhythm;
if (Correction.OriginalRhythm == Correction.Rhythm)
Correction.RhythmResult = CorrectionReviewResult.NotChanged;
}
if (Correction.Rhythm2 != null)
{
GanjoorMetre originalMetre2 = null;
if (PageInformation.Poem.Sections.Where(s => s.SectionType == PoemSectionType.WholePoem && s.GanjoorMetre != null && s.VerseType == VersePoemSectionType.Second).Any())
{
originalMetre2 = PageInformation.Poem.Sections.Where(s => s.SectionType == PoemSectionType.WholePoem && s.GanjoorMetre != null && s.VerseType == VersePoemSectionType.Second).OrderBy(s => s.VerseType).First().GanjoorMetre;
}
Correction.OriginalRhythm2 = originalMetre2 == null ? null : originalMetre2.Rhythm;
if (Correction.OriginalRhythm2 == Correction.Rhythm2)
Correction.Rhythm2Result = CorrectionReviewResult.NotChanged;
}
}
}
@ -141,7 +153,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
public async Task<IActionResult> OnPostSendCorrectionsModerationAsync(int correctionId,
string titleReviewResult, string rhythmReviewResult,
string titleReviewResult, string rhythmReviewResult, string rhythm2ReviewResult,
string titleReviewNote, string[] verseReviewResult,
string[] verseReviewNotes)
{
@ -184,7 +196,20 @@ namespace GanjooRazor.Areas.Admin.Pages
}
}
if(verseReviewResult.Length != Correction.VerseOrderText.Length)
if (Correction.Rhythm2 != null)
{
if (rhythm2ReviewResult == null)
{
return new BadRequestObjectResult("لطفا تغییر وزن دوم را بازبینی کنید.");
}
else
{
Correction.Rhythm2Result = (CorrectionReviewResult)Enum.Parse(typeof(CorrectionReviewResult), rhythm2ReviewResult);
Correction.ReviewNote = titleReviewNote;
}
}
if (verseReviewResult.Length != Correction.VerseOrderText.Length)
{
return new BadRequestObjectResult("لطفا تکلیف بررسی تمام مصرعهای پیشنهادی را مشخص کنید.");
}

View File

@ -308,6 +308,11 @@
rhythmReviewResult = $('input[name=rhythm_review_result]:checked').val()
}
var rhythm2ReviewResult = 'DontCare';
if ($('#rhythm2_review_result_Approved').length > 0) {
rhythm2ReviewResult = $('input[name=rhythm2_review_result]:checked').val()
}
var verseReviewResult = [];
var verseReviewNotes = [];
@ -331,6 +336,7 @@
correctionId: correctionId,
titleReviewResult: titleReviewResult,
rhythmReviewResult: rhythmReviewResult,
rhythm2ReviewResult: rhythm2ReviewResult,
titleReviewNote: $('#title_review_note') == null? null : $('#title_review_note').val(),
verseReviewResult: verseReviewResult,
verseReviewNotes: verseReviewNotes,

View File

@ -254,7 +254,7 @@ namespace RMuseum.Services.Implementation
dbCorrection.AffectedThePoem = true;
var secondMetreSection = sections.FirstOrDefault(s => s.SectionType == PoemSectionType.WholePoem && s.VerseType == VersePoemSectionType.Second);
if (moderation.Rhythm == "")
if (moderation.Rhythm2 == "")
{
if (secondMetreSection != null)
{
@ -347,12 +347,12 @@ namespace RMuseum.Services.Implementation
}
secondMetreSection.OldGanjoorMetreId = secondMetreSection.GanjoorMetreId;
var metre = await _context.GanjoorMetres.AsNoTracking().Where(m => m.Rhythm == moderation.Rhythm).SingleOrDefaultAsync();
var metre = await _context.GanjoorMetres.AsNoTracking().Where(m => m.Rhythm == moderation.Rhythm2).SingleOrDefaultAsync();
if (metre == null)
{
metre = new GanjoorMetre()
{
Rhythm = moderation.Rhythm,
Rhythm = moderation.Rhythm2,
VerseCount = 0
};
_context.GanjoorMetres.Add(metre);