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'.






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'.