- Add MIN_JOB_NUMBER = 663000 threshold in Config
- Skip jobs with OMG# below 663000 (old jobs)
- Only process new jobs >= 663000
- Log skipped old jobs for visibility
- Move skipped files to processed folder (not failed)
This prevents conflicts with existing old entries that may not have
proper custom fields populated.
- Add get_business_areas_folder() method to find/create Business Areas
- Update get_or_create_folder() to default to Business Areas as parent
- Cache Business Areas folder ID for performance
- Now creates structure: LGL Team > Business Areas > [Robots/PetCare/etc]
- Prevents creating folders at root level
This fixes the issue where folders like 'Robots' were created at the
space root instead of inside Business Areas.
- Change paths to match production server structure
- HOT_FOLDER: /data/PRODUCTION/CLIENT-STORES/BISSELL-WRIKE/IN
- PROCESSED_FOLDER: /data/PRODUCTION/CLIENT-STORES/BISSELL-WRIKE/PROCESSED
- FAILED_FOLDER: /data/PRODUCTION/CLIENT-STORES/BISSELL-WRIKE/PROCESSED/FAILED
- REPORTS_DIR: /data/PRODUCTION/CLIENT-STORES/BISSELL-WRIKE/PROCESSED/REPORTS
These match the existing Staging script paths on the server.
- Change user from root to dalim
- Update working directory to /home/dalim/BISSELL-WRIKE
- Use virtual environment python at /home/dalim/BISSELL-WRIKE/bissell-wrike/bin/python3
- Update all installation commands to use venv
- Add venv activation steps throughout guide
- Add ownership commands for dalim user
- Document wrike_monitor_lgl.py production version
- Explain HTML link format for OMG# field
- Document recursive duplicate detection in Business Areas
- Add discovery tool usage instructions
- Add Version 3.0 changelog
- Clarify differences between Staging and LGL Team versions
- Add wrike_monitor_lgl.py for LGL Team board
* Updated API token and space configuration
* All 11 custom fields mapped correctly
* OMG# field now stores HTML links (matching LGL Team format)
* Recursive duplicate detection across entire Business Areas folder
* Handles HTML link extraction for accurate comparison
- Add discover_board_info.py
* Automated discovery tool for board configuration
* Finds space IDs, custom field IDs, and item types
* Generates configuration snippets
- Add config_lgl_team.py
* Reference configuration for LGL Team space
* Complete field mapping documentation
- Add test_duplicate_detection.py
* Testing tool to verify duplicate detection logic
* Can search for specific OMG# values
- Update requirements.txt
- Remove wrike_import.py (moved to OLD/)
Key Features:
- NO DUPLICATES: Searches entire Business Areas folder before creating
- HTML Link Support: OMG# stored as clickable links matching existing format
- Global Search: Uses descendants=true for efficient recursive search
- Format Matching: Generates OMG# links identical to existing entries
🤖 Generated with Claude Code
Added documentation about Wrike API v4 limitation where deliverables
are created with correct structure/fields but may display as "Project"
type in UI instead of "Deliverable" type.
Users can manually change the type in Wrike UI if needed. All
functionality works correctly regardless of display type.
Updated feature list to reflect:
- Deliverables created as projects (not tasks)
- Separate OMG# and OMG URL fields
- Proper duplicate prevention
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changes:
- Added DELIVERABLE_ITEM_TYPE_ID config (5793903 for Staging)
- Updated create_deliverable_project() to use customItemTypeId parameter
- Deliverables now created with proper "Deliverable" custom item type
- Results in scope=WsFolder (instead of RbFolder)
- Matches manually created deliverables in Wrike UI
This ensures deliverables display correctly as "Deliverable" type
in the Wrike interface, not generic "Project" type.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changes:
- Added OMG_URL custom field (IEAGU2B2JUAJRZ7Y)
- Updated OMG# field ID (IEAGU2B2JUAJV4P7)
- Deliverables now use:
- OMG# = plain number (e.g., "6027380") for duplicate detection
- OMG_URL = clickable URL (e.g., "https://bissell.omg.oliver.solutions/jobs/5027381")
- Fixed find_deliverable_by_omg_number() to search on plain number
- Improved error handling in duplicate detection
- Tested: Duplicate prevention works correctly
This prevents duplicate deliverable creation by searching on the plain
OMG# number while still providing clickable URLs in the OMG_URL field.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changes:
- Deliverables now created as Projects (not Tasks)
- Project dates: Using StartDate/EndDate from ProjectDetails
- Deliverable dates: BriefDate as start, LiveDate (or DueDate) as end
- OMG# field for deliverables: Contains URL (OMG# - 999999)
- Example: 6361863 → https://bissell.omg.oliver.solutions/jobs/5361864
- Projects keep OMG# as plain number
- Added find_deliverable_by_omg_number() for duplicate detection
- Added generate_omg_url() for URL construction
Structure: Folder > Project > Deliverable (as Project)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major additions:
- wrike_monitor.py: Real-time folder monitoring with watchdog
- Daily email reports at 7PM with comprehensive statistics
- Failed file handling with error logs
- Periodic scanning for missed files
- systemd service support for production deployment
- Sequential processing to prevent race conditions
- Proper parent/child folder matching using childIds
Configuration:
- Easy path configuration for local/production
- Configurable Wrike space ID
- Email settings for daily reports
- Auto-cleanup of processed files (24h retention)
Documentation:
- INSTALLATION.md: Complete systemd service setup guide
- QUICKSTART.md: Quick reference for both tools
- Updated README.md with tool comparison
- requirements.txt with clear dependencies
Bug fixes:
- Fixed duplicate folder/project creation via childIds matching
- Added logging for skipped deliverables
- Improved cache management
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>