1. 14 Aug, 2013 5 commits
  2. 13 Aug, 2013 4 commits
  3. 12 Aug, 2013 1 commit
    • Florian Sachs's avatar
      process inherited primary keys correctely · 3d897ee8
      Florian Sachs authored
      When using joined table inheritance (http://docs.sqlalchemy.org/en/latest/orm/inheritance.html), it is common practice to name the pk-property the same like the pk-property of the parent. The child-property ist a pk itself and has a foreign-key relationship to the pk-property of the parent.
      
      Example:
      
          class BaseWahl(Model):
              __tablename__ = 'basewahlen'
      
              id = Column(Integer, primary_key=True, autoincrement=True)
              discriminator = db.Column(db.String(50))
      
              __mapper_args__ = {
              'polymorphic_identity':'basewahl',
              'polymorphic_on': discriminator
              }
      
          class Wahl(BaseWahl):
              __tablename__ = 'wahlen'
      
              id = Column(Integer, ForeignKey('basewahlen.id'), primary_key=True)
              __mapper_args__ = {
                  'polymorphic_identity':'wahl',
              }
      
      `AdminModelConverter.convert()` does not allow Properties with multiple columns, but will raise a `TypeError`. I changed it into the following way:
      
      - If
        - more than 1 column for the property
        - all columns are primary keys
        - only *one* does not have a Foreign key
        - only one column corresponds to the current model
      - select the column, that corresponds to the current model
      
      I applied the same code to `ModelView.scaffold_list_columns()` and extended it, the primary key in this special constellation actually is *not* ignored, even if it has a foreign key property, so it can be displayed using `column_display_pk = True`.
      
      This solution actually works for me. I do not have enough insight into *Flask-Admin* and definitely even less into *sqlalchemy* to think my solution is the correct one for every situation, but it may be something to think about.
      3d897ee8
  4. 07 Aug, 2013 1 commit
  5. 06 Aug, 2013 1 commit
  6. 05 Aug, 2013 12 commits
  7. 04 Aug, 2013 3 commits
  8. 31 Jul, 2013 1 commit
  9. 30 Jul, 2013 3 commits
  10. 28 Jul, 2013 8 commits
  11. 26 Jul, 2013 1 commit