85 lines
2.1 KiB
Markdown
85 lines
2.1 KiB
Markdown
# How to Apply the Timezone Fix
|
|
|
|
## The Issue
|
|
You tried to clock out and the time still showed UTC (13:05) instead of Riyadh time (16:05).
|
|
|
|
## Why This Happens
|
|
The code changes have been made, but they won't take effect until you **restart the Django server**.
|
|
|
|
## Steps to Apply the Fix
|
|
|
|
### 1. Restart the Django Development Server
|
|
|
|
**Stop the current server:**
|
|
- Press `Ctrl+C` in the terminal where Django is running
|
|
|
|
**Start it again:**
|
|
```bash
|
|
cd /Users/marwanalwali/AgdarCentre
|
|
python3 manage.py runserver
|
|
```
|
|
|
|
### 2. Clear Today's Attendance Record (Optional)
|
|
|
|
If you want to test with a fresh clock-in, you can delete today's attendance record:
|
|
|
|
```bash
|
|
python3 manage.py shell
|
|
```
|
|
|
|
Then in the Python shell:
|
|
```python
|
|
from django.utils import timezone
|
|
from hr.models import Attendance
|
|
from django.contrib.auth import get_user_model
|
|
|
|
User = get_user_model()
|
|
|
|
# Replace 'your_username' with your actual username
|
|
user = User.objects.get(username='your_username')
|
|
today = timezone.now().date()
|
|
|
|
# Delete today's attendance
|
|
Attendance.objects.filter(employee=user, date=today).delete()
|
|
|
|
print("Today's attendance record deleted. You can now clock in again.")
|
|
exit()
|
|
```
|
|
|
|
### 3. Test the Fix
|
|
|
|
1. Go to the attendance kiosk page
|
|
2. Clock in - you should see the current Riyadh time (e.g., 16:17)
|
|
3. Clock out - you should see the current Riyadh time
|
|
|
|
## What Was Fixed
|
|
|
|
### File: `hr/views.py`
|
|
**Before:**
|
|
```python
|
|
now = timezone.now().time() # This extracted UTC time
|
|
```
|
|
|
|
**After:**
|
|
```python
|
|
now = timezone.localtime(timezone.now()).time() # This extracts Riyadh time
|
|
```
|
|
|
|
## Verification
|
|
|
|
After restarting, the time displayed should match your local Riyadh time. If it's currently 16:17 in Riyadh, that's what you should see when you clock in/out.
|
|
|
|
## If It Still Doesn't Work
|
|
|
|
1. Check that the server restarted successfully (no errors in terminal)
|
|
2. Clear your browser cache (Ctrl+Shift+R or Cmd+Shift+R)
|
|
3. Check the server is using the correct settings file
|
|
4. Run the timezone test script:
|
|
```bash
|
|
python3 test_timezone.py
|
|
```
|
|
|
|
## Need Help?
|
|
|
|
If the issue persists after restarting, let me know and I can help troubleshoot further.
|