Pull changes and resolve merge conflict.
[mediagoblin.git] / mediagoblin / media_types / image / models.py
CommitLineData
e0e7232a
E
1# GNU MediaGoblin -- federated, autonomous media hosting
2# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU Affero General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU Affero General Public License for more details.
13#
14# You should have received a copy of the GNU Affero General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17
39dc3bf8 18from mediagoblin.db.base import Base
70b44584
CAW
19
20from sqlalchemy import (
dd0799ad 21 Column, Integer, Float, ForeignKey)
02f07bfe 22from sqlalchemy.orm import relationship, backref
a5acfe23 23from mediagoblin.db.extratypes import JSONEncoded
70b44584
CAW
24
25
0562898e
E
26BACKREF_NAME = "image__media_data"
27
28
70b44584 29class ImageData(Base):
2f5ce68c 30 __tablename__ = "image__mediadata"
70b44584 31
dd0799ad 32 # The primary key *and* reference to the main media_entry
2f5ce68c 33 media_entry = Column(Integer, ForeignKey('core__media_entries.id'),
dd0799ad 34 primary_key=True)
02f07bfe 35 get_media_entry = relationship("MediaEntry",
1f268ded
E
36 backref=backref(BACKREF_NAME, uselist=False,
37 cascade="all, delete-orphan"))
02f07bfe 38
70b44584
CAW
39 width = Column(Integer)
40 height = Column(Integer)
e0b0588f 41 exif_all = Column(JSONEncoded)
dd0799ad
E
42 gps_longitude = Column(Float)
43 gps_latitude = Column(Float)
36ccc57b
E
44 gps_altitude = Column(Float)
45 gps_direction = Column(Float)
70b44584
CAW
46
47
48DATA_MODEL = ImageData
49MODELS = [ImageData]