Code Monkey home page Code Monkey logo

comcat's Introduction

comcat

HOMEINFO Tenant / Landlord communicator backend

comcat's People

Contributors

conqp avatar kakaoplant avatar

Watchers

 avatar

Forkers

azhkhn

comcat's Issues

lpt/home error

the request to /lpt/home throws the following error

  File "/usr/lib/python3.9/xml/sax/expatreader.py", line 217, in feed
    self._parser.Parse(data, isFinal)
xml.parsers.expat.ExpatError: no element found: line 1, column 0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/Authlib-1.0.0a2-py3.9.egg/authlib/integrations/flask_oauth2/resource_protector.py", line 114, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev548+g22a55f7-py3.9.egg/comcat/app/lpt.py", line 17, in get_home_departures
    stops = get_departures(TENEMENT.address)
  File "/usr/local/lib/python3.9/dist-packages/lptlib/api.py", line 61, in get_departures
    return get_departures_addr(target, stops=stops, departures=departures)
  File "/usr/local/lib/python3.9/dist-packages/lptlib/api.py", line 36, in get_departures_addr
    return Stops(list(client.get_departures_addr(
  File "/usr/local/lib/python3.9/dist-packages/lptlib/trias.py", line 141, in get_departures_addr
    self.address_to_geo(address), stops=stops, departures=departures)
  File "/usr/local/lib/python3.9/dist-packages/lptlib/trias.py", line 130, in address_to_geo
    if (geocoordinates := self.client.geocoordinates(address)) is None:
  File "/usr/local/lib/python3.9/dist-packages/trias/client.py", line 109, in geocoordinates
    reply = self.location(address, language=language)
  File "/usr/local/lib/python3.9/dist-packages/trias/client.py", line 102, in location
    return self.query(self._trias(request_payload))
  File "/usr/local/lib/python3.9/dist-packages/trias/client.py", line 87, in query
    return self._load_dom(response.content)
  File "/usr/local/lib/python3.9/dist-packages/trias/client.py", line 67, in _load_dom
    return self.dom.CreateFromDocument(xml)
  File "/usr/local/lib/python3.9/dist-packages/trias/v1_1/trias.py", line 75, in CreateFromDocument
    saxer.parse(io.BytesIO(xmld))
  File "/usr/lib/python3.9/xml/sax/expatreader.py", line 111, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/lib/python3.9/xml/sax/xmlreader.py", line 127, in parse
    self.close()
  File "/usr/lib/python3.9/xml/sax/expatreader.py", line 240, in close
    self.feed(b"", isFinal=True)
  File "/usr/lib/python3.9/xml/sax/expatreader.py", line 221, in feed
    self._err_handler.fatalError(exc)
  File "/usr/lib/python3.9/xml/sax/handler.py", line 38, in fatalError
    raise exception
xml.sax._exceptions.SAXParseException: <unknown>:1:0: no element found

must be a recent change because at 20.12.21 12:50 it was working fine.
changing the account won't change anything
endpoint /lpt/current is working fine

password verloren/ändern

Im Mockup war noch eine Funktion zum Passwort vergessen erstellt, Email war das einzige Feld, was dafür ausgefüllt werden soll, Recaptcha Response als weiteres mitzusendendes Feld würde aber auch noch sinn machen. Diese Schnittstelle würde ich dann auch zum Passwort ändern verwenden (die meiner Meinung nach existieren sollte)

CCMessenger attached image

CCMessenger response to GET /messenger/message :

created: "2022-01-13T14:04:44"
id: 25
text: "test image"
user: 68

Where do I see, that an image is attached to this message?
I know that an image is attached (should be image id: 9, accoording to response), since I specifically added one.

Backend error /account/email

new error found while testing endpoint POST /account/email

File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/Authlib-1.0.0a2-py3.9.egg/authlib/integrations/flask_oauth2/resource_protector.py", line 114, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev536+g8fc5a24-py3.9.egg/comcat/app/account.py", line 53, in _request_email_change
    request_email_change(USER.id, request.json['email'])
  File "/usr/local/lib/python3.9/dist-packages/comcatlib-0.1.dev433+g7dd7aae-py3.9.egg/comcatlib/email_change.py", line 59, in request_email_change
    return MAILER.send([get_email(user, email, nonce.uuid.hex)])
  File "/usr/local/lib/python3.9/dist-packages/comcatlib-0.1.dev433+g7dd7aae-py3.9.egg/comcatlib/email_change.py", line 52, in get_email
    return EMail(SUBJECT, SENDER, email, html=tostring(get_html(user, nonce)))
  File "/usr/local/lib/python3.9/dist-packages/comcatlib-0.1.dev433+g7dd7aae-py3.9.egg/comcatlib/email_change.py", line 30, in get_html
    p.text = f'Sehr geehrte/r {user.name},'
AttributeError: 'int' object has no attribute 'name'

/pwreset/request

post request:
{ "email":"[email protected]", "response":"03AGdBq26f8Ipn5EjuX4mU5pEPUAe6NcmZFtg....", "customer":"ttt" }
returns error 500

    cursor.execute(sql, params or ())
  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 170, in execute
    result = self._query(query)
  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 328, in _query
    conn.query(q)
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 517, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 732, in _read_query_result
    result.read()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1075, in read
    first_packet = self.connection._read_packet()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 684, in _read_packet
    packet.check_error()
  File "/usr/lib/python3/dist-packages/pymysql/protocol.py", line 220, in check_error
    err.raise_mysql_exception(self._data)
  File "/usr/lib/python3/dist-packages/pymysql/err.py", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1146, "Table 'comcat.passwordresetnonce' doesn't exist")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/recaptcha-1.0.2-py3.9.egg/recaptcha.py", line 85, in wrapper
    return function(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev554+gd529484-py3.9.egg/comcat/app/pwreset.py", line 38, in request_pw_reset
    nonce = PasswordResetNonce.generate(user)
  File "/usr/local/lib/python3.9/dist-packages/comcatlib-0.1.dev454+g43f3ba8-py3.9.egg/comcatlib/orm/nonces.py", line 110, in generate
    cls.get(cls.user == user)
  File "/usr/lib/python3/dist-packages/peewee.py", line 6416, in get
    return sq.get()
  File "/usr/lib/python3/dist-packages/peewee.py", line 6861, in get
    return clone.execute(database)[0]
  File "/usr/lib/python3/dist-packages/peewee.py", line 1898, in inner
    return method(self, database, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/peewee.py", line 1969, in execute
    return self._execute(database)
  File "/usr/lib/python3/dist-packages/peewee.py", line 2141, in _execute
    cursor = database.execute(self)
  File "/usr/lib/python3/dist-packages/peewee.py", line 3142, in execute
    return self.execute_sql(sql, params, commit=commit)
  File "/usr/local/lib/python3.9/dist-packages/peeweeplus-1.17.8.dev5+g4df9cb8-py3.9.egg/peeweeplus/database.py", line 24, in execute_sql
    return super().execute_sql(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/peewee.py", line 3136, in execute_sql
    self.commit()
  File "/usr/lib/python3/dist-packages/peewee.py", line 2902, in __exit__
    reraise(new_type, new_type(exc_value, *exc_args), traceback)
  File "/usr/lib/python3/dist-packages/peewee.py", line 185, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/peewee.py", line 3129, in execute_sql
    cursor.execute(sql, params or ())
  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 170, in execute
    result = self._query(query)
  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 328, in _query
    conn.query(q)
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 517, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 732, in _read_query_result
    result.read()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1075, in read
    first_packet = self.connection._read_packet()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 684, in _read_packet
    packet.check_error()
  File "/usr/lib/python3/dist-packages/pymysql/protocol.py", line 220, in check_error
    err.raise_mysql_exception(self._data)
  File "/usr/lib/python3/dist-packages/pymysql/err.py", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
peewee.ProgrammingError: (1146, "Table 'comcat.passwordresetnonce' doesn't exist")

customer events error: dict' object is not callable

Endpoint tenantcalendar/customer-events on GET throws the following error

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/Authlib-1.0.0a2-py3.9.egg/authlib/integrations/flask_oauth2/resource_protector.py", line 114, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev568+g2b1cd5c-py3.9.egg/comcat/app/tenantcalendar.py", line 24, in _list_customer_events
    return JSON([
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev568+g2b1cd5c-py3.9.egg/comcat/app/tenantcalendar.py", line 24, in <listcomp>
    return JSON([
  File "/usr/local/lib/python3.9/dist-packages/tenantcalendar-0.1.dev45+g5eb1602-py3.9.egg/tenantcalendar/functions.py", line 173, in get_events_for_user
    yield from _get_events_for_groups(ggl_user(user), condition=condition)
  File "/usr/local/lib/python3.9/dist-packages/tenantcalendar-0.1.dev45+g5eb1602-py3.9.egg/tenantcalendar/functions.py", line 121, in _get_events_for_groups
    condition & (GroupCustomerEvent.group << set(groups))
  File "/usr/local/lib/python3.9/dist-packages/cmslib-0.1.dev636+g5193824.d20220203132402-py3.9.egg/cmslib/functions/group.py", line 74, in get_groups_lineage
    for member_group in groups.groups(get_group_ids(deployment)):
TypeError: 'dict' object is not callable

get customer events error

Endpoint tenantcalendar/customer-events on GET throws the following error

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/Authlib-1.0.0a2-py3.9.egg/authlib/integrations/flask_oauth2/resource_protector.py", line 114, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev568+g2b1cd5c-py3.9.egg/comcat/app/tenantcalendar.py", line 24, in _list_customer_events
    return JSON([
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev568+g2b1cd5c-py3.9.egg/comcat/app/tenantcalendar.py", line 24, in <listcomp>
    return JSON([
  File "/usr/local/lib/python3.9/dist-packages/tenantcalendar-0.1.dev44+g835f656-py3.9.egg/tenantcalendar/functions.py", line 172, in get_events_for_user
    yield from _get_events_for_user(user, condition=condition)
  File "/usr/local/lib/python3.9/dist-packages/tenantcalendar-0.1.dev44+g835f656-py3.9.egg/tenantcalendar/functions.py", line 152, in _get_events_for_user
    return CustomerEvent.select().join(UserCustomerEvent).where(
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 716, in inner
    method(clone, *args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 7162, in join
    on, attr, constructor = self._normalize_join(src, dest, on, attr)
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 7057, in _normalize_join
    fk_field, is_backref = self._generate_on_clause(
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 7105, in _generate_on_clause
    raise ValueError('Unable to find foreign key between %s and %s. '
ValueError: Unable to find foreign key between <Model: CustomerEvent> and <Model: UserCustomerEvent>. Please specify an explicit join condition.```

Kontaktformular Endpoint

Das Kontaktformular braucht einen entsprechenden Endpoint:
Anforderungen:

Email <string>, optional
phone <phone>, optional
message <string>

es darf aber nicht email und phone gleichzeitig null sein

POST /tenantcalendar

Sending post request to /tenantcalendar with the following data

{"title":"Test","start":"2021-12-09T00:39:07.668-08:00","end":"2021-12-11T00:39:07.669-08:00","text":"test","email":"[email protected]","phone":"0123456789"}

gives the following error

    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/Authlib-1.0.0a2-py3.9.egg/authlib/integrations/flask_oauth2/resource_protector.py", line 114, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev545+g2f2593e-py3.9.egg/comcat/app/tenantcalendar.py", line 48, in add_user_event
    user_event = UserEvent.from_json(
  File "/usr/local/lib/python3.9/dist-packages/tenantcalendar-0.1.dev23+g66df7ed-py3.9.egg/tenantcalendar/orm.py", line 94, in from_json
    event = super().from_json(json, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/peeweeplus-1.17.3-py3.9.egg/peeweeplus/json/deserialization.py", line 122, in deserialize
    raise InvalidKeys(json.keys())
peeweeplus.exceptions.InvalidKeys: dict_keys(['email', 'phone'])``

/report

POSTto /report with data {"offer":"3122","title":true,"text":true,"image":true}

does not matter if offer/response/userEvent/topic is chosen same error for all

File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python3.9/dist-packages/authlib/integrations/flask_oauth2/resource_protector.py", line 113, in decorated return f(*args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev630+g6de1f62-py3.9.egg/comcat/app/reporting.py", line 28, in report report_offer( File "/usr/local/lib/python3.9/dist-packages/reportlib-0.1.dev9+g40e14ac-py3.9.egg/reportlib/functions.py", line 36, in report_offer (OfferReport.user == user) & (OfferReport.offer == offer) AttributeError: type object 'OfferReport' has no attribute 'user'

account endpoint wrong data on address field

Requesting data from /account gives back the following data:

admin: false
created: "2021-10-28T11:26:48"
email: "[email protected]"
id: 68
locked: false
mobile: "1234567890"
name: "Raphael"
phone: "0123456789"
tenement: {
address: 1723
annotation: "Raphael passwd 12345678"
customer: 1000
id: 189
}

address :1723 does not correspond with the data available in the CMS (Teststraße 77, 123456 Teststadt)

revoke token invalid client response

request:

this.http.post('https://comcat.homeinfo.de/oauth/revoke',
  //body
  {
      token_type_hint:'access-token',
      token: TOKEN,
      client_id: ID,
      client_secret: SECRET
  },
  {
      headers: 
      {
           Authorization: 'Bearer ' + TOKEN
      }
  }
)

response:

status: 400
{
    "error": "invalid_client"
}

I although tried sending different data to endpoint (less or more data in body or without body, different formats e.g. url form encoded, json), but didn't change the outcome.

charts request error

GET https://homeinfo.de/comcat.de/charts

Error message:

  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/Authlib-1.0.0a2-py3.9.egg/authlib/integrations/flask_oauth2/resource_protector.py", line 114, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev556+gc5516b2-py3.9.egg/comcat/app/charts.py", line 69, in list_
    return JSON([jsonify_base_chart(bc) for bc in get_base_charts()])
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev556+gc5516b2-py3.9.egg/comcat/app/charts.py", line 35, in get_base_charts
    condition |= GroupBaseChart.group << set(user_groups())
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev556+gc5516b2-py3.9.egg/comcat/app/charts.py", line 28, in user_groups
    yield from Groups(groups).rtree(gmu.group)
AttributeError: 'Groups' object has no attribute 'rtree'

CCMessenger upload image error

sending a post request to messenger/attachments/<id> throws the following error

 File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/Authlib-1.0.0a2-py3.9.egg/authlib/integrations/flask_oauth2/resource_protector.py", line 114, in decorated
    return f(*args, **kwargs)
TypeError: add_attachment() got an unexpected keyword argument 'ident'

attachment is send as Blob

login ouath2 error create_authorization_response() missing 1 required positional argument: 'self'

    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/comcatlib-0.1.dev468+g3af98dd-py3.9.egg/comcatlib/app.py", line 60, in authorize_client
    return FRAMEWORK.authorization_server.create_authorization_response(
TypeError: create_authorization_response() missing 1 required positional argument: 'self'```
'''

Delete account

Die Endpoints Account löschen und daten ändern für die API werden benötigt

löschen vorgeschrieben, dass es aus der App initiiert werden kann, theoretisch auch über eine externe Website umleiten, was aber meiner Meinung nach mehr Aufwand wäre.
Apple Developer guidelines

: Attempting to close database while transaction is open

request /client throws

  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/comcatlib-0.1.dev470+gce1d769-py3.9.egg/comcatlib/app.py", line 94, in register_client
    transaction.commit()
  File "/usr/local/lib/python3.9/dist-packages/peeweeplus-1.19.dev2+g9d67262-py3.9.egg/peeweeplus/transaction.py", line 84, in commit
    item.record.save()
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 6603, in save
    pk = self.insert(**field_dict).execute()
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 1911, in inner
    return method(self, database, *args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 1982, in execute
    return self._execute(database)
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 2761, in _execute
    return super(Insert, self)._execute(database)
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 2479, in _execute
    cursor = database.execute(self)
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 3173, in execute
    return self.execute_sql(sql, params, commit=commit)
  File "/usr/local/lib/python3.9/dist-packages/peeweeplus-1.19.dev2+g9d67262-py3.9.egg/peeweeplus/database.py", line 24, in execute_sql
    return super().execute_sql(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 2997, in __exit__
    def __exit__(self, exc_type, exc_val, exc_tb): self.db.close()
  File "/usr/local/lib/python3.9/dist-packages/peewee.py", line 3114, in close
    raise OperationalError('Attempting to close database while '
peewee.OperationalError: Attempting to close database while transaction is open

Client object has no attribute databases

Request /client throws error

  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/comcatlib-0.1.dev470+gce1d769-py3.9.egg/comcatlib/app.py", line 94, in register_client
    transaction.commit()
  File "/usr/local/lib/python3.9/dist-packages/peeweeplus-1.19.dev1+g80a9a51-py3.9.egg/peeweeplus/transaction.py", line 79, in commit
    with LockedDatabases(self.databases):
  File "/usr/local/lib/python3.9/dist-packages/peeweeplus-1.19.dev1+g80a9a51-py3.9.egg/peeweeplus/transaction.py", line 49, in __getattr__
    return getattr(self.primary, attr)
AttributeError: 'Client' object has no attribute 'databases'

KeyError Charts endpoint

GET request endpoint /charts

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.9/dist-packages/authlib/integrations/flask_oauth2/resource_protector.py", line 113, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev606+gcefc8ee-py3.9.egg/comcat/app/charts.py", line 70, in list_
    return JSON([jsonify_base_chart(bc) for bc in get_base_charts()])
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev606+gcefc8ee-py3.9.egg/comcat/app/charts.py", line 70, in <listcomp>
    return JSON([jsonify_base_chart(bc) for bc in get_base_charts()])
  File "/usr/local/lib/python3.9/dist-packages/comcat-0.1.dev606+gcefc8ee-py3.9.egg/comcat/app/charts.py", line 54, in jsonify_base_chart
    json = base_chart.chart.to_json(skip={'schedule'})
  File "/usr/local/lib/python3.9/dist-packages/cmslib-0.1.dev780+g27a5e4e.d20220330112728-py3.9.egg/cmslib/orm/charts/api/base_chart.py", line 135, in chart
    return (Chart := self.chart_class).select(cascade=True).where(
  File "/usr/local/lib/python3.9/dist-packages/cmslib-0.1.dev780+g27a5e4e.d20220330112728-py3.9.egg/cmslib/orm/charts/api/base_chart.py", line 130, in chart_class
    return CHARTS[self.type]
KeyError: ''

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.