-
Notifications
You must be signed in to change notification settings - Fork 52
Features Icons in features panel #284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
LiranCaduri
wants to merge
172
commits into
PythonFreeCourse:develop
Choose a base branch
from
LiranCaduri:feature/feature-icon
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
172 commits
Select commit
Hold shift + click to select a range
f6c619b
Hello Wrold
aviadamar 1ee94e4
Creating Html Template
aviadamar 96b80de
First Calendar Monthly View - HTML\CSS only
aviadamar 4614585
Merge branch 'main' of https://github.com/PythonFreeCourse/calendar i…
aviadamar 82249b5
Calendar dates calculation intigrating with html, HTML\CSS improvments.
aviadamar d2208d6
Merge branch 'main' of https://github.com/PythonFreeCourse/calendar i…
aviadamar 178e904
Tests for calender_grid.py, changing function according to currection…
aviadamar f385c56
linting bug fixing
aviadamar c2aa519
before merge with develop
aviadamar 3a563cc
after merge with develop
aviadamar 6f9a2ba
Creating a Day object and days subclasses, changing all function and …
aviadamar a17e89b
Fixing Conflicts
aviadamar 75abb99
fix lintings
aviadamar d2577aa
fix lintings
aviadamar e76ed53
tests next week scroll
aviadamar 19768ca
js updates
aviadamar b288c49
Calendar Scrolling with javascript
aviadamar 5621485
Calendar infinit scrolling and functions changes, bus fixing
aviadamar 10b836c
Fix lintings
aviadamar 43dd46e
Fix lintings
aviadamar 248a0ba
Calendar infinit scrolling ducplicates weeks bug fixed
aviadamar 59b7fe3
seetings global parameters for calendar.py
aviadamar efa6b2d
Js - changing to fetch, removing jquery, fixing hint tpying, adding W…
aviadamar 1df4cd5
Front end bug fixing
aviadamar 2e02b65
Fix linting
aviadamar e02bd14
Fix lintings
aviadamar 2271a3c
Fix lintings
aviadamar 126c92e
gixing js bugs
aviadamar 8af556c
fixing syntax
aviadamar bc3322f
Get user local date and time when enter calendar.
aviadamar a60c7c8
Fix lintings
aviadamar 60849ab
bug fixging and pull develop update
aviadamar b8e6044
Fix lintings
aviadamar 0b601e2
Fix lintings
aviadamar 9ca2183
Bugs fixing
aviadamar 79b2f5c
Bugs fixing
aviadamar e4c662d
Js fixing bugs and syntext.
aviadamar 03e4349
Bugs fixing
aviadamar 982daea
Bugs fixing
aviadamar 19de078
JS alerts removal
aviadamar b97279f
Fix Lintings
aviadamar 6516f7c
Js syntext fixing
aviadamar d496b07
Bugs fixing
aviadamar 41b7bd4
Bugs fixing
aviadamar 66d8972
Js fixing varibales and adding div element to request.
aviadamar d09b5fd
add models to db
LiranCaduri 4f54e25
Js global parameters fixing
aviadamar 013c6d5
figure out delete.
LiranCaduri f0bd6ac
Develop update
aviadamar b9a0c0b
Develop Update
aviadamar 894f234
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 5cbf776
Js - eliminate global parameters
aviadamar 901f88f
Linting fixing
aviadamar 445a962
Fix Lintings
aviadamar dd0f480
Js fixings
aviadamar 1e8e206
Fix flake8
aviadamar 85d904f
syntac fixing
aviadamar cb7947c
first structure of route with middlewere
LiranCaduri 30df427
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
aviadamar d39d7e7
Js html\body duplication bug fix
aviadamar b44c386
Js extra div bug fix
aviadamar 3ee9bd3
Js scrolling duplication days fixed
aviadamar f214d22
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
aviadamar 3334824
month scrolling navigation
aviadamar 523c01e
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 158ecb0
CSS vars
aviadamar 572036e
try middleware
LiranCaduri 9be7f08
backup before pull
aviadamar 397cee3
add middleware filtering requests
LiranCaduri 1da1dda
add: get_user_disabled_features and get_user_enabled_features
LiranCaduri d160605
modify middleware
LiranCaduri b51cd21
replace testclient, add on startup event, feature folder, is_feature_…
LiranCaduri 9df777b
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri e4a817a
improved is_feature_enabled and middleware code.
LiranCaduri 0514121
add_feature_to_user function
LiranCaduri 645e586
month navigation WIP
aviadamar 70aea36
update develop
aviadamar b961da4
JS: Month navigation bar
aviadamar 809b727
css fix
aviadamar 03930c9
Month Navigations and CSS changes
aviadamar e54b172
Fix lintings
aviadamar 0f71c68
Scroll back bug fixed
aviadamar c715299
add checking for duplicates in association table
LiranCaduri 6380a8c
renaming some files, and adding on and off routes
LiranCaduri 7f50cc0
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 2ea61cb
.example
LiranCaduri a11e846
style/features init settings
aviadamar d629496
features wip 14/02
aviadamar b2b839f
split to internal
LiranCaduri 36af9b7
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 8c4929c
add config
LiranCaduri b999bc6
add tests
LiranCaduri 7d0cbc0
feature icon backend first
LiranCaduri 647af4b
Features wip 15.02.21
aviadamar 685b30e
feature search
aviadamar e97f29b
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 6220ad0
access decorator, back to fastapi testclient, fix tests, new document…
LiranCaduri f6a6630
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 0b27713
fix flake8 issue
LiranCaduri 416211a
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 9cb181a
fix tests, after apdate
LiranCaduri 2572153
requested changes
LiranCaduri 10c7d88
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 7f0ab27
.example
LiranCaduri d097501
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 62a0295
before pull 18.02.21
aviadamar e2eeecc
after pull 18.02.21
aviadamar 1c1bbe7
requested changes
LiranCaduri a8e8725
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 0109771
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 4eeaeea
Before changit to fetch
aviadamar dfe02c7
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 2081329
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 107d246
changes
LiranCaduri 11c1727
after pull 21.02.21
aviadamar ea84de5
Before Passing to Liran
aviadamar bf7fae9
Before passing to Liran
aviadamar 182b6be
before cache
LiranCaduri 5738b16
Merge branch 'style/features' of https://github.com/LiranCaduri/calen…
LiranCaduri 652c155
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri f9145c8
adjusted to front
LiranCaduri 21bbe87
add followers, add tests, add front
LiranCaduri f74690a
fix flake8 issue
LiranCaduri d6b26a8
remove redundant things
LiranCaduri 4618b06
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 83668d3
Information on click fixed, Followers managment added
aviadamar 750d8fa
fix feature followers front update
LiranCaduri c4f6cbe
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 3c88d35
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 096d6fa
remove redundant things
LiranCaduri 322b96a
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 4696df2
pre-commit change some stuff
LiranCaduri 105d253
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri dc9fcce
remove blank lines
LiranCaduri 6bd5e03
First scrolling bug fixed
aviadamar 58664fb
after pull and bug fix
aviadamar 32cb480
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 05ea3be
Merge branch 'style/features' of https://github.com/LiranCaduri/calen…
LiranCaduri 1ce0099
fix error
LiranCaduri d677ccd
requested changes
LiranCaduri 7712b07
update .gitignore
LiranCaduri ecd5cb8
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri a9f9001
fix semantics
LiranCaduri 0cd1f49
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 172a1da
fix tests
LiranCaduri 04c48a5
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 5b92634
fix logic
LiranCaduri 572e992
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 571fe1a
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 2349b2b
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 36f841b
requested changes
LiranCaduri c181946
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 93b0b02
use pre-commit on google-connect
LiranCaduri 28a4558
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 144ff0e
fix features back
LiranCaduri 3bd43b2
requested changes
LiranCaduri 69ed31b
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri e0b121b
Merge branch 'feature/feature-panel' of https://github.com/LiranCadur…
LiranCaduri 9fde7a3
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 37ad833
remove redundant things
LiranCaduri bb3b52f
fix flake8
LiranCaduri 7f1e119
fixes
LiranCaduri f6d3ce0
more fixes
LiranCaduri fd89e01
more fixes
LiranCaduri e94cf66
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri eec1b94
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri 4777fab
get this
LiranCaduri fee36d2
fix front
LiranCaduri b77f5e7
fix notifcation test error
LiranCaduri 7d9b949
template column and fixes
LiranCaduri b9d0f44
fix flake8
LiranCaduri 5b78d16
Merge branch 'develop' of https://github.com/PythonFreeCourse/calenda…
LiranCaduri File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,7 +8,7 @@ | |
|
||
from app.database.models import Feature, UserFeature | ||
from app.dependencies import SessionLocal, get_db | ||
from app.internal.features_index import features | ||
from app.internal.features_index import features, icons | ||
from app.internal.security.dependencies import current_user | ||
from app.internal.security.ouath2 import get_authorization_cookie | ||
from app.internal.utils import create_model | ||
|
@@ -46,7 +46,9 @@ async def wrapper(*args, **kwargs): | |
def create_features_at_startup(session: Session) -> bool: | ||
for feat in features: | ||
if not is_feature_exists(feature=feat, session=session): | ||
create_feature(**feat, db=session) | ||
icon = icons.get(feat["name"]) | ||
create_feature(**feat, icon=icon, db=session) | ||
|
||
return True | ||
|
||
|
||
|
@@ -90,6 +92,14 @@ def update_feature( | |
feature.route = feature_dict["route"] | ||
feature.description = feature_dict["description"] | ||
feature.creator = feature_dict["creator"] | ||
feature.template = feature_dict["template"] | ||
|
||
icon = icons.get(feature.name) | ||
if icon is None: | ||
icon = "extension-puzzle" | ||
|
||
feature.icon = icon | ||
|
||
session.commit() | ||
return feature | ||
|
||
|
@@ -116,7 +126,7 @@ async def is_access_allowd(request: Request, route: str) -> bool: | |
& (UserFeature.user_id == user.user_id), | ||
), | ||
).scalar() | ||
|
||
print(user_feature) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove |
||
return user_feature | ||
|
||
|
||
|
@@ -126,15 +136,24 @@ def create_feature( | |
route: str, | ||
description: str, | ||
creator: str = None, | ||
icon: str = None, | ||
template: str = None, | ||
) -> Feature: | ||
"""Creates a feature.""" | ||
db = SessionLocal() | ||
|
||
if icon is None: | ||
icon = "extension-puzzle" | ||
|
||
return create_model( | ||
db, | ||
Feature, | ||
name=name, | ||
route=route, | ||
creator=creator, | ||
description=description, | ||
icon=icon, | ||
template=template, | ||
) | ||
|
||
|
||
|
@@ -145,6 +164,7 @@ def create_user_feature_association( | |
is_enable: bool, | ||
) -> UserFeature: | ||
"""Creates an association.""" | ||
add_follower(feature_id=feature_id, session=db) | ||
return create_model( | ||
db, | ||
UserFeature, | ||
|
@@ -181,3 +201,17 @@ def get_user_uninstalled_features( | |
) | ||
.all() | ||
) | ||
|
||
|
||
def remove_follower(feature_id: int, session: SessionLocal) -> None: | ||
feat = session.query(Feature).filter_by(id=feature_id).first() | ||
feat.followers -= 1 | ||
if feat.followers < 0: | ||
feat.followers = 0 | ||
session.commit() | ||
|
||
|
||
def add_follower(feature_id: int, session: SessionLocal) -> None: | ||
feat = session.query(Feature).filter_by(id=feature_id).first() | ||
feat.followers += 1 | ||
session.commit() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,18 @@ | ||
from typing import List | ||
|
||
from fastapi import APIRouter, Depends, Request | ||
from fastapi.responses import HTMLResponse | ||
from sqlalchemy.sql import exists | ||
from starlette.responses import PlainTextResponse | ||
|
||
from app.database.models import Feature, User, UserFeature | ||
from app.dependencies import SessionLocal, get_db | ||
from app.dependencies import SessionLocal, get_db, templates | ||
from app.internal.features import ( | ||
create_user_feature_association, | ||
get_user_installed_features, | ||
get_user_uninstalled_features, | ||
is_user_has_feature, | ||
remove_follower, | ||
) | ||
from app.internal.security.dependencies import current_user | ||
|
||
|
@@ -24,9 +27,23 @@ | |
async def index( | ||
request: Request, | ||
session: SessionLocal = Depends(get_db), | ||
) -> List[Feature]: | ||
features = session.query(Feature).all() | ||
return features | ||
user: User = Depends(current_user), | ||
) -> templates: | ||
features = { | ||
"installed": get_user_installed_features( | ||
session=session, | ||
user_id=user.user_id, | ||
), | ||
"uninstalled": get_user_uninstalled_features( | ||
session=session, | ||
user_id=user.user_id, | ||
), | ||
} | ||
|
||
return templates.TemplateResponse( | ||
"features.html", | ||
{"request": request, "features": features}, | ||
) | ||
|
||
|
||
@router.post("/add") | ||
|
@@ -84,6 +101,8 @@ async def delete_user_feature_association( | |
if not is_exist: | ||
return False | ||
|
||
remove_follower(feature_id=feature_id, session=session) | ||
|
||
session.query(UserFeature).filter_by( | ||
feature_id=feature_id, | ||
user_id=user.user_id, | ||
|
@@ -93,19 +112,26 @@ async def delete_user_feature_association( | |
return True | ||
LiranCaduri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
|
||
@router.get("/deactive") | ||
def deactive( | ||
@router.get("/installed") | ||
async def get_user_feature( | ||
request: Request, | ||
session: SessionLocal = Depends(get_db), | ||
user: User = Depends(current_user), | ||
): | ||
return get_user_uninstalled_features(user_id=user.user_id, session=session) | ||
) -> List[Feature]: | ||
return get_user_installed_features(user_id=user.user_id, session=session) | ||
|
||
|
||
@router.get("/active") | ||
def active( | ||
@router.post("/settings/{template}") | ||
async def render_settings( | ||
request: Request, | ||
session: SessionLocal = Depends(get_db), | ||
user: User = Depends(current_user), | ||
): | ||
return get_user_installed_features(user_id=user.user_id, session=session) | ||
template: str, | ||
) -> HTMLResponse: | ||
if template == 'null': | ||
return PlainTextResponse( | ||
content='No additional settings for this one :)') | ||
|
||
template = templates.get_template( | ||
"partials/features_panels/" + template + '.html' | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Use fstrings & precommit hooks |
||
) | ||
content = template.render() | ||
return HTMLResponse(content=content) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
.search-box { | ||
width: 98%; | ||
display: flex; | ||
flex-direction: row; | ||
align-items: center; | ||
font-size: var(--text_s); | ||
border: 2px solid var(--secondary); | ||
border-radius: 0.25rem; | ||
padding: 0.25rem; | ||
background-color: white; | ||
} | ||
|
||
.search-box * { | ||
margin: 0 0.25rem; | ||
} | ||
|
||
.search-input[type=text], | ||
.search-input:focus { | ||
width: 100%; | ||
outline: none; | ||
border:none; | ||
} | ||
|
||
/* Feature Panel */ | ||
#features { | ||
display: grid; | ||
grid-template-columns: 1fr 1fr; | ||
grid-auto-rows: 3rem; | ||
grid-column-gap: var(--space_l); | ||
margin: var(--space_s); | ||
align-items: start; | ||
width: 100%; | ||
|
||
overflow-y: scroll; | ||
-ms-overflow-style: none; /* IE and Edge */ | ||
scrollbar-width: none; /* Firefox */ | ||
} | ||
|
||
.invisible { | ||
display: none; | ||
position: absolute; | ||
top:0; | ||
} | ||
|
||
.feature-row { | ||
display: grid; | ||
box-sizing: border-box; | ||
-moz-box-sizing: border-box; | ||
-webkit-box-sizing: border-box; | ||
|
||
grid-template-columns: 6% 30% auto auto 15%; | ||
background-color: var(--surface); | ||
margin: var(--space_s) 0; | ||
padding: var(--space_s); | ||
border-radius: 0.25rem; | ||
border: 2px solid transparent; | ||
} | ||
|
||
.feature-row:hover { | ||
border: 2px solid var(--primary); | ||
} | ||
|
||
.feature-row div { | ||
justify-self: start; | ||
width: 100%; | ||
} | ||
|
||
.feature-icon { | ||
font-size: var(--text_m); | ||
vertical-align: middle; | ||
} | ||
|
||
.information { | ||
display: none; | ||
grid-column: 2/6; | ||
width: 30rem; | ||
} | ||
|
||
.info-box { | ||
display: block !important; | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.