-
Notifications
You must be signed in to change notification settings - Fork 1.9k
fix: event import #5514
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
fix: event import #5514
Changes from 6 commits
3c016b7
82e14cc
fcdb920
39ebcac
a68ce32
d241980
e571707
311e585
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,6 +19,8 @@ | |
| from app.models import db | ||
| from app.models.custom_form import CustomForms | ||
| from app.models.event import Event | ||
| from app.models.users_events_role import UsersEventsRoles | ||
| from app.models.role import Role | ||
| from app.models.import_job import ImportJob | ||
| from app.models.microlocation import Microlocation | ||
| from app.models.session import Session | ||
|
|
@@ -27,6 +29,7 @@ | |
| from app.models.speaker import Speaker | ||
| from app.models.sponsor import Sponsor | ||
| from app.models.track import Track | ||
| from app.models.user import User, ORGANIZER | ||
|
|
||
| IMPORT_SERIES = [ | ||
| ('social_links', SocialLink), | ||
|
|
@@ -328,7 +331,7 @@ def create_service_from_json(task_handle, data, srv, event_id, service_ids=None) | |
| return ids | ||
|
|
||
|
|
||
| def import_event_json(task_handle, zip_path): | ||
| def import_event_json(task_handle, zip_path, creator_id): | ||
| """ | ||
| Imports and creates event from json zip | ||
| """ | ||
|
|
@@ -353,10 +356,16 @@ def import_event_json(task_handle, zip_path): | |
| data = _delete_fields(srv, data) | ||
| new_event = Event(**data) | ||
| save_to_db(new_event) | ||
| role = Role.query.filter_by(name=ORGANIZER).first() | ||
| user = User.query.filter_by(id=creator_id).first() | ||
| uer = UsersEventsRoles(user_id=user.id, event_id=new_event.id, role_id=role.id) | ||
| save_to_db(uer, 'Event Saved') | ||
| write_file( | ||
| path + '/social_links', | ||
| json.dumps(data.get('social_links', [])) | ||
| ) # save social_links | ||
| json.dumps(data.get('social_links', [])).encode('utf-8') | ||
| ) # save social_links | ||
| with open(path + '/social_links', 'w') as file: | ||
|
||
| file.write(str(json.dumps(data.get('social_links', [])))) | ||
| _upload_media_queue(srv, new_event) | ||
| except Exception as e: | ||
| raise make_error('event', er=e) | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| from flask_rest_jsonapi import ResourceList, ResourceDetail | ||
|
|
||
| from app.api.schema.import_jobs import ImportJobSchema | ||
| from app.models import db | ||
| from app.models.import_job import ImportJob | ||
| from app.api.helpers.permissions import jwt_required | ||
| from flask_jwt import current_identity | ||
|
|
||
|
|
||
| class ImportJobList(ResourceList): | ||
YogeshSharma0201 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| """ | ||
| List ImportJob | ||
| """ | ||
| def query(self, kwargs): | ||
| query_ = self.session.query(ImportJob) | ||
| query_ = query_.filter_by(user_id=current_identity.id) | ||
| return query_ | ||
|
|
||
| decorators = (jwt_required,) | ||
| schema = ImportJobSchema | ||
| data_layer = {'session': db.session, | ||
| 'model': ImportJob, | ||
| 'methods': { | ||
| 'query': query, | ||
| }} | ||
|
|
||
|
|
||
| class ImportJobDetail(ResourceDetail): | ||
YogeshSharma0201 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| """ | ||
| ImportJob Detail by id | ||
| """ | ||
| decorators = (jwt_required, ) | ||
| schema = ImportJobSchema | ||
| data_layer = {'session': db.session, | ||
| 'model': ImportJob} | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| from marshmallow_jsonapi import fields | ||
|
|
||
| from app.api.helpers.utilities import dasherize | ||
| from marshmallow_jsonapi.flask import Schema | ||
|
|
||
|
|
||
| class ImportJobSchema(Schema): | ||
| """ | ||
| Api schema for ImportJob Model | ||
| """ | ||
|
|
||
| class Meta: | ||
| """ | ||
| Meta class for ImportJob Api Schema | ||
| """ | ||
| type_ = 'import-job' | ||
| self_view = 'v1.import_job_detail' | ||
| self_view_kwargs = {'id': '<id>'} | ||
| inflect = dasherize | ||
|
|
||
| id = fields.Str(dump_only=True) | ||
| task = fields.Str(allow_none=False) | ||
| starts_at = fields.DateTime(required=True, timezone=True) | ||
| result = fields.Str(allow_none=True) | ||
| result_status = fields.Str(allow_none=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
at least two spaces before inline comment