mirror of https://github.com/gmbrax/Pilgrim.git
Compare commits
No commits in common. "4d3606b197649ff68e74459fa142b59f631df4f8" and "ca14588a1d7fbb292b08d33ba6956a9699a7dd10" have entirely different histories.
4d3606b197
...
ca14588a1d
|
|
@ -1,144 +1,3 @@
|
||||||
# Database files
|
|
||||||
database.db
|
database.db
|
||||||
|
__pycache__
|
||||||
# Byte-compiled / optimized / DLL files
|
/.idea/
|
||||||
__pycache__/
|
|
||||||
*.py[cod]
|
|
||||||
*$py.class
|
|
||||||
|
|
||||||
# C extensions
|
|
||||||
*.so
|
|
||||||
|
|
||||||
# Distribution / packaging
|
|
||||||
.Python
|
|
||||||
build/
|
|
||||||
develop-eggs/
|
|
||||||
dist/
|
|
||||||
downloads/
|
|
||||||
eggs/
|
|
||||||
.eggs/
|
|
||||||
lib/
|
|
||||||
lib64/
|
|
||||||
parts/
|
|
||||||
sdist/
|
|
||||||
var/
|
|
||||||
wheels/
|
|
||||||
share/python-wheels/
|
|
||||||
*.egg-info/
|
|
||||||
.installed.cfg
|
|
||||||
*.egg
|
|
||||||
MANIFEST
|
|
||||||
|
|
||||||
# PyInstaller
|
|
||||||
# Usually these files are written by a python script from a template
|
|
||||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
||||||
*.manifest
|
|
||||||
*.spec
|
|
||||||
|
|
||||||
# Installer logs
|
|
||||||
pip-log.txt
|
|
||||||
pip-delete-this-directory.txt
|
|
||||||
|
|
||||||
# Unit test / coverage reports
|
|
||||||
htmlcov/
|
|
||||||
.tox/
|
|
||||||
.nox/
|
|
||||||
.coverage
|
|
||||||
.coverage.*
|
|
||||||
.cache
|
|
||||||
nosetests.xml
|
|
||||||
coverage.xml
|
|
||||||
*.cover
|
|
||||||
*.py,cover
|
|
||||||
.hypothesis/
|
|
||||||
.pytest_cache/
|
|
||||||
cover/
|
|
||||||
|
|
||||||
# Translations
|
|
||||||
*.mo
|
|
||||||
*.pot
|
|
||||||
|
|
||||||
# Django stuff:
|
|
||||||
*.log
|
|
||||||
local_settings.py
|
|
||||||
db.sqlite3
|
|
||||||
db.sqlite3-journal
|
|
||||||
|
|
||||||
# Flask stuff:
|
|
||||||
instance/
|
|
||||||
.webassets-cache
|
|
||||||
|
|
||||||
# Scrapy stuff:
|
|
||||||
.scrapy
|
|
||||||
|
|
||||||
# Sphinx documentation
|
|
||||||
docs/_build/
|
|
||||||
build/
|
|
||||||
temp/
|
|
||||||
|
|
||||||
# PyBuilder
|
|
||||||
target/
|
|
||||||
|
|
||||||
# Jupyter Notebook
|
|
||||||
.ipynb_checkpoints
|
|
||||||
|
|
||||||
# IPython
|
|
||||||
profile_default/
|
|
||||||
ipython_config.py
|
|
||||||
|
|
||||||
# pyenv
|
|
||||||
.python-version
|
|
||||||
|
|
||||||
# pipenv
|
|
||||||
Pipfile.lock
|
|
||||||
|
|
||||||
# poetry
|
|
||||||
poetry.lock
|
|
||||||
|
|
||||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
||||||
__pypackages__/
|
|
||||||
|
|
||||||
# Celery stuff
|
|
||||||
celerybeat-schedule
|
|
||||||
celerybeat.pid
|
|
||||||
|
|
||||||
# SageMath parsed files
|
|
||||||
*.sage.py
|
|
||||||
|
|
||||||
# Environments
|
|
||||||
.env
|
|
||||||
.env.*
|
|
||||||
.venv
|
|
||||||
venv/
|
|
||||||
ENV/
|
|
||||||
env/
|
|
||||||
env.bak/
|
|
||||||
venv.bak/
|
|
||||||
|
|
||||||
# Spyder project settings
|
|
||||||
.spyderproject
|
|
||||||
.spyproject
|
|
||||||
|
|
||||||
# Rope project settings
|
|
||||||
.ropeproject
|
|
||||||
|
|
||||||
# mkdocs documentation
|
|
||||||
/site
|
|
||||||
|
|
||||||
# mypy
|
|
||||||
.mypy_cache/
|
|
||||||
.dmypy.json
|
|
||||||
dmypy.json
|
|
||||||
|
|
||||||
# Pyre type checker
|
|
||||||
.pyre/
|
|
||||||
|
|
||||||
# pytype static type analyzer
|
|
||||||
.pytype/
|
|
||||||
|
|
||||||
# Cython debug symbols
|
|
||||||
cython_debug/
|
|
||||||
|
|
||||||
# IDE settings
|
|
||||||
.vscode/
|
|
||||||
.idea/
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="jdk" jdkName="Python 3.10 (Pilgrim)" jdkType="Python SDK" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/Pilgrim.iml" filepath="$PROJECT_DIR$/.idea/Pilgrim.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
49
README.md
49
README.md
|
|
@ -1,50 +1,3 @@
|
||||||
# Python_Pilgrim
|
# Python_Pilgrim
|
||||||
|
|
||||||
## Overview
|
Python Based Travel Diary
|
||||||
|
|
||||||
**Python_Pilgrim** is a Python-based travel diary application designed to help users document and manage their travel experiences. The project provides tools for recording trips, organizing travel notes, and storing memories in a structured and accessible format.
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- Create and manage travel diaries
|
|
||||||
- Add, edit, and delete travel entries
|
|
||||||
- Organize trips by date, location, or theme
|
|
||||||
- Store photos, notes, and other media
|
|
||||||
- Export and share travel logs
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
- Python 3.8 or higher
|
|
||||||
- Linux operating system (tested on Ubuntu 20.04+)
|
|
||||||
- Visual Studio Code (VSCode) for development (optional but strongly recommended)
|
|
||||||
- pip (Python package installer)
|
|
||||||
- Optional: virtualenv for isolated environments
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
1. Clone the repository:
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/gmbrax/Pilgrim.git
|
|
||||||
```
|
|
||||||
2. Navigate to the project directory:
|
|
||||||
```bash
|
|
||||||
cd Pilgrim
|
|
||||||
```
|
|
||||||
3. Create a virtual environment and, then, activate it:
|
|
||||||
```bash
|
|
||||||
python -m venv .venv
|
|
||||||
source .venv/bin/activate
|
|
||||||
```
|
|
||||||
4. Install the required dependencies:
|
|
||||||
```bash
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
To run the main application, execute:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
python <???>.py
|
|
||||||
```
|
|
||||||
|
|
||||||
This will start the Python_Pilgrim application. Follow the on-screen instructions to create and manage your travel diaries.
|
|
||||||
|
|
@ -7,10 +7,7 @@ from pilgrim.ui.ui import UIApp
|
||||||
class Application:
|
class Application:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.database = Database()
|
self.database = Database()
|
||||||
session = self.database.session()
|
self.ui = UIApp(ServiceManagerMock())
|
||||||
session_manager = ServiceManager()
|
|
||||||
session_manager.set_session(session)
|
|
||||||
self.ui = UIApp(session_manager)
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.database.create()
|
self.database.create()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from ..models.entry import Entry
|
from ..models.entry import Entry
|
||||||
from ..models.travel_diary import TravelDiary
|
from ..models.travel_diary import TravelDiary
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
from ..models.travel_diary import TravelDiary
|
from ..models.travel_diary import TravelDiary
|
||||||
import asyncio
|
|
||||||
|
|
||||||
class TravelDiaryService:
|
class TravelDiaryService:
|
||||||
def __init__(self,session):
|
def __init__(self,session):
|
||||||
self.session = session
|
self.session = session
|
||||||
async def async_create(self, name:str):
|
def create(self, name:str):
|
||||||
new_travel_diary = TravelDiary(name)
|
new_travel_diary = TravelDiary(name)
|
||||||
self.session.add(new_travel_diary)
|
self.session.add(new_travel_diary)
|
||||||
self.session.commit()
|
self.session.commit()
|
||||||
|
|
@ -18,17 +18,14 @@ class TravelDiaryService:
|
||||||
def read_all(self):
|
def read_all(self):
|
||||||
return self.session.query(TravelDiary).all()
|
return self.session.query(TravelDiary).all()
|
||||||
|
|
||||||
def update(self, travel_diary_id: int, name: str):
|
def update(self, travel_diary_id: TravelDiary, travel_diary_dst: TravelDiary):
|
||||||
original = self.read_by_id(travel_diary_id)
|
original = self.read_by_id(travel_diary_id.id)
|
||||||
if original is not None:
|
if original is not None:
|
||||||
original.name = name
|
original.name = travel_diary_dst.name
|
||||||
self.session.commit()
|
self.session.commit()
|
||||||
self.session.refresh(original)
|
self.session.refresh(original)
|
||||||
return original
|
return original
|
||||||
|
|
||||||
async def async_update(self, travel_diary_id: int, name: str):
|
|
||||||
return self.update(travel_diary_id, name)
|
|
||||||
|
|
||||||
def delete(self, travel_diary_id: TravelDiary):
|
def delete(self, travel_diary_id: TravelDiary):
|
||||||
excluded = self.read_by_id(travel_diary_id.id)
|
excluded = self.read_by_id(travel_diary_id.id)
|
||||||
if excluded is not None:
|
if excluded is not None:
|
||||||
|
|
|
||||||
|
|
@ -127,8 +127,8 @@ class DiaryListScreen(Screen):
|
||||||
service_manager = self.app.service_manager
|
service_manager = self.app.service_manager
|
||||||
travel_diary_service = service_manager.get_travel_diary_service()
|
travel_diary_service = service_manager.get_travel_diary_service()
|
||||||
|
|
||||||
# Usa método síncrono agora
|
# Uses async method
|
||||||
diaries = travel_diary_service.read_all()
|
diaries = await travel_diary_service.async_read_all()
|
||||||
|
|
||||||
# Saves current state
|
# Saves current state
|
||||||
current_diary_id = None
|
current_diary_id = None
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue