Merge changes from dev to main#198
Conversation
…icle and saves it into the database.
Add database schema for automated scoring mode. - New automated_settings JSON column on contests table for storing eligibility criteria and evaluation point configuration - Alembic migration to add the column
…193) Add frontend support for configuring automated scoring mode. - New "Automated Scoring" option in contest creation form - Eligibility criteria settings (minimum edits, minimum outgoing links) - Evaluation point settings (points per byte, link, reference, image, etc.) - Automated mode is mutually exclusive with simple/multi-parameter modes
Allow importing articles from Wikipedia categories as pending submissions. - Category selector with configurable import limit (up to 5000 articles) - Automatic duplicate detection to skip already-submitted articles - Import summary showing total imported and skipped counts - Available only for automated scoring contests with configured categories - Restricted to jury members and superadmins
Automatically evaluate submissions based on configured scoring criteria. - Eligibility checks (minimum edits, minimum outgoing links) - Point-based scoring across multiple dimensions (bytes, links, references, infoboxes, images) - Clickable status badges and scores to view evaluation details - Score breakdown modal showing points earned per component (for accepted ones) or rejection reason (for rejected ones) - Batch evaluation triggered via "Refresh Metadata" button
…omated scoring (#196) Dashboard and editing improvements for automated scoring contests. - Filter tabs (All | Accepted | Rejected | Pending) with count badges above the submissions table - Hide multi-parameter scoring toggle when in automated scoring mode - Show editable eligibility and evaluation criteria in the edit modal for automated scoring contests - Non-automated contests remain completely unaffected
…con (#200) - Removed filter functionality from leaderboard - Replaced ranking system with alphabetical sorting - Fixed trusted members icon display This improves UI clarity and simplifies user experience.
Updated dashboard UI and improved contest behavior: - Added Pagination to the dashboard - Implemented scrolling on the dashboard - Updated contest section to show participated contests instead of created ones - Removed jury review label from feedback forms
- Fixed z-index issue to ensure alerts/notifications appear above the modal - Improved layout and alignment issues in contest view UI
|
The only inconsistency I found is not in the migrations themselves, but in the code alignment itself: but the frontend doesn't provide input fields for these values. The database schema (via automated_settings JSON column) can store these values, but the UI doesn't expose them. |
| current_app.logger.warning( | ||
| "Failed to fetch infobox count: %s", str(ibx_error) | ||
| ) | ||
| except Exception: # pylint: disable=broad-exception-caught |
| # validation or scoring yet. | ||
| try: | ||
| image_count = get_article_image_count(article_link) | ||
| except Exception as img_error: # pylint: disable=broad-exception-caught |
There was a problem hiding this comment.
disabling pylint is not a good practice.
pylint warings are there for a reason.
and they should be handled properly.
| current_app.logger.warning( | ||
| "Failed to fetch image count: %s", str(img_error) | ||
| ) | ||
| except Exception: # pylint: disable=broad-exception-caught |
|
|
||
| try: | ||
| infobox_count = get_article_infobox_count(article_link) | ||
| except Exception as ibx_error: # pylint: disable=broad-exception-caught |
| from flask import current_app | ||
|
|
||
| current_app.logger.warning("%s: %s", message, str(error)) | ||
| except Exception: # pylint: disable=broad-exception-caught |
|
Please attach a The reason why it took so much time to merge this PR, |
…_count column. The column 'article_word_count' stores the article's size in BYTES (from MediaWiki API 'size' field), not a word count. Add a property alias so new code can reference the semantically correct name without a risky Alembic migration.
… fields The automated evaluation engine was reading min_bytes and min_references from automated_settings.eligibility, but those had no UI and always defaulted to 0. Now reads from the common contest fields (min_byte_count, min_reference_count) shared across all scoring modes.
Adds mwparserfromhell==0.6.6 to parse wikitext ASTs for reliable ref tag counting. Regex fallback is preserved for environments where the dependency is unavailable.
…ain validation Metadata Refresh Pagination: - Paginate metadata refresh for automated scoring contests using offset/batch_size query params (default 10 articles per batch) - Frontend loops through batches with persistent progress counter - Simple/multi-parameter scoring modes unchanged Category Crawler Rate-Limiting: - Cap crawl imports per request (default 500, hard cap 2000 via MAX_CRAWL_LIMIT env var) - Add cmcontinue-based pagination with 'Import Next Batch' support - Upgrade reference counting to use mwparserfromhell with regex fallback Others: - Add DELETE /submission/<id> endpoint (fixes 405 METHOD NOT ALLOWED for reviewers trying to delete submissions) - Add cross-wiki domain validation for automated scoring contests - Fix pylint import-outside-toplevel suppressions
|
@Agamya-Samuel Mostly of the suggested optimizations have been done except the pylint warnings, it requires too much time and being a lil bit busy with my work I'm not able to do that currently but can work on it in near future. Also checked the entire app pipeline end-to-end and all the functionalities are working fine as expected. Kindly review it again and let me know if any other changes are required. |
thanks for the update @hridyesh-gupta, will review this by EoD |






This PR contains the commits which were there in dev only, merging them into main to sync both the branches. To make the main branch 'Ready to deploy'.