def __init__(self, skapp): self.app = skapp self.parent = skapp.window self.history = HistoryManager(skapp.db, "insert_history", skapp.opt.get_int("max_history"), True) self.hmodel = gtk.ListStore(gobject.TYPE_STRING) self._load_interface()
def __init__(self, skapp): self.app = skapp self.parent = skapp.window self.curpage = self.app.curpage self.history = HistoryManager(skapp.db, "rename_history", skapp.opt.get_int("max_history"), True) self.hmodel = gtk.ListStore(gobject.TYPE_STRING) self.page_name = None self.create_redirect = skapp.opt.get_bool("rename_create_redirect") self._load_interface()
class CommissionMembership(models.Model, Jsonify): current = models.BooleanField(default=True) creation_datetime = models.DateTimeField(default=datetime.now) role = models.CharField(max_length=1337) role_en = models.CharField(max_length=1337) commission = models.ForeignKey("Commission") deputy = models.ForeignKey("Deputy") with_history = models.Manager() objects = HistoryManager()
class Deputy(models.Model, Jsonify): current = models.BooleanField(default=True) creation_datetime = models.DateTimeField(default=datetime.now) full_name = models.CharField(max_length=1337) first_name = models.CharField(max_length=1337) last_name = models.CharField(max_length=1337) sex = models.CharField(max_length=1337, null=True) emails = ListField() party = models.ForeignKey('Party') url = models.CharField(max_length=1337) websites = ListField() lachambre_id = models.CharField(max_length=1337) language = models.CharField(max_length=1337, null=True) cv = DictField() with_history = models.Manager() objects = HistoryManager() #commissions = ListField(EmbeddedModelField('CommissionMembership')) #documents_principal_author_url = models.URLField() #documents_principal_author_list = ListField(EmbeddedModelField('Document')) #documents_principal_signator_url = models.URLField() #documents_principal_signator_list = ListField(EmbeddedModelField('Document')) #documents_next_author_url = models.URLField() #documents_next_author_list = ListField(EmbeddedModelField('Document')) #documents_next_signator_url = models.URLField() #documents_next_signator_list = ListField(EmbeddedModelField('Document')) #documents_rapporter_url = models.URLField() #documents_rapporter_list = ListField(EmbeddedModelField('Document')) #questions_written_url = models.URLField() #questions_written_list = ListField(EmbeddedModelField('WrittenQuestion')) #questions_oral_plenary_url = models.URLField() #questions_oral_plenary_list = ListField(EmbeddedModelField('Question')) #questions_oral_commission_url = models.URLField() #questions_oral_commission_list = ListField(EmbeddedModelField('Question')) def __unicode__(self): return '%s - %s' % (self.full_name, self.party) class Meta: ordering = ["lachambre_id"] class MongoMeta: indexes = [[("lachambre_id", 1)]] def get_url(self): return LACHAMBRE_PREFIX + self.url if not self.url.startswith( "http") else self.url
class AnnualReport(models.Model, Jsonify): current = models.BooleanField(default=True) creation_datetime = models.DateTimeField(default=datetime.now) title = DictField() date = models.CharField(max_length=1337) law_and_article = DictField() periodicity = models.CharField(max_length=1337) pdf_url = models.URLField() with_history = models.Manager() objects = HistoryManager()
def endElement(self, name): if self._state == SkedContentHandler.IN_CONFIG_OPTION \ and name == "option": if self.import_config: self._opt.set_str(self._tmp_name, self._tmp_data) self._tmp_name = None self._tmp_data = None self._state = SkedContentHandler.IN_CONFIG elif self._state == SkedContentHandler.IN_CONFIG \ and name == "configuration": if self.import_config: self._opt.save() self._state = SkedContentHandler.IN_SKEDDATA elif self._state == SkedContentHandler.IN_HISTORY_ITEM \ and name == "item": self._tmp_hist_items.append(self._tmp_data) self._tmp_data = None self._state = SkedContentHandler.IN_HISTORY elif self._state == SkedContentHandler.IN_HISTORY \ and name == "history": if self.import_history: hist = HistoryManager(self._db, self._tmp_name.encode("utf-8")) hist.set_items(self._tmp_hist_items) hist.save() self._tmp_name = None self._tmp_hist_items = None self._state = SkedContentHandler.IN_SKEDDATA elif self._state == SkedContentHandler.IN_ENTRY \ and name == "entry": if self.import_pages: self._pm.save(Page(self._tmp_name, self._tmp_data), False) self._tmp_name = None self._tmp_data = None self._state = SkedContentHandler.IN_SKEDDATA elif self._state == SkedContentHandler.IN_SKEDDATA \ and name == "skeddata": self._state = SkedContentHandler.DONE else: raise DataFormatError
class RenamePageDialog(BaseDialog): def __init__(self, skapp): self.app = skapp self.parent = skapp.window self.curpage = self.app.curpage self.history = HistoryManager(skapp.db, "rename_history", skapp.opt.get_int("max_history"), True) self.hmodel = gtk.ListStore(gobject.TYPE_STRING) self.page_name = None self.create_redirect = skapp.opt.get_bool("rename_create_redirect") self._load_interface() def _load_interface(self): self.ui_init("rename-page-dialog.ui") self.dlg = self.ui.get_object("dlgRenamePage") self.lbCurrentName = self.ui.get_object("lbCurrentName") self.cbCreateRedirect = self.ui.get_object("cbCreateRedirect") self.cbeNewName = self.ui.get_object("cbeNewName") self.txNewName = self.cbeNewName.child self.cbeNewName.set_model(self.hmodel) self.cbeNewName.set_text_column(0) self.cbCreateRedirect.set_active(self.create_redirect) def run(self): self.hmodel.clear() for item in self.history.get_items(): self.hmodel.append([item]) self.lbCurrentName.set_text(self.curpage.name) self.txNewName.set_text(self.curpage.name) self.dlg.set_transient_for(self.parent) self.dlg.set_modal(True) while True: val = self.dlg.run() if val == gtk.RESPONSE_OK: newpagename = self.txNewName.get_text().decode("utf-8") newpage = self.app.pm.load(newpagename) if newpage == None or \ newpage.normalized_name == self.curpage.normalized_name: self.dlg.destroy() self.history.add(newpagename) self.history.save() self.page_name = newpagename self.create_redirect = self.cbCreateRedirect.get_active() self.app.opt.set_bool("rename_create_redirect", self.create_redirect) return newpagename else: error_dialog(self.dlg, u"Page already exists.") elif val == gtk.RESPONSE_CANCEL: self.dlg.destroy() self.history.save() return None return None
class Party(models.Model, Jsonify): current = models.BooleanField(default=True) creation_datetime = models.DateTimeField(default=datetime.now) name = models.CharField(max_length=1337) url = models.URLField() with_history = models.Manager() objects = HistoryManager() def __unicode__(self): return self.name def get_url(self): return LACHAMBRE_PREFIX + self.url if not self.url.startswith( "http") else self.url
class Document(models.Model, Jsonify): current = models.BooleanField(default=True) creation_datetime = models.DateTimeField(default=datetime.now) title = DictField() url = models.CharField(max_length=1337) full_details_url = models.CharField(max_length=1337) status_chambre = DictField() status_senat = DictField() deposition_date = models.CharField(max_length=1337, null=True) constitution_article = DictField() in_charge_commissions = ListField( EmbeddedModelField('InChargeCommissions')) plenaries = ListField(EmbeddedModelField('DocumentPlenary')) senat_plenaries = ListField(EmbeddedModelField('DocumentSenatPlenary')) timeline = ListField(EmbeddedModelField('DocumentTimeLine')) eurovoc_main_descriptor = DictField() eurovoc_descriptors = DictField() eurovoc_candidats_descriptors = DictField() keywords = DictField() lachambre_id = models.IntegerField() analysis = EmbeddedModelField('Analysis', null=True) document_chambre = EmbeddedModelField('DocumentChambre', null=True) document_senat = EmbeddedModelField('DocumentSenat', null=True) vote_date = models.CharField(max_length=1337) vote_senat_date = models.CharField(max_length=1337) law_date = models.CharField(max_length=1337) moniteur_number = models.CharField(max_length=1337) moniteur_date = models.CharField(max_length=1337) main_docs = DictField() candidature_vote_date = models.CharField(max_length=1337) done = models.BooleanField(default=False) with_history = models.Manager() objects = HistoryManager() def __unicode__(self): return "%s - %s" % (self.lachambre_id, self.title["fr"]) def get_url(self): return LACHAMBRE_PREFIX + self.url if not self.url.startswith( "http") else self.url class Meta: ordering = ["-lachambre_id"] class MongoMeta: indexes = [[("lachambre_id", -1)]]
class InsertPageTextDialog(BaseDialog): def __init__(self, skapp): self.app = skapp self.parent = skapp.window self.history = HistoryManager(skapp.db, "insert_history", skapp.opt.get_int("max_history"), True) self.hmodel = gtk.ListStore(gobject.TYPE_STRING) self._load_interface() def _load_interface(self): self.ui_init("insert-page-dialog.ui") self.dlg = self.ui.get_object("dlgInsertPageText") self.cbePageName = self.ui.get_object("cbePageName") self.txPageName = self.cbePageName.child self.cbePageName.set_model(self.hmodel) self.cbePageName.set_text_column(0) def run(self): self.hmodel.clear() for item in self.history.get_items(): self.hmodel.append([item]) self.dlg.set_transient_for(self.parent) self.dlg.set_modal(True) while True: val = self.dlg.run() if val == gtk.RESPONSE_OK: page = self.txPageName.get_text().decode("utf-8") if self.app.pm.exists(page): self.dlg.destroy() self.history.add(page) self.history.save() return page else: error_dialog(self.dlg, u"Page not found.") elif val == gtk.RESPONSE_CANCEL: self.dlg.destroy() self.history.save() return None return None
class Commission(models.Model, Jsonify): current = models.BooleanField(default=True) creation_datetime = models.DateTimeField(default=datetime.now) lachambre_id = models.IntegerField() name = DictField() full_name = DictField() url = models.URLField() type = DictField() deputies = ListField(models.ForeignKey(CommissionMembership)) seats = DictField() with_history = models.Manager() objects = HistoryManager() def get_url(self): return LACHAMBRE_PREFIX + self.url if not self.url.startswith( "http") else self.url class Meta: ordering = ["lachambre_id"] class MongoMeta: indexes = [[("lachambre_id", 1)]]
class WrittenQuestion(models.Model, Jsonify): current = models.BooleanField(default=True) creation_datetime = models.DateTimeField(default=datetime.now) title = DictField() departement = DictField() sub_departement = DictField() author = models.CharField(max_length=1337) deposition_date = models.CharField(max_length=1337) delay_date = models.CharField(max_length=1337, null=True) eurovoc_descriptors = DictField() eurovoc_candidats_descriptors = DictField() keywords = DictField() url = models.URLField() lachambre_id = models.CharField(max_length=1337) language = models.CharField(max_length=1337) status = DictField() question_status = DictField() publication_date = models.CharField(max_length=1337) question = DictField() answer = DictField() publication_reponse_pdf_url = models.CharField(max_length=1337) publication_question_pdf_url = models.CharField(max_length=1337) publication_reponse = models.CharField(max_length=1337, null=True) publication_question = models.CharField(max_length=1337, null=True) with_history = models.Manager() objects = HistoryManager() def get_url(self): return LACHAMBRE_PREFIX + self.url if not self.url.startswith( "http") else self.url class Meta: ordering = ["lachambre_id"] class MongoMeta: indexes = [[("lachambre_id", 1)]]
# make sure all subscripts exist log('## Looking for subscripts') try: subs = util.find_subscripts(args.sql_file, args.dbms) except IOError, e: errors = True log('ERROR: One of the subscripts does not exist. Opening it threw and exception: ', logging.ERROR) log(e, logging.ERROR) sys.exit(EXIT_FAIL) log('Found %d subscripts' % (len(subs),)) ##### # Check execution history and subscripts hist = HistoryManager(args.sql_file, args.database, args.username, path=args.recdir) log('\n## Checking execution record ##') status = hist.status(args.sql_file, subs) if status == HistoryManager.DIFF: log('# Some of the files have changed since last run.') diff = hist.diff(args.sql_file) sub_diff = hist.diff_all(subs) log_script_changes(diff, sub_diff) elif status == HistoryManager.NO_DIFF: log('# The main script and subscripts have not changed since last run.') elif status == HistoryManager.NEW: log('# This script has not been executed yet.') ##### # Try connecting to DB try:
UploadTooManyFilesException, handle_exception import utils UPLOAD_FOLDER = '/tmp/filebin/usercontent' app = Flask(__name__) app.secret_key = 'i should probably change this' app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER app.config['MAX_FILES_PER_UPLOAD'] = 10 app.config['MAX_CONTENT_LENGTH'] = 64 * 1024 * 1024 app.config['FILESTORE_EXPIRATION_TIME_SECONDS'] = 10 * 60 # ten minutes filestore = FileStore(app) history = HistoryManager(filestore) @app.template_filter('formatsize') def size_filter(size): return utils.sizeof_fmt(size) @app.template_filter('formatseconds') def timestamp_filter(seconds): if seconds < 10: return '0{}'.format(seconds) return seconds